Cum să folosești testele built-in în dbt
DodaTech
Updated 2025-01-15
2 min read
In this tutorial, you'll learn about Cum să folosești testele built. We cover key concepts, practical examples, and best practices.
Vei învăța cum să folosești testele built-in în dbt — not_null, unique, accepted_values, relationships — pentru a valida datele rapid, fără a scrie SQL manual.
Problema
Scrierea manuală a testelor SQL pentru fiecare coloană e consumatoare de timp. dbt oferă teste built-in care acoperă majoritatea cazurilor comune de validare.
Modul Greșit
-- Test manual — duplicat pentru fiecare coloană
SELECT * FROM stg_users WHERE id IS NULL;
SELECT * FROM stg_users WHERE email IS NULL;
SELECT * FROM stg_orders WHERE id IS NULL;
-- Zeci de fișiere pentru același tip de test
Modul Corect
# models/schema.yml — teste built-in declarative
version: 2
models:
- name: stg_users
description: "Date utilizatori"
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
severity: warn
dbt test
Output:
17:23:45 1 of 7 PASS not_null_stg_users_id
17:23:45 2 of 7 PASS unique_stg_users_id
17:23:45 3 of 7 PASS not_null_stg_users_email
17:23:46 4 of 7 PASS unique_stg_users_email
17:23:46 5 of 7 PASS accepted_values_stg_users_status
17:23:46 6 of 7 PASS not_null_stg_orders_id
17:23:47 7 of 7 PASS not_null_stg_orders_user_id
17:23:47 Finished running 7 tests
Teste Built-in Principale
| Test | Descriere | Configurare |
|---|---|---|
not_null |
Coloana nu conține NULL | - not_null |
unique |
Coloana are valori unice | - unique |
accepted_values |
Coloana conține doar valori permise | values: ['a', 'b'] |
relationships |
Integritate referențială | to: ref('x'), field: id |
dbt_utils.* |
Teste utilitare suplimentare | Necesită pachetul dbt_utils |
Pas cu Pas
1. Adaugă testul în YAML
columns:
- name: user_id
tests:
- not_null
- unique
2. Rulează testele
dbt test --model stg_users
dbt test --select "stg_users" # Teste + modele asociate
3. Configurează severitatea
tests:
- not_null:
severity: warn # Nu blochează pipeline-ul
- unique:
severity: error # Blochează
Sfaturi de Prevenție
- Adaugă
not_nullșiuniquepe fiecare cheie primară - Folosește
accepted_valuespentru coloane cu valori prestabilite - Configurează
relationshipspentru integritatea referențială - Utiliză
dbt_utilspentru teste avansate (cardinalitate, recency)
Greșeli Comune
- Fără
uniquepe chei primare — duplicatele trec neobservate accepted_valuesnesusținut de date — valori noi apar și testul eșueazărelationshipsfărăfieldexplicit — dbt folosește implicitid, care poate fi greșit- Prea multe teste — teste redundante încetinesc execuția fără beneficiu
Întrebări Frecvente
Construit de dezvoltătorii Doda Browser, DodaZIP și Durga Antivirus Pro. Instrumentele DodaTech se integrează perfect cu dbt pentru testare rapidă.
← Previous
Cum să configurezi quoting-ul pentru seed-uri în dbt
Next →
Cum să creezi teste personalizate în dbt
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro