2.5 KiB
2.5 KiB
TP 1 Synthèse de l'activité bancaire
Créer un tableau de bord complet à partir de données issues d’une application bancaire (comptes, transactions, titularisation…), en utilisant des fonctions d’agrégation SQL et un outil de visualisation (Grafana).
Installation de l'environnement de travail
Nous allons construire un environnement de travail pour étudier les interactions entre les différents élements.
Git est un outil qui permet de garder l’historique complet d’un projet (code, schémas, configs…). Il permet de travailler à plusieurs personnes de travailler en même temps ou en parallèle sur un même projet.
git clone https://sources.neotech.fr/Universite/tp.git
cd tp
Docker est une technologie pour emballer une application, ses dépendances et sa configuration dans un conteneur : un mini-système isolé, reproductible et portable.
docker build -t iut/pgsql:2025-13 -f postgresql.Dockerfile .
git clone https://sources.neotech.fr/Universite/sql_bank.git
cd sql_bank
docker network create pgsql_net
docker run --detach --name pgsql ^
--network pgsql_net ^
-p "5432:5432" ^
-e "POSTGRES_INITDB_ARGS=--locale-provider=icu --icu-locale=fr-FR" ^
-e "POSTGRES_PASSWORD=geii2025" ^
-e "POSTGRES_USER=iut" ^
-v pgsql_data:/var/lib/postgresql ^
-v "./:/docker-entrypoint-initdb.d" ^
iut/pgsql:2025-13
docker pull grafana/grafana:12.1
docker run --detach --name grafana ^
--network pgsql_net ^
--network proxy_net ^
-p "3000:3000" ^
-e "GF_SECURITY_ADMIN_USER=admin" ^
-e "GF_SECURITY_ADMIN_PASSWORD=geii2025" ^
-e "GF_USERS_ALLOW_SIGN_UP=false" ^
-e "GF_USERS_DEFAULT_THEME=system" ^
--label "caddy=grafana.localhost" ^
--label "caddy.reverse_proxy={{upstreams 3000}}" ^
--label "caddy.tls=internal" ^
grafana/grafana:12.1
Création d’un tableau ou d’un panneau
- Nombre total de titulaires
- Nombre total de comptes ouverts
- Solde total dans la banque
- Volume total des transactions du mois en cours
- Solde moyen par compte
- Montant moyen des transactions
SELECT cron.schedule('* * * * *', $$call add_depot(6, (floor(random() * 100) + 50)::decimal);$$);
SELECT cron.schedule('*/2 * * * *', $$call add_retrait(6, (floor(random() * 200) + 100)::decimal);$$);
$__timeFrom()$__timeTo()$__timeFilter(date)- (${currency:sqlstring})
Construire un histogramme avec les soldes :
< 0 € 0 – 100 € 100 – 500 € 500 – 1 000 €
1 000 €