Grundlagen von DBT (Data Build Tool)
Modellieren Sie Warehouse-Daten als SELECT-Anweisungen in dbt – mit refs, sources und inkrementellen Modellen.
Grundlagen von DBT (Data Build Tool) ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Was dbt ist
dbt ist das „T“ in ELT: Es transformiert Daten innerhalb Ihres Data Warehouse mithilfe von SELECT-Anweisungen. Sie definieren Modelle (SELECTs), und dbt materialisiert sie als Tabellen oder Ansichten, verwaltet Abhängigkeiten und führt Tests aus.
Warum dbt?
Vor dbt befanden sich Transformationen in Ad-hoc-SQL-Skripten, Stored Procedures oder Python-Jobs. dbt bietet:
- Modulares SQL als Code, versioniert in Git
- Abhängigkeitsgraph (ref()) statt manueller Reihenfolge
- Tests als zentrale Objekte
- Automatische Dokumentationserstellung
Projektstruktur
Ein dbt-Projekt:
my_project/
dbt_project.yml
models/
staging/
stg_orders.sql
marts/
fct_revenue.sql
tests/
seeds/
macros/Eine Modelldatei
Einfach ein SELECT in einer .sql-Datei:
-- models/staging/stg_orders.sql
{{ config(materialized='view') }}
SELECT
id,
user_id,
total,
created_at
FROM {{ source('raw', 'orders') }}Materialisierungstypen
- view — dbt erstellt eine VIEW; schnell zu aktualisieren, langsamer abzufragen
- table — vollständige Tabelle; wird bei jedem Lauf neu erstellt
- incremental — nur neue Zeilen werden hinzugefügt
- ephemeral — inline eingefügte CTE, kein Datenbankobjekt
ref() und Abhängigkeiten
Ein Modell aus einem anderen referenzieren:
-- models/marts/fct_revenue.sql
SELECT
date_trunc('day', created_at) AS day,
SUM(total) AS revenue
FROM {{ ref('stg_orders') }}
GROUP BY 1dbt ausführen
Das gesamte Projekt erstellen:
dbt run # build all models
dbt run --select staging # subset
dbt run --select +fct_revenue # this model and upstream
dbt build # run + testQuellen
Quellen dokumentieren die rohen Tabellen und stellen Verweise auf sie bereit:
# models/sources.yml
sources:
- name: raw
database: warehouse
tables:
- name: ordersInkrementelle Modelle
Für sehr große Faktentabellen:
{{ config(materialized='incremental', unique_key='id') }}
SELECT *
FROM {{ source('raw','orders') }}
{% if is_incremental() %}
WHERE created_at > (SELECT MAX(created_at) FROM {{ this }})
{% endif %}Jinja-Templating
dbt besteht aus SQL + Jinja, sodass Sie SQL in Schleifen und bedingt generieren können:
{% set tiers = ['free','pro','enterprise'] %}
SELECT user_id,
{% for t in tiers %}
COUNT(*) FILTER (WHERE tier = '{{ t }}') AS {{ t }}_count {% if not loop.last %},{% endif %}
{% endfor %}
FROM users GROUP BY user_idSnapshots
Sich langsam ändernde Dimensionen automatisch erfassen:
{% snapshot user_snapshot %}
{{ config(
target_schema='snapshots',
unique_key='id',
strategy='timestamp',
updated_at='updated_at',
) }}
SELECT * FROM {{ source('raw','users') }}
{% endsnapshot %}Dokumentation
Erzeugen Sie automatisch durchsuchbare Dokumentation aus Ihren Modellen und YAML-Beschreibungen:
dbt docs generate
dbt docs serve # opens browserZusammenfassung
dbt modelliert Datentransformationen als SQL-Code.
- Modell = SELECT in einer .sql-Datei
- ref() erstellt den DAG
- Materialisierungen: view / table / incremental / ephemeral
- Tests und Dokumentation als zentrale Bestandteile
Kurzer Check
Was bewirkt {{ ref('stg_orders') }} in dbt?
Häufig gestellte Fragen
Ist die Lektion „Grundlagen von DBT (Data Build Tool)“ kostenlos?
Ja — der vollständige Text von „Grundlagen von DBT (Data Build Tool)“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Grundlagen von DBT (Data Build Tool)“?
Modellieren Sie Warehouse-Daten als SELECT-Anweisungen in dbt – mit refs, sources und inkrementellen Modellen. Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um SQL Academy zu starten?
Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Grundlagen von DBT (Data Build Tool)“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?
Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Grundlagen von DBT (Data Build Tool)
- SQLFluff und Linting
- SQL testen: dbt-Tests, Great Expectations
- CI für Schemaänderungen (GitHub Actions)