はじめに
Azure Data Factory ではパイプラインにより Azure Databricks のノートブックを実行できます。
なお、Repos 内のノートブックを呼び出すと、下図のように、事前に設定されたブランチが採用されます。
今回は、Data Factory の Web アクティビティを利用して Databricks Repos 内のノートブックをブランチ指定して呼び出す回避策を説明します。
手順
1. Databricks アクセストークンの発行
Databricks ワークスペースの設定画面でアクセストークンを発行します。この値は後ほど利用します。
2. Databricks Repos ID の確認
Databricks ワークスペースにて、該当の Repos フォルダにて下図のように Git...
をクリックして Git 編集画面に遷移します。
Settings
タブにて Repos ID を確認できます。この値も後ほど利用します。
なお、Repos ID は 以下のように API でも確認可能です。
$ curl -X GET \
-H "Authorization: Bearer <手順1で取得したアクセストークン>" \
https://adb-XXXXXXXXXX.XX.azuredatabricks.net/api/2.0/repos
3. Data Factory の設定
Data Factory Studio にて 2 つのアクティビティを定義します。
1 つ目の Web アクティビティで以下のように設定をし、API で Repos のブランチを変更します。
項目 | 値 |
---|---|
URL | https://adb-XXXXXXXXXX.XX.azuredatabricks.net/api/2.0/repos/<手順2で取得したReposID> |
Method | PATCH |
Body | {"branch": "<ブランチ名>"} |
Headers1 | Authorization: Bearer <手順1で取得したアクセストークン> |
Headers2 | Content-Type: application/json |
2 つ目の Databricks ノートブックアクティビティで以下のように設定をし、実行するノートブックを指定します。
4. Data Factory パイプラインの実行
パイプラインを実行して、2 つのアクティビティが成功することを確認します。
Databricks ワークスペースにおいては、ノートブック実行の出力結果を確認できます。
また、Repos のブランチも Web アクティビティにより元々の main
から sub
に変更されていることが分かります。
おわりに
Data Factory から Databricks Repos 内のノートブックをブランチ指定して呼び出す方法を説明しました。
あくまで回避策であり、Web アクティビティと Databricks ノートブックアクティビティの間でブランチが変更された場合は対処できないことにご注意ください。