Deze map bevat functies om een kleine, synthetische dataset te genereren en te laden die aansluit bij de queries die in dit project worden gebruikt. Zo kan je de Python-modules testen zonder dat je een applicatie-SQL-server (van Centric SSD) nodig hebt. Hiermee:
- Genereer je CSV's voor minimale bron-tabellen:
szclient,wvbesl,wvind_b,szregel,wvdos,abc_refcod,szukhis,szwerker - Laad je deze naar een ontwikkel-database in Docker (MSSQL / Postgres / MySQL / MariaDB / Oracle)
Ten eerste genereer je de synthetische CSV-bestanden. Voorbeeld:
python synthetic/generate_synthetic_data.py --out data/synthetic --rows 10 --seed 123Dit schrijft synthetische data als *.csv naar data/synthetic.
Vervolgens laad je de synthetische CSV's in een ontwikkel-database in Docker. Hieronder een voorbeeld voor Postgres en Microsoft SQL Server.
Voorbeeld met Postgres:
python synthetic/load_csvs_to_db.py --db postgres --schema source --db-name source --csv-dir data/synthetic --force-refreshVoorbeeld met Microsoft SQL Server:
python synthetic/load_csvs_to_db.py --db mssql --schema source --db-name source --csv-dir data/synthetic --force-refreshDit:
- Start de SQL-server in Docker
- Maakt database
source/maakt schemasource - Laadt elke CSV als tabel (bijv.
wvbesl.csv->source.wvbesl)
Onderstaande commando voert het volledige proces uit met synthetische data:
PORT=55432 PASSWORD='SecureP@ss1!24323482349' ROWS=100 \
chmod +x synthetic/examples/one_liner_postgres.sh && \
./synthetic/examples/one_liner_postgres.shLet op dat je bovenstaande commando uitvoert in een bash-omgeving, zoals Git Bash. Zorg dat
hierin de Python-omgeving is geactiveerd (zie README.md in de hoofdmap), bijv., met source venv/Scripts/activate;
je moet ook eerst uv sync hebben gerund om de Python-dependencies te installeren. Daarnaast moet je
Docker dan wel Podman geïnstalleerd en actief hebben op je machine.
Het commando doet het volgende:
- genereert synthetische CSV's;
- start een Postgres‑container en laadt CSV's als tabellen in database
source(schema: public); - maakt database
ggmaan, waarinstagingensilverals schema's worden gebruikt; - draait
sql_to_stagingom data te verplaatsen van databasesource→ggm(schemastaging); - draait
staging_to_silverom data te verplaatsen vanstaging->silver(beide in databaseggm). Vooraf worden de doeltabellen naar het GGM-model in schemasilveraangemaakt op basis van DDL's inggm_selectie/cssd/.
We gebruiken in dit voorbeeld dus één Postgres‑container (poort 55432) en twee databases (source, ggm).
In de praktijk zou source op één SQL-server staan (bijv. van de applicatie; Oracle DB) en ggm met staging/silver samen in een andere (datawarehouse,
bijv. Postgres of MSSQL).
Tip: als je in VSCode werkt, kan je een extensie installeren zoals PostgreSQL; hiermee kan je verbinding maken met de Docker‑container en de tabellen bekijken.