ふくふくHukuhuku Inc.
EP.02dbt 11分公開: 2026-05-10

dbt Core vs dbt Cloud と環境セットアップ:どちらを選び、どう動かすか

dbt Core (OSS、無料、自前運用) と dbt Cloud (SaaS、有料、IDE/スケジューラ込み)。判断軸と、ローカルでの初回セットアップ手順を BigQuery / Snowflake で。

#dbt Core#dbt Cloud#セットアップ
シェア

には Core (OSS、Python パッケージ)Cloud ( IDE + スケジューラ + Slim CI 等) の 2 形態があります。本記事では選び方と、Core でのローカル動作セットアップを扱います。

判断早見表

観点dbt Coredbt Cloud
価格無料 (, Apache 2.0)Developer 1 名月 $100、Team / Enterprise は高くなる
IDEVS Code 等で自前Web IDE 内蔵
スケジューラ / cron / Actions で自前ジョブスケジューラ内蔵
GitHub Actions 等を組むSlim CI 内蔵 (差分のみ実行)
権限管理 の権限と 権限で運用RBAC 内蔵
lineage 表示`dbt docs serve` をローカル/サーバでWeb で誰でも見える
learning curvePython / Git に慣れたエンジニア向けアナリスト向けに UI が優しい
向く規模小〜中規模、エンジニア中心中〜大規模、複数チーム
ふくふくのデフォルト選択

1〜3 人のスタートアップ → Core + GitHub Actions で十分。5 人超 + アナリスト混在 → Cloud Team を検討。100 人超 → Cloud Enterprise + dbt Mesh (EP.13)。

Core のセットアップ ( 例)

Python venv で dbt-bigquery をインストール
Bash
# 1) プロジェクトディレクトリmkdir analytics && cd analyticspython3 -m venv .venvsource .venv/bin/activate
# 2) 必要なアダプタだけ入れる (フル dbt-core はメタパッケージ)pip install dbt-bigquery==1.8.*
# 3) dbt プロジェクト初期化dbt init analytics# → 対話で profile name / DWH 接続情報を入力
~/.dbt/profiles.yml (BigQuery 例)
YAML
analytics:  target: dev          # デフォルトターゲット  outputs:    dev:      type: bigquery      method: oauth      # gcloud auth application-default login で済ませる      project: my-gcp-project      dataset: dbt_dev_yourname      threads: 4         # 並列実行数      timeout_seconds: 300      location: asia-northeast1      priority: interactive    prod:      type: bigquery      method: service-account      keyfile: ~/.dbt/keys/prod-sa.json      project: my-gcp-project-prod      dataset: analytics_prod      threads: 8
接続テスト → 初回実行
Bash
dbt debug          # 接続情報の確認dbt deps           # packages.yml に書いた依存を取得dbt seed           # seeds/ 以下の CSV を DWH にロードdbt run            # models/ 以下の SQL を実行dbt test           # tests を実行dbt docs generate  # ドキュメント HTML を生成dbt docs serve     # ブラウザで確認 (デフォルト localhost:8080)

の場合の差分

profiles.yml (Snowflake 例)
YAML
analytics:  target: dev  outputs:    dev:      type: snowflake      account: xy12345.ap-northeast-1.aws      user: your_user      authenticator: externalbrowser  # SSO ならこれ      role: ANALYST_ROLE      database: ANALYTICS_DEV      warehouse: BI_WH_DEV      schema: dbt_dev_yourname      threads: 8      client_session_keep_alive: false

ディレクトリ構造(生成された雛形)

dbt init で作られる構造
Text
analytics/├── dbt_project.yml      # プロジェクト設定├── packages.yml          # 外部 dbt パッケージ├── profiles.yml          # (通常は ~/.dbt/profiles.yml に置く)├── models/               # ★ メインの変換 SQL│   ├── staging/│   │   ├── stg_customers.sql│   │   └── schema.yml│   ├── intermediate/│   └── marts/├── seeds/                # 静的 CSV (国コードマスタ等)├── snapshots/            # SCD Type 2├── macros/               # Jinja マクロ├── tests/                # 高度なテスト (singular tests)├── analyses/             # アドホック分析クエリ (run されない)└── target/               # ビルド成果物 (Git ignore)

1日目に必ず仕込むもの

  • `.gitignore`: `target/` `dbt_packages/` `logs/` `.user.yml` を除外
  • `packages.yml`: `dbt-labs/dbt_utils` を最初から入れる (EP.09 で深堀り)
  • Pre-commit: `sqlfluff` / `dbt-checkpoint` で の lint と命名規則を強制
  • ターゲットの分離: `dev` (個人) / `ci` (PR 検証) / `prod` の 3 環境を最低用意

次の話

EP.03 では実際にプロジェクト構造を組み、最初の `dbt run` を通すまでを step-by-step で。

シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp