Subjects·8 topics·203 terms
Data engineering
Pipelines, streams, warehouse modelling, file formats, data quality and what a query costs.
Start with these 55, in order
Where the numbers come from and what shapes them: ingestion, orchestration, modelling, storage and the machinery for knowing it is wrong.
Read in order · tick what you already know
- 01
the dashboard renders perfectly and every number on it is from Thursday.
Data freshness
- 02
someone asked what one row means and three people in the room gave three different answers.
Grain
- 03
two dashboards show different revenue because one includes refunds and neither of them says so anywhere.
Metric definition
- 04
the vendor added three columns and renamed one over the weekend, and nobody told anybody.
Schema drift
- 05
the query returned four rows and the console says it read two point one terabytes.
Bytes scanned
- 06
every task is green, the run took its usual eleven minutes, and it processed zero rows.
Silent failure
- 07
the report was wrong and the reason turned out to be six hops upstream in something nobody on your team owns.
Data pipeline
- 08
two systems disagree about the customer's address and you need to be able to say, without arguing, which one is allowed to be right.
System of record
- 09
the data was cleaned and reshaped by a job in the middle, and the warehouse only ever saw the tidy version.
ETL
- 10
you dumped the source table into the warehouse untouched and did all the shaping afterwards, in SQL, where everyone could read it.
ELT
- 11
nothing at all happened for twenty-three hours and then a job read the whole day at once.
Batch processing
- 12
records are handled one at a time as they land, and the job has been running without finishing for four months.
Stream processing
- 13
the job reads all four hundred million rows every night because nobody could work out which ones had changed.
Full load
- 14
each run asks the source only for rows changed since the last run, and one row updated in the same second as the cutoff is now missing forever.
Incremental load
- 15
the job stores the largest updated_at it has seen and asks for everything greater than that next time.
High-water mark
- 16
you tail the database's own replication log, so a delete and a mid-second update both come through without the source running a single extra query.
Log-based CDC
- 17
you re-ran the load after a failure and the rows updated in place instead of appearing twice.
Upsert
- 18
the same event is in the table three times because the connector retried, and you keep the latest by version per key.
Deduplication
- 19
you ran the same job three times after a failure and the output table is identical to running it once.
Idempotent pipeline
- 20
something has to decide that the transform runs only after all four extracts finished, and retry the one that did not.
Orchestrator
- 21
the pipeline is drawn as boxes with arrows, nothing points backwards, and a step waits for everything pointing at it.
DAG
- 22
the job is set to hourly, takes seventy minutes, and now two copies are running at once.
Schedule interval
- 23
the run that started at 02:00 on Tuesday is processing Monday's data, and half the confusion in the team is about which date the run is named after.
Logical date
- 24
the logic was wrong for three months, so you re-run the same job for ninety past days and hope nothing downstream notices mid-way.
Pipeline backfill
- 25
the file arrives in a bucket exactly as the vendor sent it, wrong headers and all, and nothing touches it there.
Landing zone
- 26
the supplier renamed a column overnight and you fixed it in one place instead of in forty downstream queries.
Staging layer
- 27
the same data exists three times: exactly as it arrived, cleaned and typed, and shaped for a specific report.
Medallion architecture
- 28
you stopped copying the application's tables into the warehouse and started shaping it around what happened and what it happened to.
Dimensional modelling
- 29
the table has one row per order line, a handful of numbers you can add up, and the rest is foreign keys.
Fact table
- 30
everything you would ever put in a group-by or a filter — country, product name, channel — lives in one wide, short table.
Dimension table
- 31
every dimension is one join away from the fact, so no query needs more than a single hop to get a label.
Star schema
- 32
the dimension row has a meaningless integer id of your own invention, which is why the source renumbering its customers did not break anything.
Surrogate key
- 33
you joined on the email address, and then two people changed their email and one of them was reused by a new account.
Natural key
- 34
a customer moved from Leeds to Bristol, and now you have to decide whether their orders from last year happened in Leeds or in Bristol.
Slowly changing dimension
- 35
the change closes the old dimension row with an end date and opens a new one, so the customer now has three rows and only one is current.
SCD type 2
- 36
there are no directories really, listing a prefix with a million keys is slow, and you cannot append to a file.
Object storage
- 37
everything anyone might ever need is in a bucket as files, in whatever shape it arrived, and finding the useful part is your problem.
Data lake
- 38
the data is in typed, governed tables you query in SQL, and getting anything in means agreeing a schema first.
Data warehouse
- 39
the tables are open files in a bucket and you still get transactions, schema enforcement and a rollback.
Lakehouse
- 40
the files are columnar with statistics in the footer, so the engine can skip whole chunks without reading them.
Parquet
- 41
the query reads three columns out of two hundred and only touches the bytes for those three.
Columnar format
- 42
you filtered on the partition column and the engine opened four folders instead of nine hundred.
Partition pruning
- 43
the phone was in a tunnel, so the tap happened at 14:02 and your job saw it at 16:40, and the hourly chart has to put it at 14:00.
Event time
- 44
yesterday's total went up this morning, because eight hundred events from a phone that was offline finally arrived.
Late-arriving data
- 45
the job announces that it believes nothing older than 14:30 is still coming, and closes every window that ended before then.
Watermark
- 46
nothing errored, every job is green, and the number on the board is wrong by eleven percent.
Data quality
- 47
the transform ships with a check that this column is never null, and the check runs against real output every night rather than against a fixture.
Data test
- 48
the column has been two percent null for a year, this morning it is sixty percent, and nothing else changed.
Null-rate check
- 49
the number is wrong and you need to know every table between it and the source, without reading forty SQL files.
Data lineage
- 50
the source team changed a status code's meaning, the pipeline kept running, and your funnel report has been wrong since Tuesday.
Upstream drift
- 51
the source team's deploy pipeline fails if they remove a field your models depend on, because the expectation is written down and checked.
Data contract
- 52
a free-text notes column turned out to contain names and phone numbers, and it had been copied into six downstream tables.
Personally identifiable information
- 53
one dashboard refreshing every five minutes turned out to be a third of the monthly warehouse bill.
Query cost
- 54
you partitioned by customer id, there are two million customers, and now every query lists two million tiny folders.
Partitioning strategy
- 55
ninety-nine tasks finished in twenty seconds and the hundredth ran for eleven minutes, because one key has forty percent of the rows.
Data skew
All of data engineering
Every term in this subject, 203 of them, grouped into 8 topics. Each topic is a track of its own.
Moving data out of the source
01 · 26 termsEvery pipeline starts with somebody else's database that was never designed to be read by you. This is the vocabulary of getting rows out of it repeatedly, without asking permission each time and without melting the thing you are reading from.
- Data pipeline
- ETL
- ELT
- Reverse ETL
- Batch processing
- Micro-batch
- Stream processing
- Full load
- Incremental load
- High-water mark
- Hard delete detection
- Tombstone record
- Log-based CDC
- Query-based CDC
- Initial snapshot
- Upsert
- Bulk load
- Push-based ingestion
- Pull-based ingestion
- Connector
- Fan-out ingestion
- Event-carried state transfer
- Landing zone
- Staging layer
- System of record
- Ingestion lag
Time and correctness in streams
02 · 25 termsBatch has one clock. A stream has two, and almost every confusing streaming bug is the gap between them: the moment something happened and the moment your code found out. These are the words for that gap and for what you are allowed to do while you wait.
- Event time
- Processing time
- Ingestion time
- Out-of-order events
- Watermark
- Late-arriving data
- Allowed lateness
- Window trigger
- Tumbling window
- Sliding window
- Session window
- Idle partition stall
- Stateful stream processing
- Keyed state
- State backend
- Pipeline checkpoint
- Savepoint
- End-to-end exactly-once
- Transactional sink
- Deduplication window
- Streaming join
- Temporal join
- Stream-table duality
- Lambda architecture
- Kappa architecture
Modelling for analysis
03 · 29 termsA warehouse schema is a user interface for people writing SQL under time pressure. The vocabulary here is thirty years old and still the fastest way to settle an argument about why a dashboard is double-counting.
- Dimensional modelling
- Fact table
- Dimension table
- Grain
- Fan trap
- Star schema
- Snowflake schema
- Conformed dimension
- Surrogate key
- Natural key
- Slowly changing dimension
- SCD type 1
- SCD type 2
- SCD type 3
- Late-arriving dimension
- Degenerate dimension
- Junk dimension
- Role-playing dimension
- Bridge table
- Transaction fact table
- Periodic snapshot
- Accumulating snapshot
- Factless fact table
- Semi-additive measure
- One big table
- Wide table
- Data mart
- Medallion architecture
- Data vault
Files, formats and table layers
04 · 32 termsUnderneath every lakehouse is a folder of files, and most of its performance and most of its failures come from how those files are written. Knowing these words is the difference between tuning a query and guessing at one.
- Data lake
- Data warehouse
- Lakehouse
- Data swamp
- Object storage
- Columnar format
- Row-oriented format
- Parquet
- ORC
- Avro
- Row group
- Dictionary encoding
- Compression codec
- Predicate pushdown
- Projection pushdown
- Partition pruning
- Hive-style partitioning
- Small files problem
- Compaction
- Open table format
- Manifest file
- Iceberg
- Delta Lake
- Hudi
- Copy-on-write table
- Merge-on-read table
- Time travel
- Snapshot expiry
- Schema-on-read
- Schema-on-write
- Schema drift
- External table
Orchestration and running it in anger
05 · 27 termsThe code is the easy part. This is the vocabulary of the thing that runs it every night, of what happens when one run fails, and of finding out what else is now wrong because it did.
- Orchestrator
- DAG
- Schedule interval
- Sensor
- Data-aware scheduling
- Logical date
- Idempotent pipeline
- Partition overwrite
- Pipeline backfill
- Catchup
- Concurrency limit
- Poison record
- Quarantine table
- Zombie task
- Manual intervention
- Pipeline run history
- Data freshness
- Freshness SLA
- Data lineage
- Column-level lineage
- Impact analysis
- Pipeline dependency inversion
- Upstream drift
- Data contract
- Schema registry
- Schema compatibility mode
- Golden run
Quality, tests and knowing it is wrong
06 · 19 termsA broken service pages you. Broken data does not — it simply arrives, gets averaged into a number and shows up in a board deck. These are the terms for catching it first, and for the conversation after you did not.
Governance, privacy and meaning
07 · 22 termsTwo people quote different revenue figures and both are right, because the number was defined twice. Half of this cluster is about that; the other half is about the rows you are legally not allowed to keep.
- Data governance
- Data catalogue
- Data discovery
- Semantic layer
- Metric definition
- Metric drift
- Canonical dataset
- Data product
- Data mesh
- Personally identifiable information
- Data classification
- Tokenisation
- Data masking
- Pseudonymisation
- Anonymisation
- Row-level security
- Column-level security
- Retention policy
- Right to erasure
- Data residency
- Data clean room
- Audit trail
Cost, layout and query performance
08 · 23 termsWarehouse compute is billed by what you read, so data layout is a budget decision rather than a tuning detail. These are the words for why one query costs pennies and the same answer costs four hundred pounds.
- Partitioning strategy
- Clustering key
- Sort key
- Z-ordering
- Bytes scanned
- Query cost
- Result cache
- Warehouse sizing
- Idle compute
- Storage-compute separation
- Shuffle
- Broadcast join
- Sort-merge join
- Hash join
- Spill to disk
- Data skew
- Straggler task
- Cardinality estimate
- Adaptive query execution
- Vectorised execution
- Incremental model
- Full refresh
- Cost attribution