Organisation des bases de données¶
Utilisation de deux bases de données¶
L’application utilise deux bases de données :
webapp : pour administrer et afficher les objets utils aux applications « La Carte » et « L’Assistant »
warehouse : utilisé pour tous le travail de calcul et consolidation de la données
L’objectif est de séparer les bases de données pour que le travail sur la donnée n’impacte pas les performance de la webapp. De même, nous avons besoin de beaucoup plus de place pour le travailler sur la données et de plus de rapidité pour la webapp.
Lien entre bases de données¶
Le calcul avec DBT est effectué sur la base de données warehouse
, cependant, il est nécessaire d’accéder aux données de de webapp
De même, il est nécessaire de mettre à disposition les données calculées sur la partie warehouse
pour les afficher à la webapp
Pour gérer ces liens entre bases de données, l’application utilise l’extension postgres_fdw
qui crée une représentation de la base distante dans un schema dédié
la base de données
webapp
est disponible en lecture sur le schemawebapp_public
sur la base de donnéeswarehouse
la base de données
warehouse
est disponible en lecture sur le schemawarehouse_public
sur la base de donnéeswebapp
graph TB subgraph ide2 [Appications] direction LR A[DBT - via Airflow] B[Airflow] C[La carte / l'Assistant] end subgraph ide1 [Bases de données] direction LR D[(DB warehouse)] E[(DB webapp)] D <-. potgres_fdw .-> E end A[DBT - via Airflow] --> D B[Airflow] --> D B[Airflow] --> E C[La carte / l'Assistant] --> E
Ces schemas sont rafraichis à chaque mise en prod (après les migrations)
commande utile : Création des liens entre bases de données