Databricks ジョブでバージョン管理されたソース コードを使用するUse version-controlled source code in a Databricks job

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

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

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

  • ジョブ定義プロセスには、リモートリポジトリに信頼できる唯一の情報源があり、各ジョブ実行はコミットハッシュにリンクされています。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

リモート 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 参照には、ブランチ、タグ、またはコミットを指定できます。

    [パス] に、ソースの場所への相対パス (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なっています。