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
Choose a career path

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.

Database Platforms — the kind of infrastructure this course is practised on

Outline

Lessons

10 lessons · 18 h 15 min
  1. 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 min
  2. Lesson 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 min
  3. Lesson 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 min
  4. Lesson 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 h
  5. Lesson 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 h
  6. Lesson 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 h
  7. Lesson 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 min
  8. Lesson 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 min
  9. Lesson 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 min
  10. Lesson 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.

  1. 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

Part of these career paths