メインコンテンツまでスキップ

ジョブにおけるdbt タスク

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

重要

dbtタスクが実行される と、Databricks は 実行者 フィールドで設定されたプリンシパルのDBT_ACCESS_TOKENを挿入します。

要件

[実行者] フィールドで設定されたプリンシパルは、以下を持つ必要があります:

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

dbtタスクを構成します。

ジョブUIの タスク タブから、次の手順を実行してdbtタスクを追加します:

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

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

    • ワークスペース を選択した場合は、指定されたファイルナビゲーターを使用して プロジェクトディレクトリ を選択します。

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

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

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

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

  5. ウェアハウスカタログ を指定してください。設定されていない場合、ワークスペースのデフォルトが使用されます。

  6. ウェアハウススキーマ を指定します。デフォルトでは、スキーマdefaultが使用されます。

  7. dbt CLI コンピュート を選択して dbt Coreを実行します。Databricks は、単一ノード クラスターで構成されたジョブ コンピュートを使用することをお勧めします。

  8. タスクの dbt-databricks バージョンを 依存ライブラリ フィールドに指定します。

    デフォルトでは、 依存ライブラリ フィールドは dbt-databricks>=1.0.0,<2.0.0 に入力されます。この設定を削除し、プラスアイコン。 PyPi ライブラリを 追加 してバージョンをピン留めします。

注記

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

  1. (オプション) 再試行、実行期間またはストリーミングバックログのしきい値、または通知を設定するには、高度なタスク設定を参照してください。

  2. タスクの保存 をクリックします。

このタスクを編集、クローン、無効化、または削除するには、「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

パラメーター名

パラメーターの値

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}}"}'

その他のリソース