ServicesÀ proposNotesContact Me contacter →
EN FR
Note

Matérialisations dbt personnalisées

Note hub sur les matérialisations dbt personnalisées — anatomie, cadre de décision, swap sans interruption, secured table et patterns de débogage.

Planté
dbtbigquerydata engineeringdata modeling

Les matérialisations personnalisées permettent de contrôler l’intégralité du cycle de vie de la façon dont dbt construit un modèle — de la vérification de l’état existant jusqu’à la création de la relation finale. Ce sont des macros avec une structure spécifique, et elles résolvent des problèmes que les matérialisations intégrées n’adressent pas : les swaps sans interruption, la validation pré-swap, et la gestion automatisée des politiques de sécurité.

Cette note hub connecte les notes qui couvrent le sujet de bout en bout.

Fondements

  • Anatomie d’une matérialisation dbt — La structure en six étapes que suit chaque matérialisation, les objets contextuels clés (this, sql, config, adapter), et les méthodes d’adaptateur utilisées constamment.
  • Quand écrire des matérialisations dbt personnalisées — Cadre de décision : quand utiliser des post-hooks, des macros ou des incrémentiels intégrés à la place, et les scénarios spécifiques où les matérialisations personnalisées valent le coût de maintenance.

Patterns

  • Matérialisation de table sans interruption dans dbt — Construire vers un nom temporaire, valider le nombre de lignes (absolu et relatif), puis swapper via renommage. L’ancienne table reste interrogeable jusqu’à ce que la nouvelle soit confirmée prête. Le plus simple des deux patterns et un bon point de départ.
  • Matérialisation de table sécurisée dans dbt — Réappliquer automatiquement les politiques d’accès aux lignes BigQuery, les descriptions de colonnes et les tags de masquage de données après chaque reconstruction. Rend la configuration de sécurité déclarative plutôt qu’enfouie dans des post-hooks.

Opérations

  • Débogage des matérialisations dbt personnalisées — Messages d’erreur courants et leurs causes, une approche de test systématique (chemin premier lancement, chemin lancements suivants, chemins d’échec), et des techniques de débogage pour le développement de matérialisations.

Concepts liés

Les matérialisations personnalisées se situent à l’intersection de plusieurs concepts dbt et BigQuery :

  • Modèles incrémentiels dans dbt — La matérialisation intégrée qui gère la plupart des patterns incrémentiels. Comprendre ce qu’elle couvre avant de passer au personnalisé.
  • Cadre de décision pour les stratégies incrémentielles — Cadre de décision pour les stratégies incrémentielles intégrées (merge, delete+insert, insert_overwrite, microbatch).
  • Impact des matérialisations dbt sur les coûts BigQuery — Comment les choix de matérialisation affectent les coûts BigQuery. Les matérialisations personnalisées ajoutent une requête COUNT pour la validation mais économisent des coûts en empêchant la propagation de mauvaises données.
  • Patterns IAM BigQuery — La couche IAM qui contrôle l’accès au niveau du dataset. La matérialisation de table sécurisée ajoute des contrôles au niveau des lignes et des colonnes par-dessus IAM.
  • Macros dbt — Le fondement. Les matérialisations sont des macros avec un contrat spécifique.