Pengantar pengujian di dbt

dbt Tingkat Menengah

Mike Metzger

Data Engineer

Apa itu tes?

  • Pernyataan/validasi untuk objek dbt
    • Model
    • Sumber dan seed
  • Untuk memastikan data sesuai harapan
    • Nilai null
    • Nilai dalam rentang
    • Relasi antar data
    • Tes kustom (dibahas nanti)
dbt Tingkat Menengah

Jenis tes

dbt menyediakan tiga jenis tes

  1. Bawaan (4 pradefinisi)
  2. Singular*
  3. Generik*

$$

  • akan dibahas nanti
dbt Tingkat Menengah

Tes bawaan

  • unique
    • Memastikan semua nilai unik
  • not_null
    • Memastikan semua nilai tidak null
  • accepted_values
    • Memastikan semua nilai ada dalam daftar tertentu
    • values: [a, b, c, d]
  • relationships
    • Memastikan keterkaitan ke tabel/kolom tertentu
    • to: ref('table')
    • field: id
dbt Tingkat Menengah

Di mana menerapkan tes?

  • models/model_properties.yml
    • Nama file bebas
    • models/schema.yml
  • Didefinisikan di subjudul tests:
version: 2

models:
  - name: taxi_rides_raw
    columns:
      - name: tpep_pickup_datetime
        tests:
          - not_null
      - name: payment_type
        tests:
          - not_null
          - accepted_values:
              values: [1, 2, 3, 4, 5, 6]
dbt Tingkat Menengah

Menjalankan tes

  • dbt test
    • dbt test --select modelname
  • Verifikasi hasil lulus
  • Jika gagal, cek SQL terkompilasi

output uji dbt gagal

dbt Tingkat Menengah

Menemukan kegagalan

  1. Temukan kode SQL terkompilasi
  2. Di direktori target/compiled/projectname/models/model_properties.yml
    • target/compiled/nyc_yellow_taxi/models/model_properties.yml/
  3. Cari file .sql yang sesuai (sesuai tes yang gagal)
  4. Salin isinya ke klien basis data dan identifikasi sumber masalah
  5. Perbaiki data lalu jalankan lagi dbt run / dbt test
dbt Tingkat Menengah

Ayo berlatih!

dbt Tingkat Menengah

Preparing Video For Download...