ジョブの DBT タスク

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

重要

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

dbt タスクの設定

ジョブ UI のタスク タブからdbtタスクを追加するには、次の手順を実行します。

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

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

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

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

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

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

  4. In SQL warehouse, select a SQL warehouse to run the SQL generated by dbt. The SQL warehouse drop-down menu shows only serverless and pro SQL warehouses.

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

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

  7. dbt CLI コンピュートを選択して dbt Coreを実行します。Databricks では、ジョブにはサーバレス コンピュートを使用するか、single-node クラスタで構成されたクラシック ジョブ コンピュートを使用することをお勧めします。

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

    Serverlessコンピュートを使用する場合は、[環境とライブラリ] フィールドを使用して、新しい環境を選択、編集、または追加します。「ノートブックの依存関係のインストール」を参照してください。

    他のすべてのコンピュート設定の場合、[ Dependent Library ] フィールドは [デフォルト] で dbt-databricks>=1.0.0,<2.0.0 に設定されます。 この設定を削除し、+ PyPi ライブラリを追加してバージョンをピン留めします。

    注:

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

  9. タスクを作成」をクリックします。

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 コマンドの例

You can reference task values, job parameters, and dynamic job parameters when working with dbt. Values are substituted as plain text into the dbt commands field before the command runs. For information about passing values between tasks or referencing jobs metadata, see Parameterize jobs.

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

パラメーター名

パラメーター value

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