dbt プロジェクトの作成

dbt入門

Mike Metzger

Data Engineer

dbt プロジェクトとは

  • dbt でのデータ作業に必要な要素を含む

    • プロジェクト設定
    • データの入出力先
    • SQL クエリ
    • テンプレート
    • ドキュメント
  • フォルダ構成で実装

dbt のフォルダ構成

dbt入門

新規プロジェクトの作成方法

  • dbt init コマンドを使用
    • プロジェクト名を尋ねる
    • DB/DWH の種類を尋ねる
  • dbt init <projectname> で一括指定も可
  • ルートフォルダと必要構成を作成
repl:~/workspace$ dbt init
16:38:37  Running with dbt=1.8.4
Enter a name for your project (letters, digits, underscore): test_project
Which database would you like to use? [1] duckdb
Enter a number: 1
...
dbt入門

プロジェクトプロファイルで設定を定義

  • プロファイルはデプロイ環境を表す
    • 開発
    • ステージング/テスト
    • 本番
  • 1 つの dbt プロジェクトに複数可
  • profiles.yml に定義
marketing_campaign_results:
  outputs:
    dev:
      type: duckdb
      path: dbt.duckdb
    prod:
      type: snowflake
      ...
  target: dev
dbt入門

YAML

  • Yet Another Markup Language(YAML)
  • テキストファイル。インデントが重要(Python 風)
  • 多くの開発で設定に使用
  • ルールはやや複雑。例のとおりに揃えて記述
marketing_campaign_results:
  outputs:
    dev:
      type: duckdb
      path: dbt.duckdb
    prod:
      type: snowflake
      ...
  target: dev
dbt入門

DuckDB

  • オープンソースのサーバーレスDB
    • sqlite に近い
  • 分析向けに設計
  • ベクトル化処理(高速)
  • 使いやすい

duckdb のロゴ

dbt入門

Passons à la pratique !

dbt入門

Preparing Video For Download...