Quellen in dbt

dbt für Forgeschrittene

Mike Metzger

Data Engineer

Was ist eine dbt-Quelle?

  • Name und Beschreibung der durch den EL-Prozess geladenen Daten
  • Hilft dabei, die Datenherkunft zu definieren
  • Tests
  • Dokumentation

Datenquelle

1 Foto von Mika Baumeister auf Unsplash
dbt für Forgeschrittene

Quellen

  • Stellen Datenherkunftsinformationen bereit
  • Beschreiben den Datenfluss im Warehouse
  • Verwende die Jinja-Funktion {{ source() }}
    • Ähnlich wie die {{ ref() }}-Funktion
  • Vereinfachen den Zugriff auf Rohdaten
select * 
from
  {{ source('raw', 'orders') }}
dbt für Forgeschrittene

Eine Quelle definieren

  • In der .yml-Datei
  • Datei kann models/model_properties.yml heißen
    • Oder eine andere beliebige .yml-Datei im Verzeichnis
  • Im Abschnitt sources:
  • Quelle mittels - name: benennen
  • Jede Quellen-Tabelle mit einer - name:-Option unter tables: definieren
  • Je nach Typ des Data Warehouse stehen verschiedene Optionen zur Verfügung. Weitere Informationen findest du in der dbt-Dokumentation.
version: 2

sources:
  - name: raw
    tables:
      - name: phone_orders
      - name: web_orders
dbt für Forgeschrittene

Auf Quellen zugreifen

  • Verwendung von {{ source() }}
  • {{ source(source_name, table_name) }}
  • Gibt den korrekten Namen der Tabelle in der kompilierten Abfrage an
select * from
  {{ source('raw', 'phone_orders') }}
UNION
select * from
  {{ source('raw', 'web_orders') }}
-- dbt compiled
select * from
  'raw'.'phone_orders'
UNION
select * from
  'raw'.'web_orders'
dbt für Forgeschrittene

Quellen testen

  • Tests können auf Quellen angewenden werden
  • Gleiche Methoden wie bei der Anwendung auf Modelle
  • Im Abschnitt sources: anstatt in models: definiert
  • In der .yml-Datei, in der Quellen definiert sind
version: 2

sources:
  - name: raw
    tables:
      - name: phone_orders
        columns:
          - name: id
            tests:
              - not_null
              - unique
      - name: web_orders
dbt für Forgeschrittene

Lass uns üben!

dbt für Forgeschrittene

Preparing Video For Download...