Úvod do testování v dbt

Intermediate dbt

Mike Metzger

Data Engineer

Co je to test?

  • Tvrzení / validace objektů dbt
    • Modely
    • Zdroje a seed soubory
  • Ověření, že data jsou dle očekávání
    • Hodnoty null
    • Hodnoty v rozsahu
    • Vztahy mezi daty
    • Vlastní testy (probereme později)
Intermediate dbt

Typy testů

dbt nabízí tři druhy testů

  1. Vestavěné (4 předdefinované)
  2. Singulární*
  3. Generické*

$$

  • probereme později
Intermediate dbt

Vestavěné testy

  • unique
    • Ověří, že všechny hodnoty jsou jedinečné
  • not_null
    • Ověří, že žádná hodnota není null
  • accepted_values
    • Ověří, že všechny hodnoty jsou v daném seznamu
    • values: [a, b, c, d]
  • relationships
    • Ověří propojení s konkrétní tabulkou / sloupcem
    • to: ref('table')
    • field: id
Intermediate dbt

Kde aplikovat testy?

  • models/model_properties.yml
    • Soubor může mít libovolný název
    • models/schema.yml
  • Definováno v sekci 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]
Intermediate dbt

Spouštění testů

  • dbt test
    • dbt test --select modelname
  • Ověřte, že výstup prošel
  • Při selhání zkontrolujte zkompilovaný SQL

Výstup neúspěšného testu dbt

Intermediate dbt

Hledání chyb

  1. Najděte zkompilovaný SQL kód
  2. V adresáři target/compiled/projectname/models/model_properties.yml
    • target/compiled/nyc_yellow_taxi/models/model_properties.yml/
  3. Najděte příslušný soubor .sql (odpovídající neúspěšnému testu)
  4. Zkopírujte obsah do databázového klienta a ověřte, kde chyba leží
  5. Odstraňte data a spusťte znovu dbt run / dbt test
Intermediate dbt

Pojďme si procvičit!

Intermediate dbt

Preparing Video For Download...