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