Aller au contenu

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.