Skip to content

thekaveh/data-eng-lab

Repository files navigation

data-eng-lab

An Iceberg-lakehouse data-engineering lab built on the Atlas platform.

Curated Spark scenarios in Scala (Zeppelin) and PySpark (Jupyter), orchestrated with Airflow, plus Maven Scala Spark apps built by Jenkins — all over Apache Iceberg on MinIO, cataloged by the Atlas Iceberg REST catalog.


1.1 Architecture

Full-stack Lakehouse Architecture

The lab implements a medallion lakehouse with four layers:

s3a://landing/   →   bronze   →   silver   →   gold
  (raw Parquet)       (clean)     (enriched)   (aggregated/modelled)

Every table is an Apache Iceberg table, accessed through the Atlas Iceberg REST catalog (lakehouse). Compute is provided by a Spark cluster; Trino handles ad-hoc SQL and federated queries. Redpanda (Kafka-compatible) drives all streaming scenarios. Airflow schedules production DAGs; Jenkins builds and publishes Maven Spark apps to MinIO artifacts.


1.2 Quick navigation

  • :material-database-search:{ .lg .middle } Scenario catalog


    19 end-to-end Spark and Trino scenarios across bronze, silver, and gold layers.

    :octicons-arrow-right-24: Browse scenarios

  • :material-rocket-launch:{ .lg .middle } Spark apps


    2 CI-verified Maven Scala Spark apps built by Jenkins and run by Airflow.

    :octicons-arrow-right-24: Browse apps

  • :material-table-large:{ .lg .middle } Datasets


    5 curated datasets (NYC Taxi, TPC-H, Online Retail, GH Archive, Events) with make datasets.

    :octicons-arrow-right-24: Dataset guide

  • :material-layers-triple:{ .lg .middle } Lakehouse design


    Medallion layout, Iceberg namespaces, MinIO buckets, and the bronze smoke test.

    :octicons-arrow-right-24: Lakehouse guide

  • :material-check-decagram:{ .lg .middle } Atlas platform


    A1–A9 Atlas enablement checklist, expectations, and go-live runbook.

    :octicons-arrow-right-24: Atlas enablement

  • :material-play-box-multiple:{ .lg .middle } Getting started


    Prerequisites, make datasets, starting the stack, and running notebooks.

    :octicons-arrow-right-24: Quick start


1.3 By the numbers

What Count
Scenario notebooks (Scala + PySpark pairs) 19 (14 batch, 4 streaming, 1 hybrid)
CI-verified Maven Spark apps 2
Curated datasets 5
Atlas enablement items (A1–A9) 9
Iceberg medallion layers 3 (bronze / silver / gold)

1.4 Scenario catalog

Scenario Engine Layer Dataset
batch_ingest-nyc_taxi-spark-iceberg Spark Bronze NYC Taxi
medallion-nyc_taxi-spark-iceberg Spark Bronze→Silver→Gold NYC Taxi
data_quality-nyc_taxi-spark-iceberg Spark Silver NYC Taxi
schema_evolution-gh_archive-spark-iceberg Spark Silver GH Archive
time_travel-nyc_taxi-spark-iceberg Spark Silver NYC Taxi
table_maintenance-nyc_taxi-spark-iceberg Spark Silver NYC Taxi
streaming_ingest-events-spark-iceberg Spark (stream) Bronze Events
streaming_ingest-gh_archive-spark-iceberg Spark (stream) Bronze GH Archive
streaming_windows-events-spark-iceberg Spark (stream) Silver Events
cdc_streaming-online_retail-spark-iceberg Spark (stream) Silver Online Retail
federated_query-nyc_taxi-trino-iceberg Trino Gold NYC Taxi
bi_query-tpch-trino-iceberg Trino Gold TPC-H
join_optimization-tpch-spark-iceberg Spark Gold TPC-H
star_schema-tpch-spark-iceberg Spark Gold TPC-H
feature_engineering-movielens-spark-iceberg Spark Gold MovieLens
scd2-online_retail-spark-iceberg Spark Silver Online Retail
json_flatten-gh_archive-spark-iceberg Spark Silver GH Archive
sessionization-gh_archive-spark-iceberg Spark Silver GH Archive
incremental_upsert-online_retail-spark-iceberg Spark Silver Online Retail

1.5 Scenarios by Category

Batch Ingestionbatch_ingest

Medallion Pipelinemedallion

Data Qualitydata_quality

Schema & Maintenanceschema_evolution, time_travel, table_maintenance

Streamingstreaming_ingest (events + gh_archive), streaming_windows, cdc_streaming

BI & Queriesfederated_query, bi_query

Join Optimizationjoin_optimization

Dimensional Modelingstar_schema

Feature Engineeringfeature_engineering

SCDscd2

JSON Processingjson_flatten

Session Analysissessionization


!!! tip "New here?" Start with Getting started to get the stack running, then pick a scenario from the catalog or dive into the lakehouse design.

!!! info "Atlas platform" The Atlas platform underpins this lab. See Atlas enablement for the full A1–A9 checklist and Go-live runbook for production readiness steps.

Scenario catalog

# Scenario Notebook doc
1 batch_ingest-nyc_taxi-spark-iceberg notebooks
2 bi_query-tpch-trino-iceberg notebooks
3 cdc_streaming-online_retail-spark-iceberg notebooks
4 data_quality-nyc_taxi-spark-iceberg notebooks
5 feature_engineering-movielens-spark-iceberg notebooks
6 federated_query-nyc_taxi-trino-iceberg notebooks
7 incremental_upsert-online_retail-spark-iceberg notebooks
8 join_optimization-tpch-spark-iceberg notebooks
9 json_flatten-gh_archive-spark-iceberg notebooks
10 medallion-nyc_taxi-spark-iceberg notebooks
11 scd2-online_retail-spark-iceberg notebooks
12 schema_evolution-gh_archive-spark-iceberg notebooks
13 sessionization-gh_archive-spark-iceberg notebooks
14 star_schema-tpch-spark-iceberg notebooks
15 streaming_ingest-events-spark-iceberg notebooks
16 streaming_ingest-gh_archive-spark-iceberg notebooks
17 streaming_windows-events-spark-iceberg notebooks
18 table_maintenance-nyc_taxi-spark-iceberg notebooks
19 time_travel-nyc_taxi-spark-iceberg notebooks

Spark Apps

About

Full-featured Apache Iceberg lakehouse data engineering lab with 19 Spark scenarios in Scala and PySpark, 2 CI-verified Maven Scala Spark applications built by Jenkins and orchestrated by Airflow, Trino SQL and BI, Redpanda streaming, and a medallion architecture across bronze, silver, and gold layers using Docker Compose to run the Atlas platform.

Topics

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors