dbt'de test etmeye giriş

Orta Düzey dbt

Mike Metzger

Data Engineer

Test nedir?

  • dbt nesneleri için doğrulamalar
    • Modeller
    • Kaynaklar ve seed'ler
  • Verinin beklendiği gibi olduğunu doğrulamak için kullanılır
    • Boş değerler
    • Aralıktaki değerler
    • Veriler arası ilişkiler
    • Özel testler (sonra ele alınacak)
Orta Düzey dbt

Test türleri

dbt üç tür test sunar

  1. Yerleşik (4 ön tanımlı)
  2. Tekil*
  3. Genel*

$$

  • sonra ele alınacak
Orta Düzey dbt

Yerleşik testler

  • unique
    • Tüm değerlerin benzersiz olduğunu doğrular
  • not_null
    • Tüm değerlerin boş olmadığını doğrular
  • accepted_values
    • Tüm değerlerin belirli bir listedeki olduğunu doğrular
    • values: [a, b, c, d]
  • relationships
    • Belirli bir tablo/sütunla ilişkiyi doğrular
    • to: ref('table')
    • field: id
Orta Düzey dbt

Testler nereye uygulanır?

  • models/model_properties.yml
    • Dosya herhangi bir adla olabilir
    • models/schema.yml
  • tests: alt başlığında tanımlanır
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]
Orta Düzey dbt

Testleri çalıştırma

  • dbt test
    • dbt test --select modelname
  • Çıktının geçtiğini doğrulayın
  • Hata varsa, derlenen SQL ile karşılaştırın

dbt başarısız test çıktısı

Orta Düzey dbt

Başarısızlıkları bulma

  1. Derlenmiş SQL kodunu bulunmalıdır
  2. target/compiled/projectname/models/model_properties.yml dizininde
    • target/compiled/nyc_yellow_taxi/models/model_properties.yml/
  3. Uygun .sql dosyasını bulun (başarısız teste karşılık gelen)
  4. İçeriği veritabanı istemcisine kopyalayın ve sorunun nerede olduğunu doğrulayın
  5. Veriden kaldırın ve dbt run / dbt test komutlarını yeniden çalıştırın
Orta Düzey dbt

Hadi pratik yapalım!

Orta Düzey dbt

Preparing Video For Download...