dbt のソース

中級 dbt

Mike Metzger

Data Engineer

dbt のソースとは?

  • EL プロセスで読み込まれたデータの名称と説明
  • データリネージの定義に役立つ
  • テスト
  • ドキュメント

データソース

1 Photo by Mika Baumeister on Unsplash
中級 dbt

ソース

  • データリネージ情報を提供
  • ウェアハウス内のデータの流れを説明
  • Jinja の {{ source() }} を使用
    • {{ ref() }} に似ている
  • 生データへのアクセスを簡素化
select * 
from
  {{ source('raw', 'orders') }}
中級 dbt

ソースの定義

  • .yml ファイル内
  • 例: models/model_properties.yml
    • またはそのディレクトリ内の他の .yml
  • sources: セクション配下
  • - name: でソース名を指定
  • tables: 配下で各テーブルを - name: で定義
  • 倉庫ごとに利用可能なオプションが異なるため、dbt ドキュメントを参照
version: 2

sources:
  - name: raw
    tables:
      - name: phone_orders
      - name: web_orders
中級 dbt

ソースへのアクセス

  • {{ source() }} を使う
  • {{ source(source_name, table_name) }}
  • コンパイル後のクエリで正しいテーブル名を提供
select * from
  {{ source('raw', 'phone_orders') }}
UNION
select * from
  {{ source('raw', 'web_orders') }}
-- dbt compiled
select * from
  'raw'.'phone_orders'
UNION
select * from
  'raw'.'web_orders'
中級 dbt

ソースのテスト

  • ソースにテストを適用可能
  • モデルと同じ方法
  • models: ではなく sources: セクションで定義
  • ソースを定義した .yml ファイル内
version: 2

sources:
  - name: raw
    tables:
      - name: phone_orders
        columns:
          - name: id
            tests:
              - not_null
              - unique
      - name: web_orders
中級 dbt

練習しましょう!

中級 dbt

Preparing Video For Download...