Projet · Analytics engineering
Analytics Airbnb, façon Modern Data Stack
Analytics engineering de bout en bout : S3 → Snowflake → dbt, architecture Medallion, historisation SCD Type 2 et modèles testés.
- 3couches Medallion
- SCD2historisation via snapshots dbt
- 4types de matérialisation
Architecture
- 01AWS S3fichiers bruts
- 02Snowflake rawexternal stage
- 03dbt silvernettoyé · typé · testé
- 04dbt goldétoile · OBT
- 05BIprêt pour l’analyse
Les snapshots dbt capturent chaque changement des entités à évolution lente (SCD Type 2).
Contexte
Les données publiques Airbnb sont désordonnées, évoluent dans le temps et sont assez volumineuses pour que les raccourcis se paient — un bon terrain pour de l’analytics engineering de niveau production.
Le défi
Construire un entrepôt auquel un analyste peut se fier : ingestion sécurisée, couches claires, historique des changements, et des tests qui échouent bruyamment avant qu’une donnée fausse n’atteigne un dashboard.
Ce que j’ai construit
- Ingestion sécurisée d’AWS S3 vers Snowflake via storage integrations et external stages, avec des droits IAM restreints.
- Une architecture Medallion : raw → silver → gold.
- Des modèles dbt modulaires (matérialisations incremental, ephemeral, table et view) et des macros Jinja paramétrées.
- Une modélisation dimensionnelle pour la BI : schéma en étoile et One Big Table.
- Un historique des changements en SCD Type 2 via les snapshots dbt.
- Des tests dbt génériques et singuliers (unicité, non-null, intégrité référentielle) avec niveaux de sévérité, et des environnements gérés par un workflow Git.
Résultats
- 01Un entrepôt en couches où chaque modèle remonte à sa source.
- 02Un historique daté : l’état de n’importe quel enregistrement à n’importe quelle date.
- 03Des tests avec niveaux de sévérité — avertissements ou échecs bloquants.
Stack
- dbt Core
- Snowflake
- AWS S3
- AWS IAM
- Jinja
- SQL
- Git
Un problème similaire ?
Parlons-en — que vous recrutiez ou que vous cherchiez un freelance.