0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Databricks Asset Bundles(DAB)は dbt と併用できる——公式テンプレート dbt-sql の使い方

0
Last updated at Posted at 2026-05-04

結論

Databricks Asset Bundles(DAB)は dbt と普通に併用できます。公式テンプレート dbt-sql が用意されています。

DAB は「Databricks のリソース(ジョブ・パイプライン等)を YAML でコード管理する IaC ツール」です。dbt はその中のタスクの一種として定義できます。


DAB の中で dbt タスクをどう定義するか

# resources/dbt_job.yml
resources:
  jobs:
    dbt_pipeline_job:
      name: dbt_pipeline_job
      tasks:
        - task_key: dbt_run
          dbt_task:
            commands:
              - dbt deps
              - dbt run
            warehouse_id: ${var.warehouse_id}
            catalog: my_catalog
            schema: my_schema
      schedule:
        quartz_cron_expression: "0 0 3 * * ?"
        timezone_id: "Asia/Tokyo"

DAB の databricks.yml でジョブ全体を管理しつつ、タスクタイプとして dbt_task を指定するだけです。


公式テンプレート dbt-sql で即スタート

databricks bundle init 実行時に選べるデフォルトテンプレートに dbt-sql が公式で含まれています。

databricks bundle init dbt-sql

これで以下の構成が自動生成されます。

my_dbt_project/
  ├── databricks.yml         # バンドル定義
  ├── resources/
  │   └── dbt_job.yml        # dbt ジョブ定義
  ├── dbt_project/           # dbt プロジェクト本体
  │   ├── dbt_project.yml
  │   ├── models/
  │   └── profiles.yml
  └── ...

出典: Declarative Automation Bundles project templates - Azure Databricks(Microsoft Learn)


既存の DAB 構成との関係

すでに DAB を使って Lakeflow パイプラインやノートブックジョブを管理している場合、既存の構成はそのままで dbt タスクを追加できます。

今 DAB で管理しているもの dbt 導入後
Lakeflow パイプライン定義 dbt タスクに置き換え or 併存
ジョブスケジュール そのまま DAB で管理継続
環境設定(dev/prod) そのまま DAB で管理継続
databricks bundle deploy そのまま使える

DAB の構造は変えず、タスクタイプを Lakeflow → dbt に切り替えるだけです。


dev/prod の環境切り替えも DAB で管理できる

# databricks.yml
bundle:
  name: my_dbt_project

targets:
  dev:
    mode: development
    default: true
    workspace:
      host: https://adb-xxxx.azuredatabricks.net

  prod:
    mode: production
    workspace:
      host: https://adb-xxxx.azuredatabricks.net
      root_path: /Shared/.bundle/prod/${bundle.name}
    run_as:
      user_name: service-principal@example.com
# 開発環境にデプロイ
databricks bundle deploy --target dev

# 本番環境にデプロイ
databricks bundle deploy --target prod

出典: Declarative Automation Bundles configuration - Databricks on AWS


dbt タスクの実行先は Serverless SQL Warehouse 推奨

DAB で定義した dbt ジョブの SQL 実行先は SQL Warehouse を指定します。Serverless SQL Warehouse なら起動時間が 2〜6 秒(公式値)と高速で、Photon エンジンが自動で有効になります。

出典: SQL warehouse types - Databricks on AWS

tasks:
  - task_key: dbt_run
    dbt_task:
      commands:
        - dbt deps
        - dbt run
        - dbt test
      warehouse_id: ${var.serverless_warehouse_id}  # Serverless SQL Warehouse を指定

まとめ

  • DAB と dbt は競合しません。DAB が IaC 管理、dbt が変換ロジックを担当します
  • 公式テンプレート dbt-sql で即スタートできます
  • 既存の DAB 構成(スケジュール・環境定義・デプロイフロー)はそのまま流用できます
  • dbt Cloud は不要です。Databricks Workflows の dbt タスク + DAB で完結します

参考リンク

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?