Agentic ETL Stack — Détail complet
État live vérifié le 11/09/2026 · dossier /root/agentic-etl-stack/ · git main
Sources /root/data-in/ (17 Go : INSEE, RPPS/CNAM, ETALAB, BAN, France Services)
→ etl_staging (brut, DROP+CREATE/cycle)
→ etl_dw (propre, UPSERT)
→ Metabase (BI)
1. Vue d'ensemble
Élément Valeur
Rôle Stack ETL analytique pour données publiques françaises
Code /root/agentic-etl-stack/ — 37 Mo, git main, 314 symboles indexés GitNexus
Données brutes /root/data-in/ — 17 Go
Base principale analytics — 24 GB sur PostgreSQL 16.13 (alpine)
Exposition 100% loopback (127.0.0.1) — aucune exposition directe, tunnel Cloudflare uniquement
2. Conteneurs Docker
PostgreSQL
etl_postgres
postgres:16-alpine · 127.0.0.1:5432 · limit 1G
Metabase
etl_metabase
metabase:latest · 127.0.0.1:3001 → 3000 · limit 2G
Conteneur Image Port État Santé Réseau
etl_postgrespostgres:16-alpine (PG 16.13)127.0.0.1:5432Up 7 jours healthy etl_network 172.28.0.0/16 volume postgres_data 25.8 Go
etl_metabasemetabase/metabase:latest127.0.0.1:3001Up 7 jours healthy
KNIME, Superset et pgAdmin supprimés le 15/05/2026 (−25 Go disque). shm_size: 256m sur PG (fix VACUUM ANALYZE).
3. Bases de données
Base Taille Rôle
analytics24 GB Base principale
metabase90 MB Métadonnées Metabase
superset_meta18 MB Orpheline reliquat Superset
youtube_analyzer7.7 MB Orpheline projet tiers non lié
Roles
Role Superuser Login Permissions
etl_admin✅ ✅ Owner schéma
agent_reader— ✅ SELECT sur etl.*
agent_writer— ✅ CRUD sur etl.*
hermes_guides— ✅ —
aglaee_reader— ✅ Lecture
4. Schémas et données
Schéma Tables Taille Rôle
etl33 23 GB Sources + tables historiques
etl_dw6 + 1 matview 545 MB Datawarehouse
etl_staging2 19 MB Staging brut
etl_dw_dbt_test__audit12 104 kB Résultats tests dbt
Top tables etl (état live)
Table Lignes Taille Source
stock_etablissement38 207 217 10 GB INSEE SIRENE
adresses_france26 045 797 5.9 GB BAN
stock_unite_legale25 625 462 5.1 GB INSEE SIRENE
annuaire_personne_activite2 186 532 871 MB RPPS
ps_tarifs2 341 615 412 MB CNAM
annuaire_diplomes2 152 887 346 MB RPPS
ps_infospratiques1 486 726 233 MB CNAM
annuaire_porteurs_cps1 009 350 186 MB RPPS
france_services164 706 61 MB CSV France Services
+ ~25 tables (FINESS, ETALAB, nomenclatures INSEE, PSA…) étb_tarifs, base_remboursement, communes, insee_regions/départements/communes…
Datawarehouse etl_dw
Objet Lignes Type
pros_sante1 829 941 table
int_pros_sante_dedup1 829 902 table intermédiaire
unites_legales / int_unites_legales_cibles— tables
communes_ref / int_communes_ref34 935 tables
france_services_enriched— matview (croisement FS × SIRENE × communes)
Vues : vue_pros_secteurs, agent_stats (etl) · stg_* (etl_dw) · 2 matviews totales dont france_services_map.
5. Pipeline ETL
Étape Script Rôle
Chargement load_annuaire_sante_v2.py, load_adresses_france.py, load_open_data_p1/p2.py, load_referentiels.py, reload_mssante.pyChargement des sources
Staging scripts/staging/load_*_staging.pyBrut → etl_staging (DROP + CREATE)
Transformation scripts/transform/build_dw.pyStaging → etl_dw + France Services enrichi
Module commun scripts/lib/db.pypg(), copy_stdin(), query_one()
dbt (prototype) dbt/ — models staging / intermediate / marts, 12 tests OKAlternative à build_dw.py (manifest complet)
6. BI — Metabase
ID Dashboard Cartes
1 SIRENE — Unités légales + Établissements 18
3 Annuaire Santé 10
4 Open Data Santé 10
6 Analyse France Services 10
7 Nomenclatures 10
Setup auto (MB_EMAIL/MB_PASSWORD dans .env), locale fr, heap fixe 768M–1G, métadonnées sur PostgreSQL (pas H2).
7. Dashboard workflows (hors repo)
Élément Valeur
Service systemd hermes-workflows — actif
Code /root/projects/sirene/viz/serve_workflows.py
Port 127.0.0.1:8080
URL publique workflows.hermes.stelio-ia.fr (tunnel CF)
8. Automatisation (crons Hermes — 13 jobs)
Cron Fréquence Rôle
agentic-etl-maintenance3h00 Housekeeping : rotation backups + index inutilisés + tables orphelines (log quotidien)
build-loop-metrics-to-db2h Métriques build-loop → PostgreSQL
+ 11 autres jobs Hermes (backup-github-hourly, healthcheck, auto-heal, system-monitoring…)
9. Sécurité
UFW strict : ports 22 / 80 / 443 uniquement.
PostgreSQL et Metabase bouclés sur 127.0.0.1 — aucune exposition directe.
Roles séparés (lecteur / écrivain / admin) ; secrets dans .env (PG + Metabase).
Accès externe uniquement via tunnel Cloudflare (Access).
10. Points d'attention
⚠️ Détectés le 11/09/2026
Backups vides : /root/agentic-etl-stack/backups/ ne contient aucun .sql.gz. Le cron de maintenance ne fait que la rotation — backup_db.sh n'est exécuté par aucun cron. La base de 24 Go n'a aucune sauvegarde active .
2 index inutilisés (12 Mo chacun) sur etl_dw.int_pros_sante_dedup + idx_communes_insee (784 kB), repérés par le housekeeping.
Bases orphelines superset_meta (18 Mo) et youtube_analyzer (7.7 Mo) — candidates à la purge.
Généré le 11/09/2026 depuis l'état live du VPS — docker, psql, systemd et crons vérifiés. Source : /root/agentic-etl-stack/docs/stack-detail.html