Databricks ジョブでバージョン管理されたソース コードを使用する

リモート Git リポジトリまたは Databricks Git フォルダーにあるノートブックまたは Python コードを使用してジョブを実行できます。 この機能により、本番運用ジョブの作成と管理が簡素化され、継続的なデプロイが自動化されます。

  • Databricks で別の運用 リポジトリを作成し、そのアクセス許可を管理し、最新の状態に保つ必要はありません。

  • 運用 リポジトリでのローカル編集やブランチの切り替えによる変更など、運用ジョブへの意図しない変更を防ぐことができます。

  • ジョブ定義プロセスでは、リモート リポジトリに単一の真実のソースがあり、各ジョブ実行はコミット ハッシュにリンクされます。

リモートGitリポジトリでソース コードを使用するには、 Databricks Gitフォルダー ( Repos ) をセットアップする必要があります。

重要

リモート リポジトリから実行される Databricksジョブによって作成されたノートブックは一時的であり、GitMLflow 実行、エクスペリメント、またはモデルを追跡するために信頼できません。ジョブからノートブックを作成する場合は、 MLflow トラッキング コードを実行する前に、(ノートブックMLflow MLflow MLflow代わりに) ワークスペースMLflowエクスペリメントを使用し、ワークスペース ノートブック内で mlflow.set_experiment("/path/to/experiment") を呼び出します。 詳細については、 「 MLflowエクスペリメントでのデータ損失の防止」を参照してください。

注:

ID としてサービスプリンシパルを使用してジョブを実行する場合、ジョブのソース コードを含むGitフォルダーにサービスプリンシパルを構成できます。 「 Databricks Gitフォルダーでサービスプリンシパルを使用する」を参照してください。

リモート Git リポジトリのノートブックを使用する

リモート Git リポジトリにあるノートブックを使用してタスクを作成するには:

  1. クリックワークフローアイコンサイドバーのワークフローをクリックして「ジョブを作成」ボタンまたは、既存のジョブに移動して新しいタスクを追加します。

  2. これが新しいジョブの場合は、 「ジョブの名前を追加」をジョブ名に置き換えます。

  3. 「タスク名」フィールドにタスクの名前を入力します。

  4. [タイプ]ドロップダウン メニューで、 [ノートブック]を選択します。

  5. [ソース]ドロップダウン メニューで、 [Git プロバイダー]を選択し、 [編集]または[Git 参照の追加] をクリックします。 Git 情報ダイアログが表示されます。

  6. Git 情報ダイアログで、リポジトリ URL、Git プロバイダー、Git 参照などのリポジトリの詳細を入力します。 この Git 参照は、ブランチ、タグ、またはコミットになります。

    Pathには、ノートブックの場所への相対パス( etl/notebooks/など)を入力します。

    相対パスを入力するときは、パスを/または./で始めないでください。また、ノートブックのファイル拡張子 ( .pyなど) を含めないでください。 たとえば、アクセスするノートブックの絶対パスが/notebooks/covid_eda_raw.pyの場合、パス フィールドにnotebooks/covid_eda_rawと入力します。

  7. [作成]をクリックします。

重要

ソース Git リポジトリから Python ノートブックを直接操作する場合、ノートブック ソース ファイルの最初の行は# Databricks notebook sourceである必要があります。 Scala ノートブックの場合、ソース ファイルの最初の行は// Databricks notebook sourceである必要があります。

リモート Git リポジトリの Python コードを使用する

リモート Git リポジトリにある Python コードを使用してタスクを作成するには:

  1. クリックワークフローアイコンサイドバーのワークフローをクリックして「ジョブを作成」ボタンまたは、既存のジョブに移動して新しいタスクを追加します。

  2. これが新しいジョブの場合は、 「ジョブの名前を追加」をジョブ名に置き換えます。

  3. 「タスク名」フィールドにタスクの名前を入力します。

  4. 「タイプ」ドロップダウンメニューで、 「Python スクリプト」を選択します。

  5. [ソース]ドロップダウン メニューで、 [Git プロバイダー]を選択し、 [編集]または[Git 参照の追加] をクリックします。 Git 情報ダイアログが表示されます。

  6. Git 情報ダイアログで、リポジトリ URL、Git プロバイダー、Git 参照などのリポジトリの詳細を入力します。 この Git 参照は、ブランチ、タグ、またはコミットになります。

    Pathには、ソースの場所への相対パス( etl/python/python_etl.pyなど)を入力します。

    相対パスを入力するときは、 /./で始めないでください。 たとえば、アクセスする Python コードの絶対パスが/python/covid_eda_raw.pyの場合、パス フィールドにpython/covid_eda_raw.pyと入力します。

  7. [作成]をクリックします。

リモート リポジトリに保存された コードを実行したタスクのPython Git実行履歴を 表示すると、 タスク実行の詳細Git パネルに、実行に関連付けられたコミット SHA などの 詳細が表示されます。

リモート Git リポジトリから SQL クエリーを使用する

注:

1つのファイルでサポートされるSQLステートメントは1つのみです。セミコロン(;)で区切られた複数のSQLステートメントは許可されません。

リモート Git リポジトリにある.sqlファイルに保存されているクエリを実行するには:

  1. クリックワークフローアイコンサイドバーのワークフローをクリックして「ジョブを作成」ボタンまたは、既存のジョブに移動して新しいタスクを追加します。

  2. これが新しいジョブの場合は、 「ジョブの名前を追加」をジョブ名に置き換えます。

  3. 「タスク名」フィールドにタスクの名前を入力します。

  4. 「タイプ」ドロップダウンメニューで、 「SQL」を選択します。

  5. SQL タスクのドロップダウン メニューで、 [ファイル]を選択します。

  6. [ソース]ドロップダウン メニューで、 [Git プロバイダー]を選択し、 [編集]または[Git 参照の追加] をクリックします。 Git 情報ダイアログが表示されます。

  7. Git 情報ダイアログで、リポジトリ URL、Git プロバイダー、Git 参照などのリポジトリの詳細を入力します。 この Git 参照は、ブランチ、タグ、またはコミットになります。

    Pathには、ソースの場所への相対パス( queries/sql/myquery.sqlなど)を入力します。

    相対パスを入力するときは、 /./で始めないでください。 たとえば、アクセスする SQL クエリの絶対パスが/sql/myqeury.sqlの場合、パス フィールドにsql/myquery.sqlと入力します。

  8. SQLウェアハウスを選択します。 サーバーレスSQLウェアハウスまたはプロSQLウェアハウスを選択する必要があります。

  9. [作成]をクリックします。

リモート 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が大文字になっています。