Objectif : livrer un POC ETL simple et reproductible pour démontrer le principe d’un flux Extract → Transform → Load avec des outils open-source et une chaîne “prête à rejouer” sous Docker.
Trois services Docker orchestrés par docker-compose
:
# Extrait simplifié (ports / variables / volume init.sql)
services:
mariadb:
image: mariadb:10.11
ports: ["3307:3306"]
environment:
- MARIADB_DATABASE=etl_demo
- MARIADB_USER=etl_user
- MARIADB_PASSWORD=etl_pwd
- MARIADB_ROOT_PASSWORD=root_pwd
volumes:
- ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro
adminer:
image: adminer
ports: ["8081:8080"]
hopweb:
image: apache/hop-web
ports: ["8086:8080"]
init.sql
prépare le schéma et les tables agents
et agents_staging
.Un fichier CSV
simple (data/agents.csv
) alimente deux tables :
agents_staging
– zone tampon de chargement.agents
– table métier (cible).agents
dans Adminer.docker compose up -d
MariaDB
– Host : host.docker.internal
– Port : 3307
– DB : etl_demo
– User : etl_user
./files/data/agents.csv
.agents
.agents_staging
(prépare un futur upsert).http://localhost:8081
.IF EXISTS / IF NOT EXISTS
ou ignorer si déjà appliqué.
host.docker.internal
(accès au host) et le port 3307
.mariadb
, BD = etl_demo
, utilisateur = etl_user
.docker compose up -d
http://localhost:8086/ui
http://localhost:8081
mariadb
• Utilisateur : etl_user
• BD : etl_demo
agents
./files/data/agents.csv
.