dbt seeds

Intermediate dbt

Mike Metzger

Data Engineer

Vad är dbt seeds?

  • CSV-filer som läses in i datalagret
  • Vanligtvis data som sällan ändras
    • Lista över länder
    • Lista över postnummer
  • INTE avsedd för rådata

Seeds

1 Foto av Maddi Bazzocco på Unsplash
Intermediate dbt

Varför?

  • Enkla att hantera
  • Enkla att använda i olika sammanhang
  • Versionshanterbara
Intermediate dbt

Hur definieras seeds?

  • Lägg till en CSV-fil i katalogen seeds
  • Kontrollera att rubriken finns på första raden
  • Importera med kommandot dbt seed
zipcode,place,state
99553,Akutan,Alaska
99571,Cold Bay,Alaska
99583,False Pass,Alaska

bash> dbt seed
1 Postnummer tillhandahålls via https://github.com/zauberware/postal-codes-json-xml-csv
Intermediate dbt

Ytterligare konfiguration

  • Flera alternativ
    • Vilket schema?
    • Vilken databas?
    • Kolumncitat
    • Kolumndatatyper
  • Kan tillämpas på hela projektet eller på enskilda seeds
  • Kan läggas till i dbt_project.yml eller seeds/properties.yml
Intermediate dbt

Definiera datatyper

  • Tillgängliga datatyper beror på datalagret
  • Vanliga typer stöds
    • Integer
    • Varchar
    • osv.
  • Om ingen typ anges härleds den från datan
version: 2

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

Test

  • Stöder tester
  • Precis som modeller och källor
version: 2

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

Använda seeds

  • Tillgänglig via kommandot {{ ref() }}
  • Fungerar som en modell efter den första importen
select * from
  {{ ref('zipcodes') }}
Intermediate dbt

Nu kör vi en övning!

Intermediate dbt

Preparing Video For Download...