dbt seeds

Intermediate dbt

Mike Metzger

Data Engineer

Co jsou dbt seeds?

  • Soubory CSV načítané do datového skladu
  • Zpravidla zřídka se měnící data
    • Seznam zemí
    • Seznam PSČ
  • NEJSOU určeny pro nezpracovaná data

Seeds

1 Photo by Maddi Bazzocco on Unsplash
Intermediate dbt

Proč?

  • Snadná správa
  • Snadné použití v různých scénářích
  • Verzovatelné ve správě zdrojového kódu
Intermediate dbt

Jak se seeds definují?

  • Přidejte soubor CSV do adresáře seeds
  • Ujistěte se, že záhlaví je na prvním řádku
  • Importujte pomocí příkazu dbt seed
zipcode,place,state
99553,Akutan,Alaska
99571,Cold Bay,Alaska
99583,False Pass,Alaska

bash> dbt seed
1 Postal codes provided via https://github.com/zauberware/postal-codes-json-xml-csv
Intermediate dbt

Další konfigurace

  • Několik možností
    • Které schéma?
    • Jaká databáze?
    • Uvozování sloupců
    • Datové typy sloupců
  • Lze aplikovat na celý projekt nebo jednotlivé seeds
  • Lze přidat do dbt_project.yml nebo seeds/properties.yml
Intermediate dbt

Definování datových typů

  • Dostupné typy závisí na datovém skladu
  • Obvyklé typy jsou k dispozici
    • Integer
    • Varchar
    • atd.
  • Pokud typ není definován, je odvozen z dat
version: 2

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

Testy

  • Podporují testy
  • Stejně jako modely a zdroje
version: 2

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

Přístup k seeds

  • Přístupné pomocí příkazu {{ ref() }}
  • Po prvním importu se chová jako model
select * from
  {{ ref('zipcodes') }}
Intermediate dbt

Lass uns üben!

Intermediate dbt

Preparing Video For Download...