dbt Seeds

dbt für Forgeschrittene

Mike Metzger

Data Engineer

Was sind dbt-Seeds?

  • CSV-Dateien, die in das Data Warehouse geladen werden sollen
  • Typischerweise sich selten verändernde Datensätze
    • Liste von Ländern
    • Liste mit Postleitzahlen
  • NICHT für Rohdaten gedacht

Seeds

1 Foto von Maddi Bazzocco auf Unsplash
dbt für Forgeschrittene

Warum benutzen?

  • Einfach zu verwalten
  • Einfach zu verwenden in verschiedenen Szenarien
  • Inhalt kontrollierbar
dbt für Forgeschrittene

Wie werden Seeds definiert?

  • CSV-Datei zum seeds-Verzeichnis hinzufügen
  • Erste Zeile muss Kopfzeile der Daten sein
  • Import mittels dbt seed-Befehl
zipcode,place,state
99553,Akutan,Alaska
99571,Cold Bay,Alaska
99583,False Pass,Alaska

bash> dbt seed
1 Postleitzahlen bereitgestellt über https://github.com/zauberware/postal-codes-json-xml-csv
dbt für Forgeschrittene

Weitere Konfigurationen

  • Diverse Optionen
    • Welches Schema?
    • Welche Datenbank?
    • Spalten-Auswahl
    • Spaltendatentypen
  • Anwendung auf das gesamte Projekt oder auf einzelne Seeds
  • Kann zu dbt_project.yml oder seeds/properties.yml hinzugefügt werden
dbt für Forgeschrittene

Datentypen definieren

  • Verfügbare Datentypen hängen vom Data Warehouse ab
  • Typischerweise verfügbar
    • Integer
    • Varchar
    • usw.
  • Wenn der Typ nicht definiert ist, wird er anhand der Daten abgeleitet
version: 2

seeds:
  - name: zipcodes
    config:
      column_types:
        zipcode: varchar(5)
dbt für Forgeschrittene

Tests

  • Test werden unterstützt
  • Genau wie bei Modellen und Quellen
version: 2

seeds:
  - name: zipcodes
    config:
      column_types:
        zipcode: varchar(5)
    columns:
      - name: zipcode
        tests:
          - unique
dbt für Forgeschrittene

Auf Seeds zugreifen

  • Verfügbar über den {{ ref() }}-Befehl
  • Selbes verhalten wie ein Modell nach dem ersten Import
select * from
  {{ ref('zipcodes') }}
dbt für Forgeschrittene

Lass uns üben!

dbt für Forgeschrittene

Preparing Video For Download...