dbt seeds

dbt średnio zaawansowany

Mike Metzger

Data Engineer

Czym są dbt seeds?

  • Pliki CSV ładowane do hurtowni danych
  • Zazwyczaj rzadko zmieniające się dane
    • Lista krajów
    • Lista kodów pocztowych
  • NIE są przeznaczone dla danych surowych

Seeds

1 Photo by Maddi Bazzocco on Unsplash
dbt średnio zaawansowany

Dlaczego?

  • Łatwe w zarządzaniu
  • Łatwe do użycia w różnych scenariuszach
  • Objęte kontrolą wersji
dbt średnio zaawansowany

Jak definiuje się seeds?

  • Dodaj plik CSV do katalogu seeds
  • Upewnij się, że nagłówek jest w pierwszym wierszu
  • Zaimportuj przy użyciu polecenia 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
dbt średnio zaawansowany

Dodatkowa konfiguracja

  • Kilka opcji
    • Który schemat?
    • Która baza danych?
    • Cytowanie kolumn
    • Typy danych kolumn
  • Można stosować do całego projektu lub do pojedynczych seeds
  • Można dodać do dbt_project.yml lub seeds/properties.yml
dbt średnio zaawansowany

Definiowanie typów danych

  • Dostępne typy danych zależą od hurtowni danych
  • Dostępne są typowe typy
    • Integer
    • Varchar
    • itd.
  • Jeśli typ nie jest zdefiniowany, jest wnioskowany na podstawie danych
version: 2

seeds:
  - name: zipcodes
    config:
      column_types:
        zipcode: varchar(5)
dbt średnio zaawansowany

Testy

  • Obsługują testy
  • Tak jak modele i źródła
version: 2

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

Dostęp do seeds

  • Dostępne przez polecenie {{ ref() }}
  • Po pierwszym imporcie działa jak model
select * from
  {{ ref('zipcodes') }}
dbt średnio zaawansowany

Czas na ćwiczenia!

dbt średnio zaawansowany

Preparing Video For Download...