Introduzione ai test in dbt

dbt intermedio

Mike Metzger

Data Engineer

Cos’è un test?

  • Asserzioni/validazioni di oggetti dbt
    • Modelli
    • Sorgenti e seed
  • Servono a verificare che i dati siano come previsto
    • Valori null
    • Valori in un intervallo
    • Relazioni tra dati
    • Test personalizzati (più avanti)
dbt intermedio

Tipi di test

dbt offre tre tipi di test

  1. Integrati (4 predefiniti)
  2. Singolari*
  3. Generici*

$$

  • saranno trattati più avanti
dbt intermedio

Test integrati

  • unique
    • Verifica che tutti i valori siano unici
  • not_null
    • Verifica che non ci siano null
  • accepted_values
    • Verifica che i valori siano in una lista specifica
    • values: [a, b, c, d]
  • relationships
    • Verifica il collegamento a una tabella/colonna specifica
    • to: ref('table')
    • field: id
dbt intermedio

Dove applicare i test?

  • models/model_properties.yml
    • Il file può avere qualsiasi nome
    • models/schema.yml
  • Definiti nella sezione 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 intermedio

Eseguire i test

  • dbt test
    • dbt test --select modelname
  • Verifica che l’output passi
  • In caso di errore, controlla la SQL compilata

output test dbt fallito

dbt intermedio

Trovare gli errori

  1. Trova il codice SQL compilato
  2. Nella directory target/compiled/projectname/models/model_properties.yml
    • target/compiled/nyc_yellow_taxi/models/model_properties.yml/
  3. Trova il file .sql corrispondente (del test fallito)
  4. Copiane il contenuto nel client del database e verifica dov’è il problema
  5. Correggi i dati e riesegui dbt run / dbt test
dbt intermedio

Ayo berlatih!

dbt intermedio

Preparing Video For Download...