誰でも簡単にTROCCOからDatabricksのワークフロー等を起動させることができます!!
今回実行するDatabricksのワークフロー⏬️
事前に次のようなワークフローを組んでおきました。
最終的にできあがるTROCCOのワークフロー⏬️
1️⃣ TROCCOでSalesforceのデータをDatabricksに転送する
2️⃣ その後、Databricksのワークフローを起動する
という流れです。
これで、よくある「データが揃ってから諸々の処理を実行したい」願いが叶います。
TROCCOのHTTPリクエストタスクについては以下記事がとても参考になります。
設定方法
【Databricks】 API実行権限の設定
APIを実行するには、API Keyを発行するユーザーが「Admin」または「Can Manage」権限を持っている必要があります。
管理者に依頼して付与してもらいましょう。
【Databricks】 アクセストークン の発行
ユーザー画面>開発者>アクセストークン の画面より、API Keyが発行可能です。コピーをしておきます。
この操作自体は前述の権限が無くとも可能なようです。
【TROCCO】ワークフロー&HTTPリクエストタスクの設定
ワークフローを作成したら、タスクを追加します。
TROCCOからAPIをキックするには、HTTPリクエストタスクを利用します。
リクエストを投げたいURLやパラメータ等の入力画面が表示されるので、入力してきます。
今回の設定した内容は次の通りです。
- URL
https://<your-databricks-instance>/api/2.0/jobs/run-now
- HTTPメソッド
* POST - HTTPパラメータ
* 名前
*job_id
- 値
- 実行したいDatabricksジョブのID※1
- HTTPヘッダ
- キー
-
Authorization
*値 -
Bearer <アクセストークン>
※2
-
- キー
※1 DatabricksジョブのIDは、画面上の「ジョブの詳細」より確認可能です⏬️
※2 Bearer
をつけ忘れるとうまく動かないので注意です。
今回は
1️⃣ TROCCOでSalesforceのデータをDatabricksに転送する
2️⃣ その後、Databricksのワークフローを起動する
という流れを実現したかったので、HTTPリクエストタスクの前にDatabricksワークフロー内で利用するデータを転送する転送設定をタスクとして付け加えました。
実行してみます。
転送設定→HTTPリクエストタスク(Databricksジョブ実行)の順でタスクが動いています。
TROCCO HTTPリクエストタスクの実行ログ⏬️
Databricksジョブのログ⏬️
※「手動で」と表示されていますが、これは「スケジュール起動ではないよ」ということのようです。
補足と注意
TROCCOのワークフローではDatabricks APIをキックすることしかできません。
そのため、Databricks側の処理が終わった後、TROCCO側の別の処理を動かしたい要件の場合は別の手段を考える必要があります
(スケジュール感覚の調整、TROCCOのAPIをどこかで叩く、など)
今回はDatabricksワークフローを利用しましたがクエリ・ノートブック単体でも同様の手順で可能なようです。もしよろしければ試してみてください。