dbt-seeds

Gevorderde dbt

Mike Metzger

Data Engineer

Wat zijn dbt-seeds?

  • CSV-bestanden die je in het datawarehouse laadt
  • Meestal zelden veranderende datasets
    • Lijst met landen
    • Lijst met postcodes
  • Niet bedoeld voor ruwe data

Seeds

1 Foto door Maddi Bazzocco op Unsplash
Gevorderde dbt

Waarom?

  • Makkelijk te beheren
  • Makkelijk te gebruiken in diverse scenario’s
  • Versiebeheer mogelijk
Gevorderde dbt

Hoe definieer je seeds?

  • Voeg een CSV-bestand toe aan de map seeds
  • Zorg dat de header de eerste rij is
  • Importeer met het commando dbt seed
zipcode,place,state
99553,Akutan,Alaska
99571,Cold Bay,Alaska
99583,False Pass,Alaska

bash> dbt seed
1 Postcodes via https://github.com/zauberware/postal-codes-json-xml-csv
Gevorderde dbt

Verdere configuratie

  • Meerdere opties
    • Welke schema?
    • Welke database?
    • Kolomnamen quoten
    • Kolomdatatypes
  • Toepasbaar op het hele project of per seed
  • Toevoegen aan dbt_project.yml of seeds/properties.yml
Gevorderde dbt

Datatypes definiëren

  • Beschikbare datatypes hangen af van het datawarehouse
  • Gangbare types zijn beschikbaar
    • Integer
    • Varchar
    • etc.
  • Zonder gedefinieerd type wordt het uit de data afgeleid
version: 2

seeds:
  - name: zipcodes
    config:
      column_types:
        zipcode: varchar(5)
Gevorderde dbt

Test

  • Ondersteunen tests
  • Net als models en sources
version: 2

seeds:
  - name: zipcodes
    config:
      column_types:
        zipcode: varchar(5)
    columns:
      - name: zipcode
        tests:
          - unique
Gevorderde dbt

Seeds gebruiken

  • Beschikbaar via het {{ ref() }}-commando
  • Werkt als een model na de eerste import
select * from
  {{ ref('zipcodes') }}
Gevorderde dbt

Laten we oefenen!

Gevorderde dbt

Preparing Video For Download...