Graines dbt

dbt intermédiaire

Mike Metzger

Data Engineer

Qu'est-ce que les graines dbt ?

  • Fichiers CSV à charger dans l'entrepôt de données
  • Jeux de données qui changent rarement
    • Liste des pays
    • Liste des codes postaux
  • PAS destiné aux données brutes

Graines

1 Photo de Maddi Bazzocco sur Unsplash
dbt intermédiaire

Pourquoi ?

  • Faciles à gérer
  • Faciles à utiliser dans divers scénarios
  • Traçables par le contrôle de version
dbt intermédiaire

Comment définir des graines ?

  • Ajouter le fichier CSV dans le répertoire seeds
  • S'assurer que l'en-tête est la première ligne
  • Importer avec la commande dbt seed
zipcode,place,state
99553,Akutan,Alaska
99571,Cold Bay,Alaska
99583,False Pass,Alaska

bash> dbt seed
1 Codes postaux fournis via https://github.com/zauberware/postal-codes-json-xml-csv
dbt intermédiaire

Configuration avancée

  • Plusieurs options
    • Quel schéma ?
    • Quelle base de données ?
    • Guillemeter les colonnes
    • Types de données des colonnes
  • Peut s'appliquer à tout le projet ou à des graines spécifiques
  • À ajouter dans dbt_project.yml ou seeds/properties.yml
dbt intermédiaire

Définir les types de données

  • Les types disponibles dépendent de l'entrepôt de données
  • Les types courants sont offerts
    • Integer
    • Varchar
    • etc.
  • Si le type n'est pas défini, il est déduit des données
version: 2

seeds:
  - name: zipcodes
    config:
      column_types:
        zipcode: varchar(5)
dbt intermédiaire

Test

  • Prise en charge des tests
  • Comme pour les modèles et les sources
version: 2

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

Accéder aux graines

  • Accessibles via la commande {{ ref() }}
  • Se comportent comme un modèle après le premier import
select * from
  {{ ref('zipcodes') }}
dbt intermédiaire

Passons à la pratique !

dbt intermédiaire

Preparing Video For Download...