Databases · DBC-53

Data Engineering Bootcamp

Data Engineering Bootcamp is a hands-on course in building an end-to-end data pipeline, from batch and Kafka streaming ingestion through an Apache Iceberg lakehouse processed with PySpark to transformation with dbt, orchestration with Airflow and data quality gates. It suits developers moving into data engineering and analysts who run their own pipelines, and you leave with a working reference data platform and dashboard.

Updated
From 14,310 THB / person 15,900 −10% excl. VAT 7% · group rates available
PDFDownload the course outline
  • Duration30 hours · 5 days
  • FormatOnsite / live online
  • Next roundOn request
  • CertificateIncluded

Course overview

Most organisations have data spread across many systems: operational databases, daily export files and real-time event data. Meanwhile, business and AI teams need data that is clean, trustworthy and ready to use quickly. The usual problems are pipelines built ad hoc, no data quality testing, no clear ordering of jobs, and pipelines that are hard to extend as data volumes grow.

This course has learners build an end-to-end data platform for a sample retailer, MetroMart, with widely used open-source tools: PostgreSQL, Python with Polars and DuckDB, Apache Kafka, Apache Spark (PySpark), Apache Iceberg on S3-compatible object storage, dbt Core and Apache Airflow 3, all running with Docker Compose on the learner's laptop. By the end, learners have a pipeline that takes in both batch and streaming data, stores it as a lakehouse, transforms it into a star schema, applies automatic data quality gates and feeds a BI tool. (5 days, 6 hours per day, 30 hours in total, Intermediate level.)

What you’ll gain

  • Understand the data engineer's role and modern data platform architectures: warehouse, data lake and lakehouse
  • Design a star schema with slowly changing dimensions and write efficient analytical SQL
  • Build incremental, idempotent batch ingestion with Python, Polars and DuckDB
  • Understand event streaming and change data capture, and move real-time data with Apache Kafka
  • Store data as a lakehouse with Apache Iceberg and process it with PySpark
  • Use dbt Core to transform and test data and generate lineage documentation
  • Order and schedule jobs with Apache Airflow 3, with retries, alerting and backfills
  • Set up data quality gates and data contracts, and serve data to BI and AI teams

Who this course is for

  • Software developers who want to move into data engineering
  • Data analysts and BI developers who want to build and run their own pipelines
  • IT teams responsible for connecting data between systems in the organisation
  • Teams laying the data foundations for analytics and AI projects

Prerequisites

  • Basic Python, such as functions, lists, dictionaries and installing packages
  • Basic SQL such as SELECT, JOIN and GROUP BY
  • Basic command line and Git, and a basic understanding of containers
  • No prior experience with Kafka, Spark, Airflow or dbt is needed; the instructor introduces each tool before the labs

Curriculum

Course Details

This course builds on Modern Data Engineering and Lakehouse Architecture (3 days), which focuses on lakehouse concepts and architecture, and extends it into a 5-day bootcamp that builds the whole path hands-on. It adds streaming and change data capture with Apache Kafka, large-scale processing with Apache Spark (PySpark), transformation with dbt Core, orchestration with Apache Airflow 3 and data quality gates, all the way to a dashboard. It runs for 5 days, 6 hours per day (30 hours in total, 09:00-16:00),

as a continuous workshop on a sample retailer, MetroMart, using generated data only. Every service runs with Docker Compose on the learner's laptop, so no cloud account is needed. All tools are open source, and because the MinIO community edition is no longer maintained, the labs use a maintained open-source S3-compatible object store instead. Learners take home the Docker Compose files for the data stack and the source code of the pipelines, the dbt project and the Airflow DAGs to adapt to their own work.

Day 1 Data Engineering Foundations and Dimensional Modelling

Section 1: The Data Engineer's Role and Data Platform Architecture

  • How data engineers, data analysts and data scientists differ
  • Data warehouse, data lake and lakehouse compared
  • ETL and ELT, and the medallion architecture (bronze, silver, gold)
  • When to choose batch and when to choose streaming

Section 2: Lab: Setting Up the Data Stack with Docker Compose

  • The structure of a docker-compose.yml for a multi-service data stack
  • Volumes, networks and environment variables
  • Checking service status and reading logs when something goes wrong
  • Allocating RAM and CPU to suit the learner's laptop
  • Lab: start the MetroMart data stack and check that every service is ready

Section 3: Lab: SQL for Analytics

  • A review of JOIN, GROUP BY and subqueries
  • Common table expressions (CTEs) and window functions such as ROW_NUMBER, LAG and SUM OVER
  • Reading execution plans and basic indexing
  • Lab: analyse running sales totals and product rankings for MetroMart

Section 4: Dimensional Modelling (Star Schema)

  • Fact and dimension tables and defining the grain
  • Surrogate keys and natural keys
  • Slowly changing dimensions (SCD Type 1 and Type 2)
  • Designing a date dimension

Section 5: Workshop Day 1: The MetroMart Star Schema

  • Load the generated MetroMart data into PostgreSQL
  • Design fact_sales, dim_product, dim_customer, dim_store and dim_date
  • Define the grain and keys of each table, with the reasoning
  • Workshop: write SQL that analyses sales by store, product category and period
Day 2 Data Ingestion: Batch and Streaming

Section 6: Batch Ingestion with Python

  • CSV, JSON and Parquet file formats, with their strengths and limits
  • Full and incremental loads, and using watermarks
  • Designing idempotent pipelines that give the same result when re-run
  • Lab: pull product and customer data from PostgreSQL incrementally

Section 7: Lab: Polars and DuckDB

  • Polars DataFrames, the lazy API and expressions
  • DuckDB querying Parquet and CSV files directly with SQL
  • Comparing with pandas and choosing a tool for the size of the data
  • Lab: convert branch CSV files to Parquet with Polars and check them with DuckDB

Section 8: Event Streaming with Apache Kafka

  • Topics, partitions, offsets, producers, consumers and consumer groups
  • Kafka 4 runs on KRaft without ZooKeeper
  • Delivery semantics: at-most-once, at-least-once and exactly-once
  • Lab: create a topic and inspect partitions and offsets with the command-line tools

Section 9: Change Data Capture (CDC)

  • How CDC reads a database's transaction log
  • Kafka Connect and Debezium with PostgreSQL (demonstration)
  • Managing event schemas and schema evolution
  • When to use CDC instead of batch extraction

Section 10: Workshop Day 2: MetroMart Ingestion

  • A batch pipeline that pulls data from PostgreSQL and branch CSV files into Parquet
  • A Python producer that simulates order events into a Kafka topic
  • A consumer that writes the events to the raw data area
  • Workshop: re-run the pipeline and stop the consumer mid-way, then check that no data is duplicated or lost
Day 3 Lakehouse and Distributed Processing

Section 11: Object Storage and the Lakehouse

  • S3-compatible object storage, buckets and permissions
  • The problems of a file-only data lake, and why a table format is needed
  • Apache Iceberg, Delta Lake and Apache Hudi compared
  • Lab: create buckets and permissions for bronze, silver and gold

Section 12: Lab: Apache Iceberg in Depth

  • The structure of metadata, manifests and snapshots
  • The REST catalog and connecting from several engines
  • Schema evolution, partition evolution and hidden partitioning
  • Time travel and rolling back data
  • Lab: add a column and look back at the data before the change with time travel

Section 13: Lab: Apache Spark and PySpark

  • Spark architecture: driver, executors, jobs, stages and tasks
  • The DataFrame API and Spark SQL
  • Transformations, actions and lazy evaluation
  • Reading and writing Iceberg tables with Spark 4
  • Lab: read the Spark UI to see the stages and shuffles of a real job

Section 14: Designing the Bronze and Silver Layers

  • Cleaning data and handling nulls and duplicates
  • Merging and upserting data with MERGE INTO
  • Handling small files (compaction) and table maintenance
  • Lab: compact an Iceberg table and expire old snapshots

Section 15: Workshop Day 3: The MetroMart Lakehouse

  • Store the raw data from Day 2 as Iceberg tables in the bronze layer
  • Write PySpark jobs that clean the data and remove duplicates
  • Upsert into the silver layer with MERGE INTO
  • Workshop: try schema evolution and time travel on the order data
Day 4 Transformation with dbt and Orchestration with Airflow

Section 16: dbt Core Fundamentals

  • The structure of a dbt project, profiles and adapters
  • Models, sources, ref and the dependency graph
  • Materialisations: view, table, incremental and ephemeral
  • Lab: build staging models from the silver layer

Section 17: Lab: dbt for Enterprise Work

  • Layering models into staging, intermediate and mart
  • Jinja, macros and packages
  • Snapshots for SCD Type 2
  • dbt Docs and the lineage graph
  • Lab: build fact_sales and the dimensions, with a customer snapshot

Section 18: Apache Airflow 3 Fundamentals

  • Airflow 3 architecture: scheduler, API server, DAG processor, triggerer and workers
  • Writing DAGs and tasks with the TaskFlow API
  • Assets and data-aware scheduling
  • Following runs in the Airflow 3 UI

Section 19: Orchestration for Real Workloads

  • Retries, timeouts, callbacks and Deadline Alerts for late-running work
  • Passing values between tasks and handling connections and variables securely
  • Running Spark and dbt jobs from Airflow
  • Backfills and re-running past intervals

Section 20: Workshop Day 4: An Automated Pipeline

  • Write a DAG that runs ingestion, PySpark jobs and dbt in dependency order
  • Set retries and alerts for failed tasks
  • Use assets so the gold layer runs when the silver layer is updated
  • Workshop: make a task fail on purpose, fix it and re-run only the part that failed
Day 5 Data Quality, Serving and Master Workshop

Section 21: Lab: Data Quality and Data Contracts

  • Dimensions of data quality: completeness, accuracy, freshness and uniqueness
  • Generic and singular dbt tests, and source freshness
  • Data contracts between data producers and consumers
  • Lab: add a quality gate that stops the pipeline when data looks wrong

Section 22: Observability and Running Pipelines

  • Tracking logs, metrics and run durations
  • Designing alerts so the team learns of problems quickly without alert fatigue
  • Incident response for data pipelines
  • Runbooks for common incidents such as late data or schema changes

Section 23: Lab: The Serving Layer for BI and AI

  • Designing marts that suit dashboards
  • Connecting Metabase or Apache Superset, and how to connect Power BI
  • Preparing data for AI teams, such as feature tables
  • Lab: a daily sales dashboard by store and product category

Section 24: Taking It into the Organisation

  • Basic data governance, data ownership and access rights
  • Moving the stack to the cloud or Kubernetes
  • Advanced stream processing with Apache Flink and Kafka Streams (overview)
  • Planning the growth of a data engineering team

Section 25: Master Workshop: The MetroMart Data Platform

  • Combine batch and streaming ingestion, the Iceberg lakehouse, PySpark, dbt and Airflow into one pipeline
  • Add data quality gates and alerting
  • Test scenarios with malformed data and late-arriving data
  • Show the results on the dashboard and present the team's architecture

Schedule & training options

For individuals — public rounds

No public rounds are open right now. Join the waiting list and we will contact you first when the next round opens, or ask us on LINE. Or call 02-570-8449 or 088-807-9770

For organisations — in-house / private

  • Tailor the content to your team’s tools and projects
  • Your dates, at your office or live online
  • Quotation with tax ID for procurement
Corporate training quote

Instructors

Frequently asked questions

How does this course differ from Modern Data Engineering and Lakehouse Architecture?

Modern Data Engineering and Lakehouse Architecture is a 3-day course focused on lakehouse concepts and architecture. This is a 5-day bootcamp that builds the whole path hands-on in one project, adding streaming and CDC with Apache Kafka, processing with PySpark, transformation with dbt Core, orchestration with Airflow 3 and data quality gates, all the way to a dashboard. It suits learners who want to see and build a complete data platform themselves.

Do I need a cloud account?

No. Every service, including PostgreSQL, Kafka, object storage, Spark, the Iceberg catalog, Airflow and the BI tool, runs with Docker Compose on your laptop, and all of it is open source. Moving the stack to the cloud or Kubernetes, and the data platform services of each cloud provider, are covered as concepts and migration guidance.

What laptop specification do I need?

At least 16 GB of RAM (32 GB recommended) and 40 GB of free disk, because many services run at once. Install Docker Desktop (with WSL2 on Windows) or Docker Engine and check that containers run, plus Python 3.12 or later, Git and VS Code, before the training day. Download the Docker images in advance from the list the instructor sends, so class time is not spent downloading.

Why not use MinIO for object storage?

The MinIO community edition stopped publishing official Docker images, and its repository was made read-only in 2026, so it is not a sound base for labs that learners will keep using. The course uses a maintained open-source S3-compatible object store, chosen on the training day. The concepts and code that work through the S3 API apply equally to other S3-compatible storage, including cloud services.

Does the course cover Apache Flink or Kafka Streams?

Not as labs. Advanced stream processing with Apache Flink and Kafka Streams, and large Kafka and Spark cluster deployments, are covered as concepts on the last day, because they need more time and resources than 5 days allow. Debezium CDC is shown as a demonstration. The main streaming labs use Python producers and consumers on Kafka.

Which tool versions does the course use?

The course follows the latest stable releases on the training day. As of October 2026 that means Apache Kafka 4 on KRaft, Apache Spark 4, Apache Airflow 3, current releases of dbt Core, DuckDB and Polars, and PostgreSQL 18. Data tools move quickly, so the exact Docker images and versions are sent to learners before the training day.