Terug naar Utils

dbt macro

Logging

Houd automatisch bij wanneer een dbt run start en klaar is, direct in Snowflake.

Doel

In productie-omgevingen wil je weten wanneer een dbt run is gestart, hoe lang hij duurde en of hij succesvol was. De Logging macro schrijft deze informatie automatisch weg naar een tabel in Snowflake via de dbt hook-mechanismen. Zo bouw je een volledige audittrail op van al je dbt-runs, zonder extra tooling.

Wat je kunt verwachten

Na elke dbt run wordt een rij toegevoegd aan een logtabel in Snowflake met de volgende velden:

KolomTypeBeschrijving
invocation_idTEXTUnieke id van de dbt run
project_nameTEXTNaam van het dbt project
target_nameTEXTdbt target (bijv. dev of prod)
run_started_atTIMESTAMP_TZStarttijdstip van de run
run_ended_atTIMESTAMP_TZEindtijdstip van de run
statTEXTStatus (bijv. success of error)

Gebruik

1. Voeg de hooks toe aan dbt_project.yml

De macros worden aangeroepen via de on-run-start en on-run-end hooks van dbt:

on-run-start:
  - "{{ log_dbt_start() }}"

on-run-end:
  - "{{ log_dbt_end() }}"

2. Maak de logtabel aan in Snowflake

De macro schrijft naar een tabel die je eerst aanmaakt. Standaard wordt datamodder.runtimes gebruikt:

CREATE TABLE <database>.datamodder.runtimes (
  invocation_id  TEXT,
  project_name   TEXT,
  target_name    TEXT,
  run_started_at TIMESTAMP_TZ,
  run_ended_at   TIMESTAMP_TZ,
  stat           TEXT
);

3. Optioneel: schema en tabel aanpassen

Gebruik variabelen in dbt_project.yml om de locatie te wijzigen:

vars:
  management_config:
    schema: datamodder   # standaard
    table:  runtimes     # standaard