Référence Data Eng
Wiki Data Eng
Fiches de référence pour construire des pipelines de données : formats, ingestion, transformation avec dbt, orchestration, stockage analytique, streaming et qualité.
- fiches
- 16
- catégories
- 7
- Focus
- Pipelines
Formats de fichiers
CSV, JSON, Avro et Parquet : choisir le format selon l'usage, et comprendre le colonnaire.
- Formats de fichiers : CSV, JSON, Avro, ParquetLe format d'un fichier décide de ce qui coûte cher : écrire, lire, typer ou faire évoluer. On choisit CSV ou JSON pour échanger, Avro pour des messages, Parquet pour analyser.
- ParquetParquet range les valeurs colonne par colonne, compressées et accompagnées de statistiques. C'est le format de référence pour stocker des données qu'on va surtout lire et agréger.
Ingestion
Chargements complets ou incrémentaux, capture des changements et rejeu sans doublon.
- Ingestion par lots : complète ou incrémentaleCharger par lots, c'est copier la source à intervalle régulier : en entier si elle est petite, ou seulement les lignes modifiées depuis le dernier filigrane quand elle grossit.
- Capture des changements (CDC)La CDC lit le journal de transactions de la base source pour émettre chaque insertion, modification et suppression. On l'utilise pour répliquer en quasi temps réel sans requêter les tables.
- Idempotence : rejouer sans doublonUne tâche idempotente produit le même résultat qu'on la lance une fois ou dix. C'est la condition pour relancer un pipeline après une panne sans créer de doublons ni perdre de lignes.
Transformation et modélisation
ETL et ELT, dbt, schéma en étoile et dimensions à variation lente.
- ETL et ELTL'ETL transforme les données avant de les charger, l'ELT les charge brutes puis les transforme en SQL dans l'entrepôt. L'ELT domine depuis que les entrepôts cloud calculent à la demande.
- dbt : modèles, ref, sources et testsdbt transforme des requêtes SELECT versionnées en tables ou vues, dans le bon ordre et avec des tests. On l'emploie pour organiser la couche de transformation d'un entrepôt en ELT.
- Modélisation dimensionnelle : faits et dimensionsLe schéma en étoile place les mesures dans une table de faits entourée de dimensions descriptives. On le choisit pour des tableaux de bord simples à requêter et rapides à agréger.
- Dimensions à variation lente (SCD)Une SCD gère les attributs de dimension qui changent rarement, comme la ville d'un client. Le type 1 écrase la valeur, le type 2 garde chaque version pour analyser le passé tel qu'il était.
Orchestration
DAG Airflow, planification, reprises, alertes et engagements de fraîcheur.
- Airflow : DAG, tâches et backfillUn DAG Airflow décrit en Python des tâches et leurs dépendances, sans cycle, avec un planning. On l'utilise pour lancer un pipeline chaque jour, relancer les échecs et rattraper le passé.
- Orchestration : planifier, surveiller, alerterOrchestrer, c'est coordonner les étapes d'un pipeline : ordre, planning, reprises et alertes. On s'en sert dès que plusieurs tâches dépendent les unes des autres et doivent finir à l'heure.
Stockage analytique
Partitionnement, formats de tables ouverts (Iceberg, Delta) et analyse locale avec DuckDB.
- Partitionnement et élagagePartitionner range les fichiers d'une table dans des dossiers selon une colonne, souvent la date. Les requêtes qui filtrent sur cette colonne ne lisent alors que les dossiers utiles.
- Lakehouse : Iceberg et Delta LakeIceberg et Delta ajoutent aux fichiers Parquet d'un lac un journal de versions : transactions ACID, mises à jour et voyage dans le temps. On les adopte pour un entrepôt bâti sur un lac.
- DuckDB : analyser des fichiers en SQLDuckDB est une base analytique embarquée qui interroge directement des fichiers Parquet, CSV ou JSON en SQL. Idéale pour explorer, tester un pipeline ou traiter des volumes moyens en local.
Streaming
Kafka : topics, partitions, offsets, groupes de consommateurs et garanties de livraison.
Qualité des données
Tests d'unicité, de non-nullité, de fraîcheur et de volume, et contrats de données.