Skip to main content

What Is a Data Pipeline? A Plain Guide

17 min read

Cover for what is a data pipeline showing sources flowing through a pipeline into a warehouse or lake

Key takeaways

A data pipeline is just automated steps that move your data from where it's created to where people actually use it, like a report or a model. Most of them copy data out of an app or database, tidy it up, and drop it into a warehouse. The big choice is how fresh the data needs to be: a nightly batch is the simplest, and streaming is the fastest but never stops running.

  • A data pipeline moves data from a source to a destination. AWS's page defines it as a series of processing steps that prepare data for analysis. That is one vendor's definition, not a standard.
  • A pipeline doesn't have to reshape data. IBM's page says one may simply move data from one system to another.
  • The pipeline types answer four different questions. Batch and streaming are about timing, ETL and ELT about order, change data capture about finding changes, and reverse ETL about direction. Real designs combine them.
  • Every type has a named cost. Batch is stale, streaming never stops running, and reading a database's change log needs setup on the source.
  • A pipeline that runs is not yet production-ready. It also needs a scheduler, safe reruns and alerts, and loading, reshaping and scheduling are often three different tools.

We checked the facts and tool details here against each vendor's own pages on October 1, 2026. Definitions and feature claims below are the vendors' own wording, and we have not tested any of them. Tools change often, so confirm anything before you spend money on it.

So, what is a data pipeline?​

Think of it as a delivery route for data. It starts in a source, such as a shop's database or a payment app. The end point is a destination, such as a warehouse (a database built for reports), a data lake (cheap file storage that many tools can read), or a lakehouse (a data lake organised so tools can query it like a warehouse).

AWS's page uses a plain picture: like water moving from a reservoir to your taps, a pipeline moves data from where it is collected to where it is stored. Its definition is a series of processing steps that prepare enterprise data for analysis. AWS sells data services, so read this as AWS's wording, not settled fact.

AWS page defining a data pipeline as a series of processing steps that prepare enterprise data for analysis

AWS's own definition, from its "What is a Data Pipeline?" page, October 2026.

Two words cause most of the confusion, so let's sort them out now. Pipeline is the whole path. ETL (extract, transform, load) is one way to build that path, where data gets reshaped before it lands.

International Business Machines (IBM) says ETL follows a fixed extract, transform, load order, while a data pipeline "may simply move data from one system to another" without transformations. That is IBM's definition, and other vendors draw the line differently. On IBM's reading, every ETL pipeline is a data pipeline, but not the other way round.

One more trap is product naming. In Azure Data Factory, Microsoft uses "pipeline" for a logical grouping of activities that together perform a task. That's one product's object, not the general idea.

The parts of a data pipeline​

IBM says three core stages make up a pipeline: data ingestion, data transformation and data storage. Transformation is the optional one, since a pipeline may simply move data.

Ingestion means copying data out of its sources. Cleaning it and changing its shape is transformation, and storage means putting it where people can use it.

Here's the part people forget. A fourth piece sits beside those three.

Something has to decide when each step runs, retry it when it fails, and warn a person when it keeps failing. AWS's page says a well-designed pipeline keeps working even if individual components fail, and that you must protect data accuracy despite interruptions. That is a design goal, and no vendor page proves a given tool meets it.

Data flows from sources through ingestion and transformation into storage, with scheduling and monitoring running alongside every step

Most real problems live in the lower lane of that diagram. A one-off copy is easy, but a copy that runs every day for two years, through failed runs and changed columns, is the hard part.

What are data pipelines used for?​

Common uses, per IBM, include fraud detection, exploratory analysis, dashboards, machine learning and data quality monitoring and more. The use decides the speed you need. Fraud checks need seconds, while a dashboard usually doesn't.

AWS adds that pipelines handle structured data (database rows), semi-structured data (such as JSON files) and unstructured data (such as images). Check that a tool reads the shape of data you have.

Data pipeline types, compared​

Types aren't one tidy list, because they answer different questions. Batch and streaming answer "how often." ETL and ELT (extract, load, transform) answer "where does the reshaping happen."

Change data capture (CDC) answers "how do we find what changed," and reverse ETL answers "which way does the data flow."

Below are six common kinds, each with its limit.

TypeWhat it doesBetter whenNamed limit
BatchLoads data in groups at set times, often off-peakReports can be a few hours or a day oldData is only as fresh as the last successful run
StreamingProcesses events continuously as they happenYou must react in secondsRuns continuously instead of in short scheduled runs
Change data captureCopies each insert, update and delete from a databaseYou need changes without re-copying whole tablesThe source database needs setup, and in PostgreSQL a stalled reader can fill its disk
ETLReshapes data before loadingYou must mask or filter data before it landsData must pass through the reshaping rules before it reaches the destination
ELTLoads raw data first, reshapes it in the destinationThe destination is a strong warehouse or lakehouseUnpredictable data volumes can bring unexpected costs later
Reverse ETLSends modelled data from the warehouse back into business toolsSales or support teams need warehouse numbers in their own toolsIt is only as fresh as the warehouse data it reads

According to IBM, batch loads batches of data at set intervals, typically off-peak. IBM says streaming pipelines, also called event-driven architectures, continuously process events from sources such as sensors or user interactions in an app. AWS adds that batch pipelines run infrequently while stream processing pipelines run continuously.

Change data capture deserves a longer note, because it's the type most people haven't met. Log-based CDC reads a log the database already writes instead of querying your tables again and again. In PostgreSQL, for example, logical decoding works by decoding the write-ahead log (the file where the database records its changes) into a stream that outside programs can read.

Confluent's page says log-based CDC "doesn't impose computational overhead on source databases". That is vendor wording that we have not tested, and the same page notes that log formats are not standardized.

It says the other common method, timestamp-based CDC, can only process soft deletes and requires changes to the existing database schema.

The source still has chores, though. In PostgreSQL, a replication slot (a bookmark that tracks a change reader's place) prevents removal of the log files it needs even when no connection is using it. The docs say this consumes storage and, in extreme cases, could shut the database down, so a slot that is no longer needed should be dropped.

The docs name a place to look: the pg_replication_slots view has a wal_status column. There, "extended" means the log has grown past max_wal_size but is still being kept. "Lost" means the slot is no longer usable.

ETL and ELT differ in where the reshaping happens. On the ELT side, IBM says it has a lower upfront cost, but unpredictable data volumes can cause unexpected costs later. IBM adds that masking personal data in transit before loading is an ETL strength, and it still calls ETL a popular choice.

Reverse ETL simply runs the other way. Fivetran's docs describe its Activations product as managed reverse ETL pipelines that deliver warehouse data into business tools. "Managed" is Fivetran's word, and Activations rows are billed on the same monthly-active-rows meter, per its usage-based pricing docs.

How to choose: four questions, not one​

The six labels above answer different questions, so freshness alone can't pick a row. Split the choice into four parts instead.

  • How old can the data be? Hours or a day, minutes, or seconds (batch or streaming).
  • How do we find what changed? Copy whole tables, read timestamps, or read the database log (change data capture).
  • Where does the reshaping happen? Before loading or after loading (ETL or ELT).
  • Which way does the data flow? Into the warehouse, or back out to business tools (reverse ETL).

Real designs combine the answers. For example, change capture can copy database changes into storage as they happen, and a scheduled job can build the reports from that data afterward. That one design mixes a change-log method, the ELT order and a batch-style schedule.

Pipeline type chosen by freshness: nightly batch for reports, frequent syncs for dashboards, streaming for events in seconds

The diagram covers only the first question, timing. Start there, because you shouldn't pay for seconds when a report is read once a day.

A worked example: an online shop's orders​

This example is an illustration with invented rows, not a real customer and not a test. Picture a small shop that keeps orders in a Postgres database, where the owner wants a daily sales report. Here's each stage, plus the one thing most likely to go wrong there.

StageWhat happensWhat can go wrong
SourceOrders sit in a Postgres tableReading it too often slows the shop's own site
IngestionA tool copies new and changed orders every hourA cancelled order is deleted at the source but never reaches the report
Transform (optional step)A SQL query adds up sales per day and per productA renamed column breaks the query overnight
DestinationA warehouse table feeds a dashboardTwo runs overlap and the same order is counted twice
Running itA scheduler starts each step in orderA step fails at 3 a.m. and nobody is told

The copy step ends when rows land in the warehouse, and the SQL query that adds up sales is the next step. Here are three invented orders to show the delete problem from the second row.

OrderWhat happens in the shop at 10 a.m.Copy that reads timestamps onlyCopy that reads the database log
1001NothingUnchangedUnchanged
1002Deleted after a cancellationStill in the reportRemoved from the report
1003Status changes from Paid to ShippedUpdated, if the table keeps a reliable last-modified timestampUpdated

That gap is why the CDC type exists. A hard delete removes the row, and per Confluent, timestamp-based capture can only process soft deletes, so a scan has nothing to find.

A script with no alerts and no retries may still move data, but it isn't yet a production-ready pipeline.

Which tools do which job​

A pipeline is a design, and tools are the parts you build it from. Each tool below does one slice, and most teams end up needing more than one.

JobExample toolFits whenNamed limit
Schedule and order the stepsApache AirflowYou want steps written as code, with retries and a clear start and endIts docs call it a platform for orchestrating batch workflows, and you write Python
Reshape data in the warehousedbtYour data is already in the warehouse and you work in SQLIts docs say it works alongside your ingestion tools to transform data, so another tool must load the data
Carry streams of eventsApache KafkaMany systems must read the same events as they happenIt is an event streaming platform that you run or rent. It moves events, and getting them in and out of databases takes connectors you set up
Copy data on a vendor-run scheduleFivetranYou want a vendor to run the loadingDatabase connectors sync every 15 minutes by default. That schedule is Fivetran's default, not a freshness guarantee, because sync time, failures and later steps add delay
Copy data with self-run codeAirbyte (self-managed Core), DebeziumYou want to run the software yourself and see the codeYou run it yourself, so servers and fixing it are yours

Fivetran and dbt are now one company, because Fivetran announced the completion of its merger with dbt Labs on June 1, 2026. Check each vendor's pages for any change to how they're sold.

Before you rely on any vendor's freshness or reliability claim, ask for the worst-case delay (not the default schedule), how failed syncs and deleted rows are handled, and what exactly the bill counts.

What goes wrong, and how to guard against it​

Most failures are boring and predictable, and each one maps to a row of the example above.

  • Stale data. A report is only as fresh as the last successful run plus the time the later steps take. Fivetran's docs say a failed sync is retried after the update interval or one hour, whichever is shorter, so a failure can add that wait.
  • Missing deletes. Methods that look only for new or changed rows can miss rows that were removed. Reading the database log is one way around it, with the setup cost described above.
  • Duplicates after a crash. PostgreSQL says that after a crash a slot might return to an earlier position, so recent changes are sent again. The receiving side must be able to handle the same message twice.
  • Duplicates after a rerun. The Airflow docs say a retried task should produce the same outcome on every re-run. The word for that is idempotent, which just means safe to run twice.
  • Changed columns. If the source renames or drops a column, the steps after it can fail, and nobody notices without an alert.
  • Cost surprises. Billing meters count rows, events or gigabytes, and each rises differently.

Here is the rerun case with invented rows, as an illustration and not a test. Say a run that loads order 1003 (a 20-dollar sale) fails halfway and the scheduler runs it again.

Write styleAfter the first runAfter the retry
Blind insertOrder 1003 appears onceOrder 1003 appears twice, so the day's sales are counted double
Upsert on the order numberOrder 1003 appears onceOrder 1003 still appears once

The Airflow page says not to add rows blindly on a rerun, because that can create duplicates. Use an upsert (update the row if it exists, add it if not), which needs a column that identifies each row, here the order number.

That is one guard, not the whole answer, because a replayed old change must not overwrite a newer one. For scheduled batch tasks, the same page also says to read and write one named slice of data, such as one day, rather than "the latest data."

Build it yourself or buy a tool?​

Match your situation to a path below, then check the limit before you commit.

Your situationLikely pathWhyWatch for
One source, one daily reportA short script plus a schedulerFew moving partsYou own every failure
Many apps, few engineersA hosted loader such as FivetranA vendor runs the loadingFivetran's docs bill by monthly active rows per connection, and its pricing page does not print the per-row rates
Engineers who want controlOpen-source loaders and a schedulerYou see and change the codeYou run and fix it yourself
Changes needed within minutesCDC from your database, such as DebeziumReads the change logDatabase setup and log retention
Reports can be a day oldPlain batchFewest moving partsStale by design

Test your data pipeline basics

Question 1 of 5

Does a data pipeline have to reshape the data it moves?

Frequently asked questions​

Q1. What is a data pipeline in simple words?
It's an automated path that moves data from where it's created to where it's used, such as from a shop's database to a report. AWS describes it as a series of processing steps that prepare data for analysis.
Q2. Is a data pipeline the same as ETL?
Nope. ETL is one kind of data pipeline, where data is reshaped before loading. IBM says a data pipeline may simply move data from one system to another without any transformation.
Q3. What are the main types of data pipeline?
The most common split is batch, which runs at set times, and streaming, which runs continuously. The other labels answer different questions: where data is reshaped (ETL or ELT), how changes are found (change data capture) and which way data flows (reverse ETL).
Q4. What are the parts of a data pipeline?
IBM names three stages: ingestion, transformation (optional, since a pipeline may only move data) and storage. In practice you also need scheduling, retries and monitoring, because AWS says a good pipeline must keep working when parts fail.
Q5. What is the difference between a data pipeline and a workflow scheduler like Airflow?
The pipeline is the path your data takes. Airflow is a tool that starts and orders the steps along that path, and its docs describe it as a platform for orchestrating batch workflows.
Q6. Do I need real-time streaming?
Only if someone acts on the data within seconds. If it feeds a daily report, a batch pipeline is simpler. Fivetran's database connectors sync every 15 minutes by default, but sync time, failures and later steps add to the age of the data.
Q7. What makes a data pipeline reliable?
Being safe to rerun. Airflow's docs say a retried task should produce the same outcome each time, and they advise an upsert instead of a plain insert so reruns don't add duplicate rows. Then add alerts, so a person hears about a failed run.
Q8. Should I build a pipeline myself or use a tool?
For one source and one report, a script and a scheduler can be enough. With many sources and few engineers, a managed loader saves time but adds a bill, and open-source tools give you control but need people to run them.

Conclusion​

Start with how old the data can be. Then add a scheduler, safe reruns and alerts, and check each vendor page before you spend money.

Next steps

Related posts