Azure Databricks ジョブでバージョン管理されたソース コードを使う

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

  • Azure Databricks で別の運用リポジトリを作成し、そのアクセス許可を管理し、更新を維持する必要はありません。
  • 運用リポジトリでのローカル編集やブランチの切り替えなによる変更など、運用ジョブに対する意図しない変更を防ぐことができます。
  • ジョブ定義プロセスはリモート リポジトリに信頼できる唯一の情報源を持ち、各ジョブの実行はコミット ハッシュにリンクされます。

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

Note

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

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

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

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

  2. これが新規ジョブの場合は、[Add a name for your job…](ジョブ名を追加...) を自分のジョブ名に置き換えます。

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

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

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

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

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

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

  7. Create をクリックしてください。

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

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

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

  2. これが新規ジョブの場合は、[Add a name for your job…](ジョブ名を追加...) を自分のジョブ名に置き換えます。

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

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

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

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

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

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

  7. Create をクリックしてください。

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

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

Note

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

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

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

  2. これが新規ジョブの場合は、[Add a name for your job…](ジョブ名を追加...) を自分のジョブ名に置き換えます。

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

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

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

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

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

    [パス] には、ソースの場所への相対パスを入力します (例: queries/sql/myquery.sql)。

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

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

  9. 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 で始まる必要がありますが、大文字になっています。