25 februari 2026
Jouw data staat in Amerika: waarom Europa een soeverein data platform nodig heeft
Europa mist een onafhankelijk data platform. Waarom digitale soevereiniteit nu urgent is en hoe DataBaas een Europees data platform bouwt.
In ons eerdere artikel hebben we uitgelegd waarom de meeste bedrijven geen ingewikkelde distributed systems nodig hebben voor hun data. De small data-beweging laat zien dat moderne hardware en slimme tools veel meer aankunnen dan we denken.
Tijd om iets te bouwen.
Deze gids neemt je mee bij het opzetten van een complete analytics-omgeving met DuckDB en Superset. Geen Spark-clusters, geen dure warehouses, gewoon opensource-tools. We beginnen lokaal op je laptop en laten daarna zien hoe je het voor je hele organisatie beschikbaar maakt.
Stel: je werkt bij een bedrijf dat nu analytics doet in Excel en losse Python-scripts. Dat schaalt slecht: Excel loopt vast bij iets meer data en Python wordt al snel een zooitje als je visueel wilt verkennen. Je hebt:
Ons doel: een platform waar je data uit meerdere bronnen kunt combineren, transformeren met SQL, interactieve dashboards kunt maken en kunt delen met collega’s zonder dat iedereen Python hoeft te kunnen.
De architectuur (eerst simpel):
Bronnen (CSV, Excel, databases)
↓
DuckDB (transformatie en queries)
↓
Superset (visualisatie)
Later breiden we dit uit zodat meerdere gebruikers er veilig mee kunnen werken.
We beginnen op je laptop. Hier ontwikkel je je transformaties en bouw je je eerste dashboards.
Maak een nieuwe map en installeer DuckDB:
mkdir small-data-platform
cd small-data-platform
uv init
uv add duckdb
Als je uv nog niet hebt: lees hier hoe je het installeert.
DuckDB werkt ook als standalone CLI of in je browser. We gebruiken hier Python omdat de meeste mensen die met data werken dat al gewend zijn.
Maak een bestand load_data.py:
import duckdb
con = duckdb.connect('analytics.duckdb')
con.execute("""
CREATE TABLE sales AS
SELECT * FROM read_csv('data/sales_2024.csv')
""")
con.execute("""
CREATE TABLE product_usage AS
SELECT * FROM st_read('data/usage_logs.xlsx')
""")
con.execute("""
INSTALL postgres;
LOAD postgres;
CREATE TABLE customers AS
SELECT * FROM postgres_scan(
'host=localhost port=5432 dbname=production user=readonly',
'public',
'customers'
)
""")
con.close()
print("✅ Data geladen!")
Draai: uv run load_data.py. Je hebt nu een bestand analytics.duckdb met al je data: een echte database die je kunt versionen, back-uppen of delen.
Maak transformations.py en bouw views en tabellen voor maandelijkse omzet, productmetrics en klantsamenvattingen. Views worden on-the-fly berekend (handig als de logica vaak verandert); tabellen zijn gematerialiseerd (handig voor zware berekeningen die je vaak opvraagt). Daarna: uv run transformations.py.
Visualiseer met Superset via Docker. Maak een docker-compose.yml met de Superset- en Postgres-services, mount je analytics.duckdb, en start met:
docker compose up --build -d
docker exec -it superset /app/docker/docker-init.sh
Ga in je browser naar http://localhost:8088 en log in met admin/admin.
Voeg in Superset een database toe: Instellingen → Database Connections → + Database, kies DuckDB en gebruik de connection string: duckdb:////app/analytics.duckdb. In SQL Lab kun je queries draaien en charts opslaan.
Zo heb je lokaal een werkende analytics-setup: transformaties ontwikkelen, data bevragen en dashboards bouwen.
Lokaal werkt het prima voor jou, maar collega’s hebben ook toegang nodig zonder DuckDB en Python te installeren.
Twee opties:
Managed: MotherDuck (DuckDB in de cloud) + Preset (managed Superset). Snel opgezet, ideaal als je in een middag wilt starten en geen infra wilt beheren. Let op: US-diensten en kosten (vaak ~$100+/maand, of minder bij <5 gebruikers).
Self-hosted: Meer controle, kan op Europese infrastructuur. Daar focussen we op.
We zetten een gedeeld analyticsplatform op waar meerdere gebruikers tegelijk bij kunnen, tegen redelijke kosten en met data in de regio die jij kiest.
Architectuur: je laptop (ontwikkeling) → DuckLake op een VM (Postgres als metadata, Object Storage voor de data, DuckDB als query-engine) → Superset.
Waarom Europese cloud? Vanwege datasoevereiniteit, GDPR of gewoon om Europese infra te steunen. Deze stack draait prima op OVH, Hetzner of Stackit. Vergelijking door Stijn: European Cloud Providers Compared. OVH-guide: Getting started with OpenTofu on OVH.
DuckLake is een opensource data lake-formaat: Postgres voor metadata, object storage voor Parquet-bestanden, DuckDB als query-engine. Eenvoudiger dan Iceberg of Delta Lake en gemaakt voor DuckDB.
VM: bijvoorbeeld OVH B2-15 (4 vCPU, 15 GB RAM), Ubuntu 22.04, poort 8088 open. Object Storage: maak een bucket bij OVH (bijv. regio GRA), maak S3-credentials aan. Docker: installeer Docker en Docker Compose op de VM, maak een docker-compose.yml met Superset, Postgres voor Superset en een aparte Postgres voor DuckLake-metadata. Gebruik een .env met sterke wachtwoorden.
DuckLake: installeer lokaal de DuckLake-extensie, configureer secrets voor Postgres en OVH Object Storage, en koppel met ATTACH 'ducklake:...'. Push je getransformeerde tabellen naar DuckLake. In Superset op de VM voeg je een DuckDB-connection toe die naar DuckLake wijst (inclusief S3-config in de advanced parameters). Daarna kun je gebruikers aanmaken en charts en dashboards bouwen.
Beveiliging: draai Superset niet zomaar open op het internet met admin/admin. Opties: alleen op intern netwerk, of bijvoorbeeld Tailscale (gratis voor persoonlijk gebruik) zodat je geen poorten naar het internet hoeft open te zetten.
Je hebt nu een small data-platform dat lokaal draait voor ontwikkeling, schaalt naar meerdere gebruikers op een VM, data in Europa kan houden en rond de €30/maand kost in plaats van duizenden. Alle code: github.com/wolkwork/small-data-platform-tutorial.
Wanneer upgraden? Trage queries (>30 s) → grotere VM of parallelle DuckDB/ClickHouse. Conflicten bij gelijktijdige transformaties → orchestrator (Dagster/Prefect). Data >1 TB → partitioneren, daarna eventueel Iceberg of warehouse. Upgrade pas als je er echt tegenaan loopt.
Verder: data quality checks (Great Expectations), gestructureerde transformaties (dbt/SQLMesh), incrementeel laden, monitoring. Meer info: DuckDB, DuckLake, Superset.
Dit is deel 2 van de Small Data Platform-reeks. Deel 1: Why Your Data Stack is Probably Over-Engineered.
Oorspronkelijk door Nathan Clerkx op de Wolk Blog.