Database Platforms · Intermediate
Data Engineering Foundations
Build a real, re-runnable data pipeline in PostgreSQL 16 and Python 3.12: ingest messy files, validate and quarantine bad rows, model a star schema, and publish a checked data mart.
About this course
Data engineering is the work of moving data from wherever it is produced into a shape the rest of an organisation can trust and re-use. This course teaches the core of that craft, hands-on, by building one small pipeline end to end on **PostgreSQL 16** and **Python 3.12** — the same open-source tools Ultiblob runs in production, and nothing heavier. You work as the first data engineer at *Riverbank Media*, a fictional audio-streaming service. Three feeds land in a folder every day: a user export (CSV), a track catalogue (JSON whose schema drifted mid-year), and one file of play events per day. The data is deliberately messy — missing keys, inconsistent casing, duplicate accounts, non-numeric and out-of-range values, unknown references, duplicated events and a renamed column halfway through the month. All of it is synthetic and generated by a script included with the course; no real data is ever used. Across ten lessons you build the pipeline layer by layer: land raw files, load them into staging tables with `COPY`, clean and standardise in SQL and Python, validate every row and **quarantine** the ones that fail, model a small **star schema** with surrogate keys, and publish a business-facing **mart**. You then make the whole thing repeatable: idempotent loads with upserts and a natural-key conflict rule, an ingestion **watermark** for incremental runs and backfills, a small Python runner with logging and retries, and automated data-quality checks that can fail a run. The final project is a working pipeline you can prove is correct: it quarantines every bad row, loads a clean star schema and mart, and — the point of the whole course — inserts **nothing new** when you run it a second time. Every command, query and number in the course was executed against PostgreSQL 16.15; the output you read is the output that was observed.
- Content time
- 18 h 15 min
- Lessons
- 10
- Lab
- Yes
- provisioned for you
- Certificate
- Yes
- on completion
Lesson 1 is free. Enroll in a career path to access its full courses.
Lesson 1 is a free preview — read it without an account.

Outline
Lessons
Lesson 1: What data engineering isFree preview
Meet the Riverbank data, see why raw feeds cannot be trusted as they arrive, and learn the pipeline mental model you will build for the rest of the course.
1 h 15 minLesson 2: Sources and ingestion
Design a landing area, understand file and API sources, and extract data into raw storage without losing or corrupting it — including surviving schema drift.
1 h 40 minLesson 3: Loading into PostgreSQL
Create text staging tables, bulk-load files with COPY, land JSON into a jsonb column, and make the staging load idempotent with truncate-and-reload.
1 h 50 minLesson 4: Cleaning and standardisation
Turn faithful-but-messy staging data into clean, typed, consistent rows — standardise casing and whitespace, cast types safely, resolve JSON schema drift, and de-duplicate.
2 hLesson 5: Data validation and quality checks
Turn quality rules into explicit pass/fail assertions — null, range, uniqueness and referential checks — quarantine every failing row with a reason, and gate the pipeline with a validation script.
2 hLesson 6: Dimensional modelling basics
Arrange clean data into a star schema — a fact table of measurements surrounded by dimension tables of context — using surrogate keys, a conformed date dimension, and a clear grain.
2 hLesson 7: Incremental and idempotent loads
Make loading repeatable — upsert dimensions, insert only new facts on a natural key, track progress with a watermark, and prove that re-running the pipeline inserts nothing new.
2 h 10 minLesson 8: Orchestration and scheduling
Wrap the pipeline steps in a small runner with ordered dependencies, a run log, retries and a cron schedule — and know when a heavy orchestration framework is and is not worth it.
1 h 50 minLesson 9: Transformations and a warehouse layer
Build a published mart on top of the star with an aggregating transformation, choose its grain and measures, and test the transformation with reconciliation and quality checks.
1 h 50 minLesson 10: Reliability and observability
Make the pipeline trustworthy in production — logging, alerting on the right signals, data SLAs and freshness, quality metrics over time, and lineage from a mart number back to its source file.
1 h 40 min
Hands-on
Your lab
Real virtual machines on the Ultiblob cluster, reached from your browser. You administer them; we provision and destroy them.
- vm-01db01linux
Provisioned for you when you launch the lab from the course. The machines are yours for the access window; release them and launch again whenever you like.
Where it leads