Azure Databricks ジョブでバージョン管理されたソース コードを使う
リモート Git リポジトリまたは Databricks Git フォルダーにあるノートブックまたは Python コードを使用して、ジョブを実行することができます。 この機能により、運用ジョブの作成と管理が簡単になり、継続的デプロイが自動化されます。
- Azure Databricks で別の運用リポジトリを作成し、そのアクセス許可を管理し、更新を維持する必要はありません。
- 運用リポジトリでのローカル編集やブランチの切り替えなによる変更など、運用ジョブに対する意図しない変更を防ぐことができます。
- ジョブ定義プロセスはリモート リポジトリに信頼できる唯一の情報源を持ち、各ジョブの実行はコミット ハッシュにリンクされます。
リモート Git リポジトリのソース コードを使用するには、Databricks Git フォルダー (Repos) を設定する必要があります。
重要
リモート Git リポジトリから実行される Azure Databricks ジョブによって作成されたノートブックは一時的なものであり、MLflow の実行、実験、またはモデルの追跡に使用することはできません。 ジョブからノートブックを作成する場合は、(ノートブック MLflow 実験ではなく) ワークスペース MLflow 実験を使用し、MLflow 追跡コードを実行する前に、ワークスペース ノートブックで mlflow.set_experiment("/path/to/experiment")
を呼び出します。 詳細については、MLflow 実験でのデータ損失の防止に関する記事を参照してください。
Note
サービス プリンシパルを ID として使ってジョブを実行する場合は、ジョブのソース コードを含む Git フォルダーでサービス プリンシパルを構成できます。 「Databricks Git フォルダーでサービス プリンシパルを使用する」を参照してください。
リモート Git リポジトリからノートブックを使用する
リモート Git リポジトリにあるノートブックを使ってタスクを作成するには:
サイドバーの
[ワークフロー] をクリックし、
をクリックするか、既存のジョブに移動して新しいタスクを追加します。
これが新規ジョブの場合は、[Add a name for your job…](ジョブ名を追加...) を自分のジョブ名に置き換えます。
[タスク名] フィールドに、タスクの名前を入力します。
[種類] ドロップダウン メニューで、[ノートブック] を選択します。
[接続元] ドロップダウン メニューで [Git プロバイダー] を選択し、[編集] または [Add a git reference](Git 参照の追加) をクリックします。 [Git 情報] ダイアログが表示されます。
[Git Information](Git 情報) ダイアログで、リポジトリの URL、Git プロバイダー、Git 参照など、リポジトリの詳細を入力します。 この Git 参照には、ブランチ、タグ、またはコミットを指定できます。
[パス] には、ノートブックの場所への相対パスを入力します (例:
etl/notebooks/
)。相対パスを入力するときは、先頭を
/
または./
にしたり、.py
などのノートブック ファイル拡張子を含めたりしないでください。 たとえば、アクセスするノートブックの絶対パスが/notebooks/covid_eda_raw.py
の場合は、[Path](パス) フィールドに「notebooks/covid_eda_raw
」と入力します。Create をクリックしてください。
重要
ソース Git リポジトリから直接 Python ノートブックを使用する場合は、ノートブック ソース ファイルの最初の行を # Databricks notebook source
にする必要があります。 Scala ノートブックの場合、ソース ファイルの最初の行は // Databricks notebook source
にする必要があります。
リモート Git リポジトリから Python コードを使用する
リモート Git リポジトリにある Python コードを使ってタスクを作成するには:
サイドバーの
[ワークフロー] をクリックし、
をクリックするか、既存のジョブに移動して新しいタスクを追加します。
これが新規ジョブの場合は、[Add a name for your job…](ジョブ名を追加...) を自分のジョブ名に置き換えます。
[タスク名] フィールドに、タスクの名前を入力します。
[種類] ドロップダウン メニューで、[Python スクリプト] を選択します。
[接続元] ドロップダウン メニューで [Git プロバイダー] を選択し、[編集] または [Add a git reference](Git 参照の追加) をクリックします。 [Git 情報] ダイアログが表示されます。
[Git Information](Git 情報) ダイアログで、リポジトリの URL、Git プロバイダー、Git 参照など、リポジトリの詳細を入力します。 この Git 参照には、ブランチ、タグ、またはコミットを指定できます。
[パス] には、ソースの場所への相対パスを入力します (例:
etl/python/python_etl.py
)。相対パスを入力するときは、先頭を
/
または./
にしないでください。 たとえば、アクセスする Python コードの絶対パスが/python/covid_eda_raw.py
の場合は、[パス] フィールドに「python/covid_eda_raw.py
」と入力します。Create をクリックしてください。
リモート Git リポジトリに格納されている Python コードを実行するタスクの実行履歴を表示すると、[タスクの実行の詳細] パネルには、実行に関連付けられているコミット SHA を含む Git の詳細が表示されます。
リモート Git リポジトリから SQL クエリを使用する
Note
1 つのファイルでサポートされている SQL ステートメントは 1 つだけです。 セミコロン (;) で区切られた複数の SQL ステートメントは許可されていません。
リモート Git リポジトリにある .sql
ファイルに保存されているクエリを実行するには:
サイドバーの
[ワークフロー] をクリックし、
をクリックするか、既存のジョブに移動して新しいタスクを追加します。
これが新規ジョブの場合は、[Add a name for your job…](ジョブ名を追加...) を自分のジョブ名に置き換えます。
[タスク名] フィールドに、タスクの名前を入力します。
[種類 ] ドロップダウン メニューで、[SQL] を選択します。
[SQL タスク] ドロップダウン メニューで、[ファイル] を選択します。
[接続元] ドロップダウン メニューで [Git プロバイダー] を選択し、[編集] または [Add a git reference](Git 参照の追加) をクリックします。 [Git 情報] ダイアログが表示されます。
[Git Information](Git 情報) ダイアログで、リポジトリの URL、Git プロバイダー、Git 参照など、リポジトリの詳細を入力します。 この Git 参照には、ブランチ、タグ、またはコミットを指定できます。
[パス] には、ソースの場所への相対パスを入力します (例:
queries/sql/myquery.sql
)。相対パスを入力するときは、先頭を
/
または./
にしないでください。 たとえば、アクセスする SQL クエリの絶対パスが/sql/myqeury.sql
の場合は、[パス] フィールドに「sql/myquery.sql
」と入力します。SQL ウェアハウスを選択します。 サーバーレス SQL ウェアハウスまたはプロ SQL ウェアハウスを選択する必要があります。
Create をクリックしてください。
リモート Git リポジトリから追加のタスクを追加する
マルチタスク ジョブ内の追加のタスクは、次のいずれかの方法で、リモート リポジトリ内の同じコミットを参照できます。
sha
/$branch/head
(git_branch
が設定されているとき)sha
/$tag
(git_tag
が設定されているとき)git_commit
の値
Azure Databricks ジョブではノートブックと Python タスクを混在させることができますが、これらは同じ Git 参照を使用する必要があります。
Databricks Git フォルダーを使用する
Azure Databricks UI を使用してソース コードのバージョン管理を行う場合は、Databricks Git フォルダーにリポジトリをクローンします。 詳細については、「オプション 2: 運用 Git フォルダーと Git 自動化を設定する」を参照してください。
ジョブ タスクの Git フォルダーからノートブックまたは Python コードを追加するには、[接続元] ドロップダウン メニューで [ワークスペース] を選択し、[パス] にノートブックまたは Python コードへのパスを入力します。
IDE からノートブックにアクセスする
統合開発環境からノートブックにアクセスする必要がある場合は、ノートブックのソース コード ファイルの上部にコメント # Databricks notebook source
があることを確認してください。 通常の Python ファイルと、ソース コード形式でエクスポートされた Azure Databricks の Python 言語ノートブックを区別するため、ノートブックのソース コード ファイルの先頭には Databricks によって # Databricks notebook source
という行が追加されます。 ノートブックをインポートすると、Azure Databricks によってそれが認識されて、Python モジュールとしてではなく、ノートブックとしてインポートされます。
トラブルシューティング
Note
Git ベースのジョブでは、ワークスペース ファイルへの書き込みアクセスはサポートされていません。 一時的な記憶域にデータを書き込むには、ドライバー記憶域を使用します。 Git ジョブから永続的なデータを書き込むには、UC ボリュームまたは DBFS を使用します。
エラー メッセージ:
Run result unavailable: job failed with error message Notebook not found: path-to-your-notebook
考えられる原因:
ノートブックのソース コード ファイルの上部にコメント# Databricks notebook source
がありません。または、コメント内の notebook
は小文字の n
で始まる必要がありますが、大文字になっています。