単体テストの作成

中級 dbt

Mike Metzger

Data Engineer

単体テストとは?

  • カスタムデータテスト
  • SQLクエリとして記述
    • 失敗行を返す必要あり
  • tests ディレクトリ内の .sql ファイルとして定義

テスト画像

1 Photo by Antoine Dautry on Unsplash
中級 dbt

単体テストの例

  • 次を検証するテストを作成:
    • order_totalsubtotal >=
select *
from order
where order_total < subtotal
  • 注意: 行が返れば失敗。失敗行を返すクエリにする。
  • ファイル名: assert_order_total_gte_subtotal.sql として保存

order_table スキーマ図

中級 dbt

Jinja付き単体テスト

  • テストでJinjaを使用可能
    • ref 関数
    • 他も適宜
  • テスト実行時にdbtが出力を置換
    • dbtプロファイル変更時はプロジェクトを再実行
select *
from {{ ref('order') }}
where order_total < subtotal
中級 dbt

テストのデバッグ

  • SQLエディタで初期テストクエリを作成
  • 適切なファイルに配置
  • テスト名は一意にする
  • dbt test --select <testname> を使用
  • エラーを確認し、必要に応じて更新
中級 dbt

Passons à la pratique !

中級 dbt

Preparing Video For Download...