Ce hub couvre l’écriture de macros qui s’adaptent automatiquement aux différents warehouses. Il s’applique quand on travaille sur plusieurs dialectes SQL ou qu’on publie des macros sous forme de package. Les notes sont ordonnées de la compréhension du problème à l’application des solutions.
Ordre de lecture
- Divergences SQL entre warehouses — cartographie les points de désaccord entre BigQuery, Snowflake et Databricks : fonctions de date, cast de types et opérations sur les tableaux.
- Macros dbt multi-warehouse intégrées — les fonctions du namespace
dbt.*qui gèrent les divergences les plus courantes (dates, chaînes, types, cast) sans code personnalisé. - Opérations sur les tableaux dbt multi-warehouse — les opérations sur les tableaux ne sont pas couvertes par les macros intégrées ;
UNNESTvsLATERAL FLATTENvsEXPLODEnécessitent des macros dispatch personnalisées. Cette note montre les patterns. - Configuration dispatch dbt — comment contrôler où dbt cherche les implémentations spécifiques aux adaptateurs : surcharger les macros de packages, ajouter le support Databricks via
spark_utils, et la résolution des namespaces dansdbt_project.yml.
Connexions
Le pattern dispatch lui-même est documenté dans Macros dbt, qui couvre les fondamentaux des macros, le templating Jinja et quand les macros aident versus nuisent.
Pour packager des macros multi-warehouse à des fins de réutilisation, voir Anatomie d’un package dbt pour la structure et CI/CD des packages dbt pour les tests matriciels sur les warehouses et les versions de dbt.