No description
| delta-client | ||
| hive-metastore | ||
| postgres | ||
| seaweedfs | ||
| spark | ||
| trino/catalog | ||
| .gitignore | ||
| docker-compose.yml | ||
| README.md | ||
s3-spark-delta – Lokale Data-Lakehouse-Umgebung
Enthält:
- SeaweedFS als S3-kompatibler Storage (mit Auth, Access-Key
admin, Secretadmin123) - Spark 3.5.1 (Master + Worker) mit Delta Lake 3.1.0
- Hive Metastore auf PostgreSQL
- Trino mit Hive-Connector auf S3
- delta-client Container mit:
- PySpark 3.5.1
- delta-spark 3.1.0
- Trino Python Client
- boto3 + AWS CLI
- Testskripte für Delta & Trino
Verwendung
Starten der Umgebung
putty auf die vlasdssbx002.dev.akdb.cloud
docker compose up -d
im docker
1. Projekt entpacken und starten
docker compose build
docker compose up -d
Warten, bis alle Container laufen:
cd /opt/delta
docker compose up -d
2. Buckets in SeaweedFS anlegen
docker exec -it delta-client python /app/init_buckets.py
Erzeugt die Buckets:
deltabucketrawprocessed
3. Delta-Table schreiben
docker exec -it client python /app/write_delta.py
docker exec -it client python /app/write_customers.py
4. Delta-Table mit Spark lesen
docker exec -it client python /app/read_delta.py
docker exec -it client python /app/read_customers_delta.py
5. Daten über Trino abfragen
docker exec -it client python /app/trino_query_delta.py
docker exec -it client python /app/read_customers_trino.py
Erwartet wird eine Ausgabe der Zeilen aus test_table bzw customers.
UIs
- SeaweedFS Filer UI: http://vlasdssbx002.dev.akdb.cloud:8888
- Trino Web UI: http://vlasdssbx002.dev.akdb.cloud:8084
- Spark Master UI: http://vlasdssbx002.dev.akdb.cloud:8081
Hinweise
- S3 Credentials:
- Access Key:
admin - Secret Key:
admin123
- Access Key:
- S3 Endpoint:
http://seaweed:8333(innerhalb des Docker-Netzwerks) - Spark greift via
s3a://deltabucket/...auf SeaweedFS zu. - Trino greift über den Hive-Connector auf dieselben Daten zu.