Seeds et données de référence
Les seeds dbt sont des fichiers CSV statiques que dbt charge dans la base de données sous forme de tables ordinaires. nhic_dbt fournit plus de 40 CSV de seeds dans le répertoire seeds/, couvrant les correspondances d’établissements, les classifications administratives, les tables de codes et d’autres données de référence qui évoluent rarement.
À quoi servent les seeds
Les seeds sont le bon choix lorsque :
- Les données sont statiques ou changent rarement (une nouvelle version est nécessaire pour les mettre à jour)
- Les données sont assez petites pour être committées dans git sous forme de CSV
- Les données sont des données de référence faisant autorité — tables de codes, classifications, listes d’établissements approuvés
Les seeds sont le mauvais choix lorsque :
- Les données proviennent d’un système externe et changent fréquemment — utilisez plutôt un modèle de staging
- Les données sont volumineuses (des milliers de lignes ou plus) — envisagez un modèle de staging adossé à une table source
Charger les seeds
# Load all seeds
dbt seed
# Load a specific seed by name
dbt seed --select facility_mapping
# Full refresh (truncate and reload)
dbt seed --full-refreshLes seeds sont chargés par défaut dans le schéma staging (configuré dans dbt_project.yml).
Utiliser les seeds dans les modèles
Référencez un seed dans un modèle avec {{ ref() }}, exactement comme n’importe quel autre modèle dbt :
-- models/intermediate/int_visits__enriched.sql
select
v.visit_id,
v.facility_code,
f.facility_name,
f.district,
f.province
from {{ ref('stg_cemr__visits') }} v
left join {{ ref('facility_mapping') }} f
on v.facility_code = f.facility_codedbt suit cette dépendance dans le DAG, ce qui garantit que les seeds sont chargés avant tout modèle qui les référence.
Ajouter ou mettre à jour un seed
- Ajoutez ou modifiez le fichier CSV dans
seeds/. - Si vous ajoutez un nouveau seed, déclarez les types de colonnes dans
dbt_project.ymlsousseeds:afin d’empêcher dbt d’inférer des types incorrects. - Exécutez
dbt seed --select <seed_name>en local pour vérifier qu’il se charge correctement. - Ouvrez une PR — la CI validera le seed dans le cadre de
dbt build.
Mettre à jour un CSV de seed modifie les données committées. Pour les seeds qui font autorité (p. ex. la liste des établissements approuvés), traitez le CSV comme la source de vérité et coordonnez-vous avec l’équipe data avant toute modification.