dbt seeds

dbt intermedio

Mike Metzger

Data Engineer

Cosa sono i dbt seed?

  • File CSV da caricare nel data warehouse
  • In genere set di dati che cambiano raramente
    • Elenco dei paesi
    • Elenco dei CAP
  • NON pensati per dati grezzi

Seed

1 Foto di Maddi Bazzocco su Unsplash
dbt intermedio

Perché?

  • Facili da gestire
  • Facili da usare in vari scenari
  • Versionabili con il controllo di versione
dbt intermedio

Come si definiscono i seed?

  • Aggiungi il file CSV alla directory seeds
  • Assicurati che l’header sia la prima riga
  • Importa con il comando dbt seed
zipcode,place,state
99553,Akutan,Alaska
99571,Cold Bay,Alaska
99583,False Pass,Alaska

bash> dbt seed
1 CAP forniti da https://github.com/zauberware/postal-codes-json-xml-csv
dbt intermedio

Ultra configurazione

  • Diverse opzioni
    • Quale schema?
    • Quale database?
    • Quoting delle colonne
    • Tipi di dato delle colonne
  • Applicabili a tutto il progetto o a singoli seed
  • Aggiungibili in dbt_project.yml o seeds/properties.yml
dbt intermedio

Definire i tipi di dato

  • I tipi di dato dipendono dal data warehouse
  • Quelli tipici sono disponibili
    • Integer
    • Varchar
    • ecc.
  • Se il tipo non è definito, viene inferito dai dati
version: 2

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

Test

  • Supportano i test
  • Come modelli e sorgenti
version: 2

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

Accedere ai seed

  • Accessibili con il comando {{ ref() }}
  • Dopo l’import iniziale si comportano come un modello
select * from
  {{ ref('zipcodes') }}
dbt intermedio

Passiamo alla pratica !

dbt intermedio

Preparing Video For Download...