Hva er nytt i dbt?¶
Oversikt over de viktigste endringene i dbt-core fra versjon 1.7 og frem til i dag. Fokus er på funksjoner relevante for dbt-core-brukere med Oracle on-prem.
Fullstendige endringslogger: dbt Core upgrade guides
v1.8 (2024)¶
Unit tests¶
Den største nyheten i 1.8. Du kan nå skrive enhetstester som validerer SQL-logikken på et lite sett med statiske inputdata – uten å kjøre mot databasen. Dette støtter test-drevet utvikling og gjør det lettere å oppdage feil tidlig.
unit_tests:
- name: test_is_valid_email_address
model: dim_customers
given:
- input: ref('stg_customers')
rows:
- {email: "valid@example.com", expected: true}
- {email: "invalid", expected: false}
expect:
rows:
- {email: "valid@example.com", is_valid_email: true}
- {email: "invalid", is_valid_email: false}
Kjør kun enhetstester:
dbt test --select "test_type:unit"
Ny data_tests:-syntaks¶
tests: i YAML-filer er omdøpt til data_tests: for å skille datatester fra enhetstester. Begge syntakser støttes foreløpig, men migrer til data_tests: for fremtidssikkerhet.
--empty-flagg for dry-runs¶
dbt run --empty og dbt build --empty kjører modell-SQL mot databasen, men begrenser refs og sources til null rader. Nyttig for å validere avhengigheter og at modeller kompilerer uten kostbare datalesninger.
Eksplisitt adapterinstallasjon¶
Fra v1.8 anbefales det å installere adapter og core separat:
pip install dbt-core dbt-oracle
v1.9 (2024)¶
Microbatch incremental_strategy¶
Ny strategi for svært store datasett. I stedet for én stor inkrementell spørring, bryter dbt opp lastet i diskrete tidsbatcher med egne SQL-spørringer. Konfigureres med event_time, batch_size og lookback.
models:
- name: stg_events
config:
materialized: incremental
incremental_strategy: microbatch
event_time: created_at
batch_size: day
lookback: 3
Særlig nyttig der én stor inkrementell spørring går i timeout. Mislykkede batcher kan kjøres på nytt isolert med dbt retry.
Merk: Sjekk om
dbt-oracle-versjonen du bruker støtter microbatch.
Forbedringer for snapshots¶
- Snapshots kan nå konfigureres i YAML-filer (i tillegg til SQL-filer)
- Nytt
hard_deletes-config: velg mellomignore,invalidateellernew_recordfor slettede kilderader snapshot_meta_column_nameslar deg tilpasse navn på metakolonner (dbt_valid_frometc.)target_schemaer ikke lenger påkrevd – snapshots arver da skjema fra miljøet
state:modified-forbedringer¶
Mer presis deteksjon av endringer ved bruk av --state, reduserer falske positive ved miljøavhengig logikk (f.eks. ulik materialisering i dev vs prod).
v1.10 (2025)¶
--sample-flagg for raskere utvikling¶
dbt run --sample eller dbt build --sample kjører modeller med et tidsbasert utvalg av data. Gir raskere bygg under utvikling uten å prosessere hele datasett.
anchors:-nøkkel for YAML-gjenbruk¶
Felles konfigurasjonsbokser kan nå samles under en dedikert anchors:-nøkkel i YAML-filer, i stedet for å ligge løst på toppnivå.
Properties flyttes til configs¶
Disse er nå tilgjengelige under config: (i tillegg til som properties):
freshness, meta, tags, docs, group, access
Dette er en del av en pågående opprydning mot et mer konsistent konfigurasjonsspråk.
Deprecation-advarsler for egendefinerte nøkler¶
Fra v1.10 gir dbt advarsler hvis du bruker egendefinerte attributter direkte under et ressursobjekt. Disse må nå ligge under meta:
# Gammel syntaks - gir nå advarsel
models:
- name: my_model
my_custom_field: true # ⚠️ Advarsel!
# Ny syntaks
models:
- name: my_model
config:
meta:
my_custom_field: true
Bruk dbt-autofix for å migrere automatisk.
v1.11 (2025)¶
User-defined functions (UDFs)¶
dbt støtter nå definisjon og registrering av egendefinerte databasefunksjoner som egne ressurser i DAG-en. Defineres i en functions/-mappe og refereres med {{ function('navn') }} i modeller.
Merk: Støtte avhenger av adapteren – sjekk
dbt-oracle-dokumentasjonen.
Deprecation-advarsler er nå påslått som standard¶
Advarslene fra v1.10 for ugyldig YAML-konfigurasjon er nå aktivert som standard for de fleste adaptere. Kjør dbt parse og rett opp eventuelle advarsler.
v1.12 (2026, beta)¶
.env-fil¶
dbt laster nå automatisk miljøvariabler fra en .env-fil i prosjektmappen. Shell-variabler overstyrer .env-verdier. Nye prosjekter får .env i .gitignore automatisk.
vars.yml¶
Prosjektvariabler kan nå defineres i en egen vars.yml-fil ved prosjektroten, i stedet for i dbt_project.yml. Holder dbt_project.yml ryddig.
selector:-metode for navngitte selektorer¶
Navngitte selektorer fra selectors.yml kan nå brukes direkte i --select:
dbt run --select "selector:my_selector+,tag:nightly"
Bedre feilmeldinger¶
Interne Python-feil erstattes med tydelige dbt-feil (CompilationError, ParsingError). Bruk --debug hvis du trenger full stack trace.