データマネジメントの学校
← コースに戻る

未ログインのため、この講座の進捗は記録されません。ログインすると記録が残るようになります。

テスト(data tests)

dbtには、モデルの出力を検証するデータテストの仕組みが組み込まれている。テストには大きく2種類ある。

generic test(汎用テスト)singular test(個別テスト)
内容パラメータ化された再利用可能なテストtests/ディレクトリに置く1回限りの独自SQL
判定方法標準で組み込まれた4種類のいずれかを適用SELECTした結果が1行でも返ってきたら失敗

generic testには次の4つが標準で組み込まれている。

テスト検証内容
unique値が重複していないか
not_nullNULLが含まれていないか
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)コマンドでまとめて実行され、データ品質の劣化を早期に検知できる。