ジョブの dbt タスク

dbt タスクを使用して、Azure Databricksで dbt プロジェクトを構成して実行します。

Von Bedeutung

dbt タスクが実行されると、Databricks は DBT_ACCESS_TOKEN フィールドで構成されたプリンシパルに対応する を挿入します。

Requirements

Run As フィールドで指定されたプリンシパルには、以下が必要です:

  • dbt によって生成された SQL を実行する SQL ウェアハウスで使用できます。
  • dbt モデルに必要な Unity カタログ特権。 たとえば、ターゲットのカタログとスキーマに対する USE CATALOGUSE SCHEMA、およびモデルが読み取りと書き込みを行うオブジェクトに対する SELECT または MODIFY です。

dbt タスクの設定

ジョブ UI の dbt タブから タスクを追加するには、次の操作を行います。

  1. [ プラス] アイコンをクリックします。タスクを追加します

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

  3. Type ドロップダウン メニューで、dbt を選択します。

  4. Source ドロップダウン メニューで、Workspace を選択して、リモート Git リポジトリにあるプロジェクトのAzure Databricks ワークスペース フォルダーまたは Git プロバイダー にある dbt プロジェクトを使用できます。

    • Workspace を選択した場合は、指定されたファイル ナビゲーターを使用して、Project ディレクトリを選択します。

    • [Git プロバイダー] を選んだ場合は、[編集] をクリックしてプロジェクト リポジトリの Git 情報を入力します。 「Lakeflow ジョブで Git を使用する」を参照してください。

      プロジェクトがリポジトリのルート ディレクトリにない場合は、[ プロジェクト ディレクトリ ] フィールドを使用してパスを指定します。

  5. dbt コマンド テキスト ボックスの既定は、コマンド dbt depsdbt seed、および dbt run になります。 指定したコマンドは順番に実行されます。 ワークフローの必要に応じて、これらのフィールドを追加、削除、または編集します。 dbt コマンドを参照してください。

  6. [SQL ウェアハウス] で、dbt で生成された SQL を実行する SQL ウェアハウスを選択します。 [SQL ウェアハウス] のドロップダウン メニューには、サーバーレスおよびプロの SQL ウェアハウスのみが表示されます。

  7. ウェアハウス カタログを指定します。 設定されていない場合は、ワークスペースの既定値が使用されます。

  8. Warehouse スキーマを指定します。 既定では、default スキーマが使用されます。

  9. [dbt CLI コンピューティング] を選択し、dbt Core を実行します。 Databricks では、ジョブのサーバーレス コンピューティング、または単一ノード クラスターで構成されたクラシック ジョブ コンピューティングを使用することをお勧めします。

  10. タスクの dbt-databricks バージョンを指定します。

    Serverless コンピューティングを使用する場合は、[環境とライブラリ] フィールドを使用して、新しい環境を選択、編集、または追加します。 「サーバーレス環境を構成する」を参照してください。

    その他のすべてのコンピューティング構成では、[依存ライブラリ] フィールドに既定で dbt-databricks>=1.0.0,<2.0.0 が入力されます。 この設定とプラス アイコンを削除します。PyPi ライブラリを追加してバージョンをピン留めします。

    Note

    Databricks では、開発と実稼働の実行に同じバージョンが使用されるように、dbt タスクを特定バージョンの dbt-databricks パッケージにピン留めすることをお勧めします。 Databricks では、dbt-databricks パッケージのバージョン 1.6.0 以降をお勧めします。

  11. (省略可能)再試行、実行期間、ストリーミング バックログのしきい値、または通知を構成するには、「 タスクの詳細設定」を参照してください。

  12. [タスクの保存] をクリックします。

このタスクを編集、複製、無効化、または削除するには、「 Lakeflow ジョブのタスクの構成と編集」を参照してください。

dbt コマンド

[dbt コマンド] フィールドでは、dbt コマンド ライン インターフェイス (CLI) を使用して実行するコマンドを指定できます。 dbt CLI の詳細については、dbt のドキュメントを参照してください。

指定したバージョンの dbt でサポートされているコマンドについては、dbt のドキュメントを確認してください。

オプションを dbt コマンドに渡す

dbt ノード選択構文を使用すると、特定の実行に含めるリソースまたは除外するリソースを指定できます。 runbuild などのコマンドは、--select--exclude などのフラグを受け入れます。 詳細な説明については、dbt 構文の概要に関するドキュメントを参照してください。

dbt によるプロジェクトの実行方法は、追加の構成フラグによって制御されます。 使用可能なフラグの一覧については、公式の dbt ドキュメントでコマンド ライン オプションの列を確認してください。

一部のフラグは位置引数を取ります。 一部のフラグの引数は文字列です。 例と説明については、dbt のドキュメントを参照してください。

変数を dbt コマンドに渡す

--vars フラグを使用して、静的または動的な値を [dbt コマンド] フィールド内のコマンドに渡します。

一重引用符で区切られた JSON を --vars に渡します。 JSON 内のすべてのキーと値は、次の例のように二重引用符で区切る必要があります。

dbt run --vars '{"volume_path": "/Volumes/path/to/data", "date": "2024/08/16"}'

パラメーター化された dbt コマンドの例

dbt を使用するときは、タスク値、ジョブ パラメーター、および動的ジョブ パラメーターを参照できます。 値は、コマンドが実行される前に、[dbt コマンド] フィールドにプレーン テキストとして置き換えられます。 タスク間での値の受け渡しやジョブ メタデータの参照については、「ジョブのパラメーター化」を参照してください。

これらの例では、次のジョブ パラメーターが構成されていることを前提としています。

パラメーター名 パラメーター値
volume_path /Volumes/path/to/data
table_name my_table
select_clause --select "tag:nightly"
dbt_refresh --full-refresh

次の例は、これらのパラメーターを参照する有効な方法を示しています。

dbt run '{"volume_path": "{{job.parameters.volume_path}}"}'
dbt run --select "{{job.parameters.table_name}}"
dbt run {{job.parameters.select_clause}}
dbt run {{job.parameters.dbt_refresh}}
dbt run '{"volume_path": "{{job.parameters.volume_path}}"}' {{job.parameters.dbt_refresh}}

次の例のように、動的パラメーターとタスク値を参照することもできます。

dbt run --vars '{"date": "{{job.start_time.iso_date}}"}'
dbt run --vars '{"sales_count": "{{tasks.sales_task.values.sales_count}}"}'

その他のリソース

  • dbtタスクを宣言的自動化バンドル付きのコードとして定義するには、 dbtタスクを参照してください。
  • 実行後に dbt タスクの出力と成果物を取得する方法の例については、「 dbt タスクの出力と成果物にアクセスする」を参照してください。
  • dbt によって生成される SQL をデバッグするには、SQL ウェアハウスのクエリ履歴を使用します。 「クエリ履歴」を参照してください。