1 of 21

Migrer une data platform d’AWS Glue à Snowflake x dbt

Mars 2025

Theodo Data & AI

2 of 21

Sommaire

01

Contexte initial et choix des technos

02

Planifier et structurer la migration par étapes

03

Deep dive �Les tests dbt

04

Résultats, apprentissages et retour d’expérience

2

3 of 21

Contexte initial et choix des technos

01

4 of 21

La data plateforme initiale

01�Contexte initial et choix des technos

4

Difficultés rencontres

  • Unique environnement de PROD
  • Tests manuels via notebooks
  • Accès aux données uniformes
  • Pas de gouvernance des données
  • Pas de documentation
  • Orchestration manuelle

5 of 21

Expérience développeur

Avant la migration

Développer, itérer avec la donnée sur la data plateforme AWS Glue existante

5

Notebook avec un environnement Spark à lancer en local (~2min)

Mise en prod

  • Versioning du script
  • Ajout du script dans un job Glue en prod

6 of 21

01�Contexte initial et choix des technos

Présentation des technos

Framework de transformation SQL

��

Data Warehouse

7 of 21

Gouvernance

01�Contexte initial et choix des technos

Motivations et choix des technos

Collaboration

Data Quality

Structuration des accès à la donnée et des rôles (utilisateurs, producteur)

Création d’environnements de Développement, staging et Prod

Production de documentation et de tests

7

8 of 21

Planifier et structurer la migration par étapes

02

9 of 21

La data plateforme cible

02�Planifier et structurer la migration par étapes

9

Snowflake dbt

  • Environnemnts DEV et PROD
  • Data tests, tests d’intégration et tests unitaires
  • Accès accordés par rôles
  • Données sensibles taggées
  • Documentation publiée
  • Expérience développeur optimisée

10 of 21

Cartographie de l’existant

02�Planifier et structurer la migration par étapes

10

Cartographie

  • Documentation des modèles existants
  • Liste des dashboards et de leur dépendances
  • Tag des transformations sensibles
  • Evaluation de la consommation des produits

➡ Identifier les priorités métiers

➡ Ne pas oublier de migrer certaines entités

➡ Sécuriser la migration des modèles critiques

➡ Estimer le temps de migration et son avancée

11 of 21

Découpage de la migration

02�Planifier et structurer la migration par étapes

11

Etape 3

Etape 4

  • Migration silver plus➝ gold

  • Migration des dashboards Metabase
  • Migration des apps Qliks

Etape 2

  • Migration silver ➝ silver plus

🥇

🥈

Run de la plateforme existante

Build de la nouvelle plateforme

Etape 5

  • Décommissionnement de la plateforme AWS Glue
  • Run de la nouvelle plateforme Snowflake dbt

Run de la nouvelle plateforme

Etape 1

  • Documentation des modèles existants
  • Liste des dashboards et de leur dépendances
  • Tag des transformations sensibles
  • Evaluation de la consommation des produits

📚

12 of 21

Nos principes clés pour une migration iso fonctionnelle

02�Planifier et structurer la migration par étapes

12

Priorisation des bugs

Log des bugs remontés lors de la migration et définition de critère de sévérité

Script python de comparaison des données AWS vs Snowflake

Validation data

Intégrité

Data quality

Validation en DEV

MEP

Validation en PROD

Création de standards et de modes opératoires

Documentation

13 of 21

Deep dive - Les tests dbt

03

14 of 21

Migration d’un modèle de données transformée

03

Deep dive - Les défis techniques rencontrés

14

Modularisation des transformations

Traduction du SQL Spark vers Snowflake

Catégorisation des transformations base, staging et mart

Comparaison des modèles avec le script d’intégrité

Retro engineering

Compréhension du comportement du modèle existant

Documentation du modèle mart cible

  • Description de l’entité data et de ses expositions �
  • Enrichissement du fichier yaml
    • Tests data quality
    • Tests métiers

15 of 21

Comment tester nos transformations et fiabiliser nos données

03

Deep dive - Les tests dbt

15

🧪 Tests de qualité �

  • Vérifient l’unicité, nullité, relations référentielles�
  • Exécutés avec dbt test

  • Définis dans les fichiers YAML (unique, not_null, etc.)����

📐 Tests métier

  • Logique métier exprimée en SQL

  • Appelés comme des tests classiques

  • Ex : un ingrédient est valide pour un mois donné�������

Tests unitaires ��

  • Simulent un input/output pour�
  • Testent l’exécution d’un modèle SQL isolé

  • Permettent d’itérer rapidement et avec confiance

16 of 21

03

Deep dive - Les défis techniques rencontrés

16

17 of 21

Décrire un modèle de donnée

03

Deep dive - Les défis techniques rencontrés

17

18 of 21

Séparation des environnements sur Snowflake

03

Deep dive - Les défis techniques rencontrés

18

Isolation des environnements����

Création de bases de données de chaque environnement : Silver DEV, Silver PROD, Gold DEV

Gestion avec dbt

Configuration du profiles.yml pour l’ajout dynamique des bases de données

19 of 21

Résultats de la migration, apprentissage et retour d’expérience

04

20 of 21

Expérience développeur

Après la migration

Développer, itérer avec la donnée sur la data plateforme dbt Snowflake

20

Run et aperçu des données en local instantané

Mise en prod

  • Validation en dev
  • Merge de la MR
  • Deploiement sur argo-cd

21 of 21

Amélioration de l’expérience développeur

04

Résultats de la migration

21

💡 Conseil pour une migration réussie : Commencez par un inventaire détaillé, documentez chaque étape et itérez avec les consommateurs pour aligner vos besoins et objectifs

  • Environnement collaboratif

  • Gestion des rôles spécifique

  • Gouvernance de données �Tagging des données personnelles

  • Contrôle de la qualité de la donnée �475 data quality tests! 🍾
  • Expérience développeur 🎢