Open Source ETL Tools Compared
Airbyte, dlt, NiFi & More (2026)
Star counts were read on 2026-11-03.
Which open source ETL tools exist?
Open source ETL tools are programs you run yourself that move data out of source systems into a warehouse or another system, and in some cases reshape it on the way. The field divides by job. Airbyte (22.3k GitHub stars), dlt and Meltano load data. Debezium captures database changes. Apache NiFi, Apache Hop and Apache SeaTunnel are flow engines. dbt transforms inside the warehouse, and Apache Airflow and Dagster schedule all of it.
The 3 searches that lead here, open source ETL tools, open source ELT tools and open source data integration tools, describe one choice. ETL transforms data before it lands, ELT lands raw data and transforms it in the warehouse, and data integration is the umbrella over both. Most of the newer open source loaders are ELT tools: Airbyte's documentation says custom transformation is not available in Airbyte Open Source, so a SQL tool such as dbt takes over after the load. SeaTunnel describes itself as EtLT, a light transform between extract and load, with heavy transformation left to the warehouse. The ETL vs ELT guide covers when each order wins.
No open source tool is the right default. The choice follows from your sources, your team's skills and where you want transformation to happen.
Know Open source ETL tools the way the interviewer who asks it knows it.
How the open source tools divide the work
Most disagreements about the best tool come from comparing tools that do different jobs. Airbyte and dlt load data, dbt only transforms it, and Airflow does neither: it runs the other tools in the right order and retries them when they fail.


A real stack usually combines 2 or 3 tools from different rows, for example a loader and dbt, with a scheduler on top. A flow engine can take a pipeline from source to transformed output alone, which is why teams with many protocols or strict delivery needs pick one instead of assembling pieces.
Airbyte, dlt and Meltano: open source ELT loaders
Airbyte is a data movement platform with a catalogue of 700+ connectors, offered self-hosted or as a paid cloud service. Its licensing is the detail to read first. The Airbyte licences page says its connectors and public repositories, except the Airbyte Protocol, are under the Elastic License 2.0 and that only the protocol is MIT. The 2 uses it names as restricted are hosting Airbyte yourself to sell it as an ELT or ETL tool and selling a product that directly exposes its UI or API. Running it for your own company's pipelines is neither. It fits teams that want a large prebuilt connector catalogue and no connector code.
dlt is a Python library under Apache 2.0 (6.1k stars), not a platform. You define a source in Python, create a pipeline with a destination such as DuckDB or Snowflake, and call pipeline.run(source). It infers the schema and normalizes nested JSON into tables. It also supports incremental loading and schema evolution, and it loads to 20+ destinations. Because it is a library it runs wherever Python runs, such as an Airflow task or a container, and you own the scheduling and infrastructure. It fits teams that write Python and have APIs no connector catalogue covers.
Meltano (MIT, 2.7k stars) is built around the Singer specification. A Singer tap writes JSON lines to stdout in 3 message types: SCHEMA and RECORD describe and carry the data, and STATE records progress. A target loads them, and the STATE message is the bookmark the next run reads to resume where the last one stopped. Meltano wraps taps and targets in a declarative, code-first project and tracks that state for you. It runs dbt as a transformer and supports Airflow as its orchestrator. It fits teams that want a pipeline defined as files in Git and an existing tap for their source.
Airbyte, dlt, Meltano and SeaTunnel side by side
- Licence
- Shape
- Catalogue
- Transform
- GitHub stars
- LicenceELv2 (source-available)
- ShapePlatform
- Catalogue700+ connectors
- TransformNot in open source
- GitHub stars22.3k
- LicenceApache 2.0
- ShapePython library
- Catalogue20+ destinations
- TransformPython interfaces
- GitHub stars6.1k
- LicenceMIT
- ShapeDeclarative project
- CatalogueSinger taps, targets
- TransformRuns dbt
- GitHub stars2.7k
- LicenceApache
- ShapeEngine
- Catalogueabout 200 connectors
- TransformLight transforms
- GitHub starsNot read
Apache NiFi, Apache Hop and Apache SeaTunnel: flow engines
Apache NiFi (Apache 2.0, 6.3k stars) moves data between systems as flows you design in a browser. Its documentation highlights data provenance, which records the full lineage of every piece of data, a choice between guaranteed and loss-tolerant delivery, and back pressure that slows producers when consumers fall behind. Those are operational guarantees, which is why it suits routing across many protocols and audit requirements more than warehouse-centred ELT.
Apache Hop is a visual platform for pipelines and workflows with 250+ transforms. A run configuration picks where the same pipeline runs: its native engine, a Hop Server, Spark or Databricks, or Flink and Google Dataflow through Apache Beam. It suits teams that want a canvas, transformation inside the tool and a portable pipeline.
Apache SeaTunnel is a top-level Apache project for batch and streaming work and for change data capture, with about 200 connectors. A job definition runs on its own Zeta engine, or on Flink or Spark, so it suits teams that already operate one of those engines.
Talend Studio shows the risk of visual ETL tools. Qlik retired the open source Talend Studio on 31 January 2024 and no longer hosts or updates it.
Debezium: open source change data capture
Debezium (Apache 2.0) turns a database's row-level writes into a stream of change events. It lists 18 source connectors, 8 of them stable, among them CockroachDB, Db2, MariaDB, MongoDB, MySQL, Oracle, PostgreSQL and SQL Server. Each event carries the operation and the row before and after the change, plus source metadata.
Debezium normally runs inside Kafka Connect and writes to Kafka topics, with offsets stored in Kafka so it resumes in commit order after downtime. Debezium Server runs the same connectors without Kafka. It is the tool for propagating row-level changes in near real time, including deletes that a nightly extract misses, and it feeds a warehouse only through something that consumes the stream. Interviewers ask about this pattern often.
dbt, Airflow and Dagster: transformation and scheduling
dbt handles the T of ELT. You write SQL select statements and it builds tables and views in the warehouse in dependency order, and its documentation says it works alongside ingestion tools rather than replacing them. Its licence differs between the Python-based v1 and the newer Rust-based releases, so read the licensing page for the version you would run.
Airflow (Apache 2.0, 47.4k stars) and Dagster (Apache 2.0, 16.4k stars) define pipelines in Python and run other tools in order, retrying them on failure. Airflow models work as tasks in a DAG, and Dagster models it as assets, the tables and files the pipeline produces. Neither moves data by itself at scale; they call the loaders and dbt. The dbt vs Airflow guide explains how the 2 roles divide.
Which open source ETL tool fits which situation
| Your situation | Tools that fit | Why |
|---|---|---|
| SaaS APIs and databases into a warehouse, and nobody wants to write connectors | Airbyte, or Meltano with existing taps | Both bring a large catalogue of prebuilt sources, so the work is configuration |
| A Python team with an internal or unusual API | dlt | A source is a Python function, and the library handles schema, nesting and incremental state |
| Row-level changes from an OLTP database, deletes included | Debezium | It reads the database's change stream instead of repeatedly querying tables |
| Many protocols, routing rules and a need to audit where data went | Apache NiFi | Provenance, back pressure and delivery guarantees are built into the flow model |
| A visual designer with transforms inside the tool | Apache Hop | Pipelines are drawn on a canvas and the same pipeline runs on several engines |
| Batch, streaming and CDC onto Spark or Flink you already run | Apache SeaTunnel | One job definition can run on Zeta, Flink or Spark |
| SQL transformation after the data has landed | dbt, behind any loader above | It models dependencies between SQL models and runs them in the warehouse |
| Dependencies, retries and schedules across all of the above | Airflow or Dagster | They run other tools in order, and neither is a data mover on its own |
How to check an open source ETL tool's licence and governance
Open source is not one thing. Apache 2.0 and MIT licences place few limits on how you run a tool. The Elastic License 2.0 allows you to read and run the code but restricts offering it as a service, which is why Airbyte is better called source-available. Check the licence of the exact component you plan to deploy, because a platform and its connectors can carry different terms, and the protocol can differ again.
Governance decides how long a tool lives. Airflow, NiFi, Hop and SeaTunnel are Apache Software Foundation projects, and Debezium is hosted by the Commonhaus Foundation. Talend Open Studio sat under one vendor, and its retirement on 31 January 2024 left users with software nobody updates. Before adopting a tool, look at who commits to it, how often it releases and whether a company could close it.
What self-hosting an open source ETL tool costs you
The licence is free and the operation is not. A self-hosted tool leaves you with upgrades, secrets, scaling and on-call monitoring. Connectors break when a source changes its API. A library such as dlt leaves the scheduler and the compute to you, and a continuous service such as NiFi or Debezium needs a supervisor and alerts of its own.
Make every load idempotent, so a retry cannot double rows. Store incremental state outside the worker, since a lost bookmark forces a full reload. Alert on freshness and row counts at the destination, because a loader that exits 0 can still load nothing.
How open source ETL tools come up in data engineering interviews
Interviewers rarely ask you to rank tools. They give a pipeline problem and listen for whether you can name what each stage needs: how a source is read incrementally, where state is kept, what happens to a late or duplicated record, and how a backfill runs without breaking the current load.
To practice that reasoning, work through the ETL interview questions and the data pipeline interview questions, then design full pipelines in the data pipeline practice problems. The data engineer interview prep guide lays out the whole loop, and data pipeline architecture shows how the pieces above fit together.
Open source ETL tools FAQ
What is the best open source ETL tool?+
What is the difference between ETL and ELT tools?+
What are open source data integration tools?+
Is Airbyte really open source?+
What replaced Talend Open Studio?+
Do I need an orchestrator with these tools?+
The candidate who gets the offer
- 01
Reading a solution is not the same as writing one
Every engineer who has frozen on a query they had read a dozen times knows the gap. The only preparation that closes it is producing the answer yourself, under time, before the interview does it for you
- 02
76% of hiring managers reject on the coding task, not the resume
From HackerRank's 2024 Developer Skills Report. Candidates who look strong on paper still fail the live screen if they haven't done timed, executable practice
- 03
System design comes down to the calls you defend out loud
Ingestion, batch vs streaming, the bronze/silver/gold layers, idempotency, backfill and replay. Sketching the pipeline and naming the failure modes is the signal, not the boxes
Related guides
Data pipeline interview questions
The pipeline design and operations questions interviewers ask
Data pipeline practice problems
Pipeline design problems to practice before the loop
ETL vs ELT
When to transform before the load and when after
ETL interview questions
Questions on incremental state and idempotent loads
Data engineer interview prep
The full loop and how to prepare for each round
Compete in the Weekly
Dirty, production-shaped data, scored blind each week.