Cum să adaugi teste la modele în dbt
In this tutorial, you'll learn about Cum să adaugi teste la modele în dbt. We cover key concepts, practical examples, and best practices.
Vei învăța cum să adaugi teste la modele dbt pentru a verifica automat calitatea datelor, integritatea referențială și validitatea valorilor.
Problema
Datele din bazele de date se degradează în timp — valori NULL apar în coloane obligatorii, duplicate, valori invalide. dbt oferă un sistem de testare care rulează automat și semnalează problemele.
Modul Greșit
-- Verificare manuală — uitată, nerepetabilă
SELECT COUNT(*) FROM users WHERE email IS NULL;
-- Rulezi manual când îți amintești, dar nu e în pipeline
Modul Corect
# models/schema.yml — teste declarative
version: 2
models:
- name: stg_users
columns:
- name: id
tests:
- not_null
- unique
- name: email
tests:
- not_null
- unique
- name: status
tests:
- accepted_values:
values: ['active', 'inactive', 'banned']
- name: stg_orders
columns:
- name: id
tests:
- not_null
- unique
- name: user_id
tests:
- not_null
- relationships:
to: ref('stg_users')
field: id
dbt test --model stg_users
Output:
17:23:45 1 of 4 PASS not_null_stg_users_id
17:23:45 2 of 4 PASS unique_stg_users_id
17:23:46 3 of 4 PASS not_null_stg_users_email
17:23:46 4 of 4 PASS accepted_values_stg_users_status
17:23:46 Finished running 4 tests
Pas cu Pas
1. Identifică coloanele critice
Alege coloanele care trebuie să fie mereu prezente și corecte.
2. Adaugă teste în schema.yml
columns:
- name: order_id
tests:
- not_null
- unique
- name: status
tests:
- accepted_values:
values: ['pending', 'shipped', 'delivered']
3. Rulează testele
dbt test # Toate testele
dbt test --model stg_users # Teste doar pentru un model
dbt test --select test_type:generic # Doar teste generice
Sfaturi de Prevenție
- Adaugă
not_nullșiuniquepe fiecare primary key - Testează integritatea referențială cu
relationships - Rulează
dbt testîn pipeline-ul CI - Folosește
--store-failurespentru a păstra istoricul testelor eșuate
Greșeli Comune
- Teste lipsă pe chei primare —
not_nullșiuniquear trebui să fie pe fiecare ID - Accepted_values prea strict — valori noi apar și testul eșuează; menține lista actualizată
- Relationship test cu type mismatch — coloanele trebuie să aibă același tip de date
- Prea multe teste pe coloane necritice — teste inutile încetinesc pipeline-ul
Întrebări Frecvente
Construit de dezvoltătorii Doda Browser, DodaZIP și Durga Antivirus Pro. Instrumentele DodaTech se integrează perfect cu dbt pentru testarea calității datelor.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro