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

dbt タスク for ジョブ

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

important

タスクが実行される 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. SQLウェアハウス で、 によって生成されたSQL を実行する ウェアハウスを選択します。SQLdbt SQLウェアハウス のドロップダウンメニューには、サーバレスとプロSQLウェアハウスのみが表示されます。

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

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

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

  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 パッケージをお勧めします。

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

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 コマンド フィールドにプレーンテキストとして置き換えられます。 タスク間での値の受け渡しやジョブ メタデータの参照に関する情報については、「 ジョブのパラメーター化」を参照してください。

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

パラメーター名

パラメーター 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}}"}'