dbtのシード

中級 dbt

Mike Metzger

Data Engineer

dbtのシードとは?

  • DWHに読み込むCSVファイル
  • 典型的にはほとんど変わらないデータ
    • 国一覧
    • 郵便番号一覧
  • 生データ用ではない

シード

1 Photo by Maddi Bazzocco on Unsplash
中級 dbt

利点

  • 管理が容易
  • さまざまな場面で使いやすい
  • ソース管理可能
中級 dbt

シードの定義方法

  • CSVをseedsディレクトリに追加
  • 先頭行をヘッダーにする
  • dbt seed コマンドで取り込み
zipcode,place,state
99553,Akutan,Alaska
99571,Cold Bay,Alaska
99583,False Pass,Alaska

bash> dbt seed
1 Postal codes provided via https://github.com/zauberware/postal-codes-json-xml-csv
中級 dbt

追加の設定

  • いくつかのオプション
    • どのスキーマか
    • どのデータベースか
    • 列名のクオート
    • 列のデータ型
  • プロジェクト全体または個々のシードに適用可能
  • dbt_project.yml または seeds/properties.yml に追加可能
中級 dbt

データ型の定義

  • 利用可能なデータ型はDWHに依存
  • 代表的な型は利用可
    • Integer
    • Varchar
    • など
  • 型未指定の場合、データから推論
version: 2

seeds:
  - name: zipcodes
    config:
      column_types:
        zipcode: varchar(5)
中級 dbt

テスト

  • テストをサポート
  • モデルやソースと同様
version: 2

seeds:
  - name: zipcodes
    config:
      column_types:
        zipcode: varchar(5)
    columns:
      - name: zipcode
        tests:
          - unique
中級 dbt

シードへのアクセス

  • {{ ref() }} で参照可能
  • 取り込み後はモデル同様に扱える
select * from
  {{ ref('zipcodes') }}
中級 dbt

練習しましょう!

中級 dbt

Preparing Video For Download...