Skip to content

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 și unique pe fiecare cheie primară
  • Folosește accepted_values pentru coloane cu valori prestabilite
  • Configurează relationships pentru integritatea referențială
  • Utiliză dbt_utils pentru teste avansate (cardinalitate, recency)

Greșeli Comune

  1. Fără unique pe chei primare — duplicatele trec neobservate
  2. accepted_values nesusținut de date — valori noi apar și testul eșuează
  3. relationships fără field explicit — dbt folosește implicit id, care poate fi greșit
  4. Prea multe teste — teste redundante încetinesc execuția fără beneficiu

Întrebări Frecvente

### Cum instalez `dbt_utils`?

Adaugă în packages.yml: - package: dbt-labs/dbt_utils, version: 1.1.1, apoi dbt deps.

Pot combina mai multe teste built-in pe aceeași coloană?

Da — fiecare test e independent. Poți avea not_null, unique și accepted_values pe aceeași coloană.

Cum aleg între warn și error ca severitate?

Folosește warn pentru teste informative (pot eșua temporar). Folosește error pentru reguli stricte (nu trebuie să eșueze niciodată).

Construit de dezvoltătorii Doda Browser, DodaZIP și Durga Antivirus Pro. Instrumentele DodaTech se integrează perfect cu dbt pentru testare rapidă.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro