Skip to content

Commit 0eb9403

Browse files
HEYGULnlepageVincentHardouin
authored
tech: add adr related to cold data storage & production
Co-authored-by: Nicolas Lepage <nicolas.lepage@pix.fr> Co-authored-by: Vincent Hardouin <vincent.hardouin@pix.fr>
1 parent 5decfde commit 0eb9403

3 files changed

+58
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# 60. Production de données à mettre à disposition
2+
3+
Date : 2025-02-18
4+
5+
## État
6+
7+
Validée
8+
9+
## Contexte
10+
11+
Le stockage de données à mettre à disposition est fragmenté dans deux bases de données, la base de données "live" de
12+
`pix-api` et la base de données de `pix-dwh-api-data` (aussi appelée "datamart").
13+
La production de ces données est réalisée par divers mécanismes comme le montre le schéma suivant (flèches en bleu).
14+
15+
![Schéma d'architecture données froides actuelle](../assets/0060-donnees-froides-architecture-actuelle.png)
16+
17+
On peut constater que :
18+
19+
- les données `pole-emploi-sendings` sont produites par `pix-api` et stockées dans la base de données "live"
20+
- les données `parcoursup` sont produites par l'équipe Data et stockées dans le datawarehouse
21+
- le datawarehouse est répliqué via dump/restore par Airflow, notre orchestrateur, dans la base de
22+
données `pix-dwh-api-data`.
23+
24+
Le schéma du datamart n'est pas maitrisé par`pix-api` et peut être changé sans possibilité de rétro-compatibilité.
25+
Il est alors complexe de maintenir des tests de non-régression sur ces données.
26+
27+
La réplication via un process de dump/restore présente plusieurs inconvénients tels que:
28+
29+
- absence de données en cas de dysfonctionnement du restore
30+
- copies volumineuses (car complètes) coûteuses en temps et en ressources
31+
- pas de garantie de l'intégrité du schéma car le restore recrée une table de zéro.
32+
33+
Les données, qui ont pour unique vocation la mise à disposition, sont stockées dans la base de données "live" et
34+
augmentent inutilement la pression sur celle-ci (en termes de volume et de trafic).
35+
36+
## Solution
37+
38+
L'introduction de la nouvelle brique d'API de "Mise A Disposition de Données" implique d'avoir la maitrise du schéma du
39+
datamart pour assurer la continuité de service.
40+
Ainsi, le schéma est préservé et les modifications de celui-ci sont entièrement à la main de l'API MADDO.
41+
Des tests de non-régression seront donc plus faciles à maintenir.
42+
Il sera également possible d'assurer une rétro-compatibilité en cas de changement du schéma.
43+
44+
D'autre part, on propose de déplacer le stockage de toutes les données à mettre à disposition vers la base de données
45+
adhoc (ie. le datamart).
46+
47+
Le schéma qui suit montre l'architecture cible.
48+
49+
![Schéma d'architecture données froides cible](../assets/0060-donnees-froides-architecture-cible.png)
50+
51+
Remarque : Metabase n'est plus utilisé dans le cadre de la mise à disposition de données dans l'architecture cible.
52+
53+
## Conséquences
54+
55+
- Airflow n'est plus responsable de dump/restore les données vers le datamart, mais déclenche seulement l'appel à l'API
56+
MADDO pour lancer les jobs réplications.
57+
- Des workers spécifiques à Maddo sont mis en place et auront la charge de créer et répliquer les données destinées à la
58+
mise à disposition.
73.2 KB
Loading
86.8 KB
Loading

0 commit comments

Comments
 (0)