Retour à la liste des articles

5 raisons pour lesquelles vous devriez utiliser les exposures dans dbt

Kévin Bénard

Kévin Bénard

Analytics Engineer spécialisé dans dbt, j'accompagne mes clients dans la création de pipelines de données robustes et faciles à maintenir. Mon expertise se concentre sur l'amélioration de la qualité des données pour garantir des résultats fiables et exploitables.

Parmi les nombreux atouts de dbt (data build tool), on trouve sa capacité à générer automatiquement le lineage des données. Cette fonctionnalité permet de visualiser facilement les liens entre les différents modèles. Mais il existe une fonctionnalité souvent méconnue et pourtant très puissante : les exposures. Dans notre quotidien, nous sommes souvent confrontés à ces questions :

  • "Quels tableaux de bord seront impactés si je modifie ce modèle ?"
  • "Comment être sûr que les données de ce dashboard sont fiables ?"
  • "Comment relancer tous les modèles dont j'ai besoin pour ma pipeline de Data Science ?"

Nous verrons dans cet article comment la mise en place d'exposures dans dbt peut répondre à ces questions que nous sommes amenés à nous poser régulièrement. Mais avant cela, voyons ce que sont concrètement les exposures.

Comprendre les exposures dans dbt

Une exposure dans dbt, c'est simplement une façon de déclarer et de suivre comment vos modèles sont utilisés en aval. Concrètement, cela peut être :

  • Des tableaux de bord (Tableau, Power BI, Looker...)
  • Des rapports générés automatiquement
  • Des applications qui utilisent vos données
  • Des modèles de machine learning
  • Et bien d'autres cas d'usage

Pour mettre en place une exposure, il suffit de la déclarer dans un fichier YAML. Voici à quoi cela ressemble :

exposures:
  - name: sales_dashboard
    type: dashboard
    url: https://dub01.online.tableau.com/#/site/myProject/projects/324519
    description: >
      Interactive dashboard presenting monthly, quarterly, and annual sales performance, used by the sales team to track key metrics.
    maturity: high
    depends_on:
      - ref('monthly_sales_model')
      - ref('customer_segmentation_model')
    tags:
      - sales
    owner:
      name: Mary Smith
      email: mary.smith@example.com

Une fois les exposures définies dans les fichiers YAML, vous pourrez profiter des nombreux avantages qu'offre ce nouveau type de ressources !

Les avantages concrets des exposures

1. Anticipez les impacts de vos changements

Imaginez que vous devez modifier un modèle. Avec les exposures, vous identifiez immédiatement tous les tableaux de bord ou applications qui en dépendent. Plus de mauvaises surprises ! Vous pouvez prévenir les équipes concernées en amont et mieux gérer vos modifications.

/img/5-raisons-pour-lesquelles-vous-devriez-utiliser-les-exposures-dans-dbt/exposures_lineage.png

Dans cet exemple, je peux voir que si je travaille sur le modèle orders, cela aura un impact direct sur mon dashboard de ventes.

2. Améliorez la documentation de votre projet

Les exposures enrichissent automatiquement la documentation de votre projet dbt. Vous obtenez une vue claire et complète de votre écosystème de données : qui utilise quoi, comment et pourquoi.

/img/5-raisons-pour-lesquelles-vous-devriez-utiliser-les-exposures-dans-dbt/exposures_dbt_documentation.png

La documentation inclura désormais des sections dédiées aux exposures, détaillant les informations telles que le propriétaire, le type d'actif, les dépendances et les liens directs vers les actifs en aval.

Cette fonctionnalité est utile dans la documentation native de dbt, mais les exposures sont bien sûr également exploitées dans tout bon Data Catalog qui s'intègre avec dbt.

3. Des tests plus pertinents

L'un des grands avantages des exposures, c'est la possibilité de cibler vos tests. Par exemple, vous pouvez vérifier la qualité des données uniquement pour les modèles qui alimentent un tableau de bord spécifique :

dbt test --select +exposure:sales_dashboard

4. Mise à jour ciblée

Il peut être nécessaire de mettre à jour un tableau de bord particulier en dehors des cycles de déploiement habituels. De la même façon que pour les tests, il est possible de cibler l'exécution des modèles. Grâce aux exposures, vous pouvez exécuter uniquement les modèles nécessaires pour alimenter ce tableau de bord :

dbt run --select +exposure:sales_dashboard

5. Une meilleure intégration avec vos outils

Les exposures permettent une meilleure intégration avec des outils tiers. Par exemple, dans un outil de visualisation comme Tableau, vous pouvez afficher l'état de santé du tableau de bord basé sur les résultats des tests dbt. Cela renforce la confiance des utilisateurs finaux en fournissant des indications sur la fiabilité des données présentées.

/img/5-raisons-pour-lesquelles-vous-devriez-utiliser-les-exposures-dans-dbt/exposures_dbt_data_health_tile.png

Conclusion

Les exposures dans dbt ne sont pas qu'une simple fonctionnalité technique - c'est un véritable atout pour votre gouvernance des données. Elles vous apportent :

  • Une meilleure visibilité sur vos dépendances
  • Une documentation vivante et utile
  • Des données plus fiables grâce à des tests ciblés
  • Plus de souplesse dans vos mises à jour
  • Une meilleure expérience pour vos utilisateurs finaux

En bref, si vous utilisez dbt, les exposures méritent vraiment qu'on s'y intéresse. C'est un investissement qui paie sur le long terme, tant pour la qualité de vos données que pour l'efficacité de vos équipes.