Introducere în testarea în dbt

dbt intermediar

Mike Metzger

Data Engineer

Ce este un test?

  • Aserțiuni / validări ale obiectelor dbt
    • Modele
    • Surse și seed-uri
  • Verifică dacă datele sunt conforme așteptărilor
    • Valori nule
    • Valori în interval
    • Relații între date
    • Teste personalizate (vor fi tratate ulterior)
dbt intermediar

Tipuri de teste

dbt oferă trei tipuri de teste

  1. Predefinite (4 teste incluse)
  2. Singulare*
  3. Generice*

$$

  • vor fi tratate ulterior
dbt intermediar

Teste predefinite

  • unique
    • Verifică că toate valorile sunt unice
  • not_null
    • Verifică că nicio valoare nu este nulă
  • accepted_values
    • Verifică că valorile se află într-o listă specifică
    • values: [a, b, c, d]
  • relationships
    • Verifică o legătură cu un tabel / o coloană specifică
    • to: ref('table')
    • field: id
dbt intermediar

Unde se aplică testele?

  • models/model_properties.yml
    • Fișierul poate avea orice nume
    • models/schema.yml
  • Definite în secțiunea 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 intermediar

Rularea testelor

  • dbt test
    • dbt test --select modelname
  • Verificați dacă rezultatul este corect
  • În caz de eroare, verificați SQL-ul compilat

Rezultatul unui test dbt eșuat

dbt intermediar

Identificarea erorilor

  1. Găsiți codul SQL compilat
  2. În directorul target/compiled/projectname/models/model_properties.yml
    • target/compiled/nyc_yellow_taxi/models/model_properties.yml/
  3. Găsiți fișierul .sql corespunzător (cel care a eșuat)
  4. Copiați conținutul în clientul bazei de date și identificați eroarea
  5. Eliminați din date și rulați din nou dbt run / dbt test
dbt intermediar

Să exersăm!

dbt intermediar

Preparing Video For Download...