Data Engineering Fundamentals

What this discipline is once the tools are removed: the journey from an application write to a number on a dashboard, the thirteen things that go wrong along it, and why "the pipeline succeeded" is not evidence that the data is right.

What Data Engineering Actually Is
▶ lab

Not the tools. The discipline of moving data between systems so that what arrives is complete, correct, explainable and affordable.

Q · A dashboard says revenue was €1,245,892 yesterday. What had to be true for that number to be trustworthy?
The Fundamental Data Journey
▶ lab

Application to PostgreSQL to extract to lake to transformation to warehouse to mart to dashboard — and what each arrow is actually promising.

Q · Why does a number have to pass through six systems to reach a dashboard, and what does each of those hops buy?
What Goes Wrong Between Source and Dashboard
▶ lab

Thirteen failure classes, each with its own mechanism, its own detector, and a long list of checks that will never find it.

Q · The job succeeded, the table has rows, and the number is wrong — which of the thirteen things that go wrong is this one?
Data Engineering vs Its Neighbours
▶ lab

Databases own storage, distributed systems own guarantees, backends own the transactional service, analytics and ML are consumers. We own movement, transformation, modelling, validation and serving.

Q · A team argues about who owns a broken number — the backend that produced the event, the database it was written to, or the model that aggregated it. Where does each boundary actually fall?
The Data Loop
▶ lab

Source, ingestion, raw, transformation, validation, storage model, serving, consumer, feedback — nine stages that are a design order forwards and a diagnostic order backwards.

Q · Given any data problem, in what order should I reason about it — and which direction do I walk during an incident?
Source of Truth
▶ lab

One authoritative system per business concept, everything else explicitly a copy — and the discipline that follows once you have said which is which.

Q · `customer_country` exists in the CRM, on the orders table and in the customer dimension, and all three disagree. Which one is right, and how would anybody know?
Who Actually Consumes This Data
▶ lab

Analysts, finance, product analytics, ML, agents and operational read-back each need a different freshness, tolerate a different amount of revision, and fail in a different way. Design from them inward.

Q · Before designing a dataset, what should I know about the people who will read it — and which of their needs will silently invalidate my design if I guess?
Trusting Data
▶ lab

Trust is not a feeling about a dashboard — it is a set of questions a consumer can answer without asking you. It is built slowly, lost in one incident, and rebuilt at a much higher price.

Q · What has to be true about a number before someone should act on it, and how would they check without asking the person who built it?