Book Deep-Read · Fundamentals of Data Engineering · Chapter 7

Ingestion

Fundamentals of Data Engineering · Ch 7 · Ingestion · Reis & Housley · 2022

中文 →

What is this chapter about?

The sales dashboard your company opens every morning draws its numbers from the order system, the payment system, app click tracking, and spreadsheets sent over by partners — dozens of places. This chapter is about moving data out of all those "other people's houses" and safely into your own data platform. That step is called ingestion. It looks like simple hauling, yet it is where the whole pipeline breaks most often.

A strange thing first

We talk about "batch" and "real-time streaming" as if they were two different things. But think about it: orders keep happening one after another and never stop. A "daily batch" is just us dropping a gate across a river that never stops flowing, once every 24 hours. Batch and stream are not two kinds of data; they are how often you choose to open the gate.

Why the old way is hard

The core intuition

What it gives you / how to choose

Most teams default to moving data in scheduled batches, and only build real-time streams when the business truly needs to see things within seconds; and if a ready-made tool can do the hauling, they buy rather than build. One honest cost: streaming makes data fresher, but someone has to watch it around the clock and handle the late and duplicate arrivals, so cost and complexity rise sharply.

One line to remember

Ingestion moves data from other people's houses into yours: batch and stream differ only in how often the gate opens; moving only what changed, landing it as-is, and planning for late and duplicate arrivals matter more than chasing "real time".

Want bounded vs unbounded data, push, pull and poll, snapshot vs incremental extraction, the ETL vs ELT debate, late, out-of-order and duplicate events and dead-letter queues in streaming ingestion, plus evidence from Debezium and Airbyte? → Switch to the deep read