← コースに戻る
未ログインのため、この講座の進捗は記録されません。ログインすると記録が残るようになります。
テスト(data tests)
dbtには、モデルの出力を検証するデータテストの仕組みが組み込まれている。テストには大きく2種類ある。
| generic test(汎用テスト) | singular test(個別テスト) | |
|---|---|---|
| 内容 | パラメータ化された再利用可能なテスト | tests/ディレクトリに置く1回限りの独自SQL |
| 判定方法 | 標準で組み込まれた4種類のいずれかを適用 | SELECTした結果が1行でも返ってきたら失敗 |
generic testには次の4つが標準で組み込まれている。
| テスト | 検証内容 |
|---|---|
| unique | 値が重複していないか |
| not_null | NULLが含まれていないか |
| accepted_values | 値が指定したリストの中に収まっているか |
| relationships | 参照先のモデルに対応する値が存在するか(外部キーの整合性) |
models:
- name: orders
columns:
- name: order_id
data_tests:
- unique
- not_null
- name: status
data_tests:
- accepted_values:
arguments:
values: ['placed', 'shipped', 'completed']
これらのテストはdbt test(またはdbt build)コマンドでまとめて実行され、データ品質の劣化を早期に検知できる。