Skip to content

Conversation

@JeanPhilippeRodrigue
Copy link

@JeanPhilippeRodrigue JeanPhilippeRodrigue commented Aug 18, 2025

PR contenant les étapes d’ingestion, le schéma de données proposé et les réponses finales au test technique.

Elle comprend trois parties principales:

1. Le flux de donnée:

  • fetch_data.py : récupération des données brutes depuis les API sources.
  • load_data.py: Materialization en fichiers JSON (1 par table) + le watermark.py

Les fichiers se trouverons dans le data_store/ une fois le script exécuté. Bien sûr, en production, j'utiliserais des tables et une base de données.

2. Orchestration

J’ai choisi Airflow, que j’ai déployé via Docker, pour refléter un setup proche d’un environnement de production.
Airflow offre plusieurs avantages :

  • Gestion des dépendances entre tâches.
  • Suivi et historisation des exécutions.
  • Alertes et monitoring intégrés.
  • etc

Cela permet d’avoir une orchestration claire et robuste.

3. Tests automatisés

J’ai ajouté quelques tests Pytest pour valider la robustesse du pipeline :

  • test_bulk_insert_and_watermark.py : vérifie que les insertions bulk respectent bien le watermark (pas de doublons, reprise correcte).

  • test_incremental_idempotent.py : s’assure que les chargements incrémentaux sont idempotents (relancer le job ne crée pas de doublons).

  • test_incremental_load.py : valide que les nouveaux lots de données sont correctement ingérés et ajoutés aux historiques existants.

  • test_iter_pages.py : teste la pagination des appels API afin de garantir que toutes les pages de résultats sont bien récupérées.

Au plaisir de vous rencontrer :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant