Architecture
Make Open Data est conçu selon le schéma ELT : - Extrait les données sources ; - Chargement (load) ces données dans la Base De Données sous forme de nouvelles tables ; - Transforme ces nouvelles tables en créant des nouvelles tables exploitables au sein de cette même base de données.
flowchart LR
subgraph Machine
subgraph Extract
direction LR
A[fichier_laposte.csv]-->D[Python];
B[code_officiel_géographique.json]-->D[Python];
C[demande_valeurs_foncières.csv.gz]-->D[Python];
end
end
subgraph BDD
subgraph Load
direction LR
D[Python]-->left1[COG];
D[Python]-->left2[laposte];
D[Python]-->left3[dvf];
end
subgraph Trasform
direction LR
left1[COG] --> middle[DBT/SQL]
left2[laposte] --> middle[DBT/SQL]
left3[dvf] --> middle[DBT/SQL]
middle[DBT/SQL] --> right1[geo_communes]
middle[DBT/SQL] --> right2[geo_postes]
middle[DBT/SQL] --> right3[geo_communes_postes]
middle[DBT/SQL] --> right4[immo_dvf_mutations]
end
end
Dans le Google Cloud Platform Data Enginner Study Guide:
Note
Les processus d'extraction, de chargement et de transformation (ELT) sont légèrement différents des processus ETL. Dans un processus ELT, les données sont chargées dans une base de données avant de les transformer. Ce processus présente certains avantages par rapport à ETL.
Lorsque les données sont chargées avant la transformation, la base de données contiendra les données originales telles qu'extraites. Cela permet aux développeurs d'entrepôts de données d'interroger les données à l'aide de SQL, ce qui peut être utile pour effectuer des contrôles de base de la qualité des données et collecter des statistiques sur des caractéristiques telles que le nombre de lignes avec des données manquantes.
Un deuxième avantage est que les développeurs peuvent utiliser SQL pour les opérations de transformation. Ceci est particulièrement utile si les développeurs maîtrisent bien SQL mais n’ont pas d’expérience en programmation. Les développeurs pourraient également utiliser des outils SQL en plus d'écrire du SQL à partir de zéro.
Le coût à payer étant que les transformations se font automatiquement en SQL et seront donc limités. l’exécution d'un K plus proches voisins a exigé un traitement pas très lisible (par rapport à une solution adaptée comme sklearn.neighbors ) ET une dépendance à PostGis, indolore dans le cas de Postgre mais tout de même notable (si nous voulons élargir à d'autres types de base de données).
Les transformations les plus sioux peuvent se faire après.
Architecture technique : Infrastructure¶
Environnement technique : - Extraction avec Python et Pandas ; - Stockage Base de données PostgreSQL (avec PostGIS) ; - Transformations avec DBT et SQL.
Base de données¶
Vous pouvez utilisez votre base de données contenant entrepôt de données analytiques
Note
Il est fortement déconseillé d'utiliser directement la base de données contenant votre entrepôt de données opérationnelles.