Data & architecture

Data ingestion explained: batch, streaming, and CDC

A retailer previously used a nightly batch job for data processing. The marketing team now requires stock levels to update every few minutes, while the finance team needs a live feed from a new payments provider. Additionally, the warehouse staff continues to send a CSV file by email every Friday. These three sources operate at different speeds, yet a single pipeline is expected to manage them all. Data ingestion problems usually begin here because there is no clear plan for which sources require high speed, which can be delayed, or how to handle a source that stops providing data.

The technology is rarely to blame.

Data ingestion is the process of moving data from its source, whether a database, an API, a file drop, or a sensor feed, into a system where it can be stored, transformed, and used. It can run in scheduled batches, as a continuous stream, or through change data capture that tracks row-level updates as they happen.

The process of data ingestion explained

Every data platform begins with data coming from external sources. Ingestion is the process of moving data from the system where it originated, such as a point-of-sale terminal, a CRM, a sensor, or a partner's API, to a location your team manages. This is usually a designated area within a data warehouse or data lake.

No data is changed during this stage. The goal is to move an accurate copy of the information across the boundary without any loss or corruption.

This process is mechanical, and it remains simple at a small scale. Complexity arises when you manage dozens of sources with different schedules and reliability levels. Each source is a potential point of failure that may go unnoticed until a report contains errors. Successful ingestion depends less on advanced tools and more on determining which sources require real-time updates, which can be delayed by a day, and who is responsible when a failure occurs.

Batch ingestion

Batch ingestion moves data in scheduled blocks rather than in real time. These jobs run on set intervals such as every hour, night, or week. The process identifies new or modified data since the previous run by checking timestamp columns or performing a full reload before writing to the destination. This method remains the standard choice for most reporting tasks. It is inexpensive to operate and straightforward to develop. Troubleshooting is also simple because rerunning a job produces a predictable and consistent result.

The trade-off is staleness.

If a batch process runs at 2am, a change made at 9am the previous day will not be reflected until the next batch process completes. This delay is acceptable for some applications, such as a monthly finance report, but unacceptable for systems that require real-time data, like those preventing stock overselling. Batch processing also generally places the greatest load on source systems when it begins, which is why these processes are frequently scheduled during off-peak hours.

Streaming ingestion

Streaming ingestion moves records as they are created, one event or a small micro-batch at a time, usually through a message broker such as Kafka or a managed equivalent. Downstream systems pick up new data within seconds, without waiting for a schedule. This matters when a decision depends on the current state of something: fraud checks, live inventory, dashboards people watch during the day.

Streaming provides current data but increases the complexity of the system.

The system runs continuously. It can fall behind or drop messages if a consumer slows down. You must handle ordering, duplicate events, and partial failures, which are issues that do not affect nightly batch jobs. Only build a streaming system if data freshness changes how a user interacts with that data. Do not choose streaming simply because it seems more advanced.

Change data capture

Change data capture, or CDC, is a method for generating a data stream. Instead of querying a source table to find changes since the last check, CDC reads the transaction log of the database. It records every insert, update, and delete at the moment it is committed. This process provides a near-real-time feed with low impact on the source system. It also identifies deleted records, which batch jobs based on timestamps often fail to capture.

CDC works well for systems of record that update frequently and require downstream tables to match the source. Examples include an orders table feeding a warehouse or a customer record feeding a data lake. This method requires more configuration than a batch pull. You must have log access and a tool like Debezium. You also need a plan for cases where a connector falls behind. If a daily view meets your requirements, CDC requires more engineering effort than the situation warrants.

The source of the data

Sources rarely arrive in one shape. Operational databases sit behind CDC or scheduled queries. SaaS tools such as a CRM expose a REST API with their own rate limits and pagination quirks. Files still turn up: CSV exports, a supplier's daily feed dropped into an SFTP folder, a spreadsheet someone emails because the proper integration was never built. Event streams come from application logs, website tracking and sensors, often at far higher volume than expected.

Different types of data sources fail in specific ways. APIs may limit your request rate or change their structure without warning. Files might be delivered late, sent twice, or use a new delimiter. Sensor feeds stop sending data when a device loses its connection. This lack of data looks the same as a report of no activity unless you monitor for it specifically. If you build a pipeline for only one of these scenarios, it will likely pass testing but fail without an alert in production when a source changes its behaviour.

Data ingestion versus data integration and extraction

These terms are often used interchangeably, but they have distinct meanings. Ingestion is the process of moving data from a source into your environment. Data integration is the more comprehensive task of combining data from several sources to make it functional. This includes matching customer records between systems, resolving different field names, and establishing a single version of an entity. Ingestion is one part of the integration process rather than a synonym for the entire workflow.

Extraction is a related concept. People are often confused about which part of a process a specific tool performs. Extraction is the process of reading data and pulling it out of a source system. Ingestion includes both extraction and placing that data into a usable location. Therefore, extraction is the first part of ingestion. In an ETL or ELT pipeline, ingestion represents the extraction step. The processes that turn raw data into a reliable format occur later during the transformation and loading stages.

Where ingestion pipelines actually fail

The most damaging failures are often small errors rather than major outages; a source might rename a column. This causes the pipeline to drop the data without triggering an error message. A batch job could run twice during a retry process. This duplicates every row for that period. A field that was previously an integer might arrive as text. This causes downstream processes to fail without any notification. These issues do not appear on dashboards that only monitor whether a job has completed.

Data volume and timing are also common issues. A source might increase from one thousand records a day to one million after a marketing campaign. This can cause a job that usually takes ten minutes to overrun and interfere with the next scheduled run. If a source goes offline for maintenance, the job might fail with an alert or complete with an empty result set that appears normal. Teams should prioritise checks for row counts, schema changes, and data freshness more than they typically do.

Getting ingestion right from the start

Durable pipelines are built to align with the particular structure of each data source rather than adhering to a single pattern. The method employs batch processing when daily updates are enough and applies change data capture or streaming when real-time data influences business decisions. Monitoring is incorporated during the initial construction rather than being added after a failure. Every data source is assigned a designated owner. This guarantees that if a source schema changes, the owner detects the problem before it affects financial reporting.

External observers frequently underestimate the ingestion phase. Few people view it as the most interesting aspect of a data project. It gets the least attention and gathers the most technical debt. Considering ingestion as a core element of a data foundation built for AI determines a platform's long-term success. This method ensures the system stays trustworthy as sources increase. Neglecting it causes continual troubleshooting each time a new system connects.

Our data consultants build these systems for UK organisations by first establishing a foundation. This guarantees that the results are reliable.

Frequently asked questions

What is data ingestion?

Data ingestion refers to moving data from its original source-a database, an API, a file, or a sensor feed-into a system like a warehouse or data lake for storage and use. It constitutes the first step in a data pipeline, preceding any cleaning or transformation. If it is done incorrectly, every downstream report or model inherits the issue.

What are the differences between data ingestion and data integration?

Data ingestion is the specific act of moving data from a source into your environment. It is performed via batch processing, streaming, or change data capture. Data integration is a broader process that merges data from multiple ingested sources to produce a consistent dataset. It includes matching records, reconciling different formats, and establishing a single version of the truth. Ingestion supplies the data for integration, yet it is not identical to integration.

What does ingestion mean in data engineering?

In data engineering, ingestion is the stage that moves raw data from source systems into a staging area. This step involves minimal transformation. It takes place before the transformation and modelling layers in an ETL or ELT workflow. Engineers usually construct these pipelines with tools like Fivetran, Airbyte, or Kafka connectors, based on the source system. The main aim of ingestion is to guarantee the data is reliable and complete, not to prepare it for business use.

What is the difference between data ingestion and data extraction?

Extraction refers to pulling data from a source system. This task often becomes difficult when the source is a legacy database or an unfamiliar API. Ingestion encompasses both extracting data and placing it into a usable environment. Extraction is the initial part of the ingestion process rather than a separate concept. In an ETL pipeline, extraction and ingestion both occur during the extract stage before any transformation begins.

Which data ingestion tools are commonly used?

Your tool selection depends on your data source and the frequency of updates required. Fivetran and Airbyte employ prebuilt connectors to pull data from SaaS tools and databases on a set schedule. Kafka and comparable managed services move data in continuous streams. Debezium is a standard tool that captures changes directly from transaction logs. Cloud platforms such as Azure Data Factory, AWS Glue, and Google Cloud Dataflow combine data ingestion with orchestration for teams already using those providers.

If you want to understand how AI can assist your business, Talk to us to start with a clear assessment.

Start at your core.

Tell us where your data is today and what you want AI to do. We'll come back with a straight answer on what your foundation needs and where the quickest real win is.

Talk to us