Airbyte Fundamentals
Airbyte is an open-source data integration platform. It copies data out of APIs, databases, and files and loads it into a data warehouse, lake, or database using pre-built connectors, so teams do not hand-write and maintain a separate extraction script for every system they need data from.
itData engineering and analytics | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic: Airbyte Fundamentals
Airbyte is an open-source tool that copies data out of one system and into another. That is the entire job. It pulls rows from a database, records from an API, files from a bucket, and lands all of it in a warehouse, then remembers where it stopped so the next run only moves what changed.
The problem it solves is tedium at scale. Before a tool like this, every system you wanted data from meant another small program: its own login handling, its own paging, its own logic for "what is new since last time." Multiply that by forty sources and you have a codebase whose only purpose is to break quietly whenever an upstream API changes. Airbyte replaces those programs with connectors that all speak one message format, so adding a source becomes filling in a form instead of starting a new project.
Three ideas carry the rest. A connector reads or writes exactly one system, and connectors never talk to each other; the platform sits in the middle passing messages. A connection is the pipeline you configure: one source, one destination, a list of streams, and a schedule. State is the bookmark: the source reports how far it got, the platform saves that, and the next sync starts from there. Clear the bookmark and the next sync re-reads everything, which is occasionally what you want and frequently a surprise.
The surprise worth front-loading: Airbyte does the E and the L of ELT, and stops. It will not model your data, join anything, or apply a business rule. It types the columns and removes duplicates in the destination, and that is the end of its ambition. Transformation is a separate tool's job, usually dbt, running after Airbyte. A second surprise, quieter and meaner: a sync can finish green while dropping values. Since a redesign in 2023, a value that does not fit its column type gets set to null and noted in a metadata column called _airbyte_meta, and the sync still reports success. When destination numbers look wrong, that column is where the story is.
One more thing that catches people. If you replicate a database with change data capture, the database keeps its transaction log until Airbyte reads it. Sync rarely, or pause the connection and walk away, and that log can grow until the source server runs out of disk. Sync often, and clean up after yourself.
Where to go next. The Cheatsheet is the reference for sync modes, the connector protocol, CDC metadata columns, and the platform services. The Practice Reference has the abctl commands to run Airbyte locally plus SQL to inspect what a sync produced. The Field Notes cover what teams get wrong: uneven connector quality, the Kubernetes commitment that self-hosting now carries, and why anything written about Airbyte before late 2023 describes tables that no longer exist. Start with the intro; it explains the whole machine end to end.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://docs.airbyte.com/
Supports
- Airbyte as an open-source data replication platform that moves data from sources into warehouses, lakes, and databases
- MIT and ELv2 licensing, with the source in the airbytehq/airbyte repository
- https://docs.airbyte.com/platform/
Supports
- Airbyte consolidating data from hundreds of sources into warehouses, lakes, and databases for EL(T) workflows
- The plan tiers Core, Standard, Plus, Pro, and Enterprise Flex
- The UI, API and SDKs, Terraform, and PyAirbyte as the four ways to work with Airbyte
- https://docs.airbyte.com/platform/using-airbyte/core-concepts/
Supports
- Definitions of source, destination, connector, connection, stream, record, and field
- Connection as an automated pipeline linking a configured source and destination with a replication frequency and a set of streams
- Sync schedule options including scheduled interval, CRON, and manual or API trigger
- Destination namespace defining where data is written, called schema, dataset, or bucket path depending on the destination
- Typing and Deduping writing source data into type-cast relational columns with optional deduplication
- https://docs.airbyte.com/platform/using-airbyte/core-concepts/sync-modes/
Supports
- A sync mode combining a source read method with a destination write method
- Full Refresh reads everything; Incremental reads records changed since the last sync, using cursors or CDC
- The first Incremental sync being equivalent to a Full Refresh
- Overwrite, Append, and Append Deduped write behaviors
- Append Deduped keeping a history table and producing a final table de-duplicated by primary key
- https://docs.airbyte.com/platform/understanding-airbyte/airbyte-protocol
Supports
- The Airbyte Protocol as JSON messages exchanged over stdin and stdout
- The spec, check, discover, read, and write connector operations
- Message types RECORD, STATE, LOG, SPEC, CONNECTION_STATUS, CATALOG, TRACE, and CONTROL
- AirbyteCatalog as the discovered schema and ConfiguredAirbyteCatalog as how streams should be replicated
- AirbyteStream carrying name, optional namespace, json_schema, and supported_sync_modes (FULL_REFRESH, INCREMENTAL)
- State types STREAM, GLOBAL, and LEGACY, and destinations returning state in the order received
- https://docs.airbyte.com/platform/understanding-airbyte/high-level-view
Supports
- The platform-and-connectors split
- The airbyte-server config API as the main controller behind the UI and all operations
- airbyte-db persisting configuration and job history
- airbyte-temporal handling scheduling and task queues
- The workload API server and workload launcher enqueuing and launching workloads on Kubernetes
- airbyte-cron and airbyte-bootloader handling housekeeping and database migrations
- Connector containers running per sync with the platform passing records between them
- https://docs.airbyte.com/platform/understanding-airbyte/cdc
Supports
- Airbyte using the Debezium engine internally for CDC
- CDC supported on Postgres, MySQL, SQL Server, MongoDB, Oracle, SAP HANA, and IBM Db2
- Log-based replication capturing INSERT, UPDATE, and DELETE
- Metadata columns _ab_cdc_updated_at, _ab_cdc_deleted_at, and _ab_cdc_lsn or _ab_cdc_cursor (plus _ab_cdc_log_file and _ab_cdc_log_pos for MySQL)
- _ab_cdc_deleted_at being non-null only for records from DELETE statements
- TRUNCATE and ALTER not appearing in the log
- A purged log position requiring a full refresh to recover
- https://docs.airbyte.com/platform/using-airbyte/core-concepts/typing-deduping
Supports
- Typing and Deduping as the default Destinations V2 transformation, replacing legacy normalization
- Raw tables in the airbyte_internal schema with _airbyte_raw_id, _airbyte_data, _airbyte_extracted_at, and _airbyte_loaded_at
- Final tables with one typed column per field, one table per stream, no nested sub-tables, plus _airbyte_raw_id, _airbyte_extracted_at, and _airbyte_meta
- _airbyte_meta.changes recording typing mismatches and size violations without failing the sync
- https://docs.airbyte.com/platform/using-airbyte/core-concepts/namespaces
Supports
- Namespace options destination-defined, source-defined, and custom format
- ${SOURCE_NAMESPACE} interpolation in a custom namespace
- Stream Prefix to prevent stream collisions in a shared destination schema
- Namespace mapping to schema, dataset, or database and stream name mapping to table name
- https://docs.airbyte.com/platform/using-airbyte/schema-change-management
Supports
- Schema-change detection before each sync, every 15 minutes on Cloud and every 24 hours self-managed
- Propagation options including propagate all field and stream changes, propagate field changes only, approve all changes myself, and stop future syncs
- Non-breaking changes (new or removed columns and streams) versus breaking changes (primary key removal, cursor removal) that always pause the connection
- https://docs.airbyte.com/platform/cloud/managing-airbyte-cloud/manage-connection-state
Supports
- Connection state holding the most recent global or stream-level cursor values
- Editing state changing where the next incremental sync starts from
- State edits potentially requiring a full historical sync to fix
- https://docs.airbyte.com/platform/using-airbyte/getting-started/oss-quickstart
Supports
- Installing abctl via the get.airbyte.com script or Homebrew
- Prerequisites of Docker Desktop and 4 CPUs with 8 GB RAM (2 CPUs in low-resource mode)
- abctl local install, --low-resource-mode, --host, and the UI at http://localhost:8000
- abctl local credentials and --password
- abctl local uninstall and --persisted
- https://docs.airbyte.com/platform/connector-development/
Supports
- The Connector Builder as a no-code in-UI tool for API source connectors, not destinations
- The low-code CDK as a declarative YAML framework describing a connector without Python, with optional custom Python components
- The Python CDK as the most flexible and highest-maintenance option
- Declarative manifests describing streams, requests, record selection, and pagination
- https://docs.airbyte.com/platform/connector-development/connector-builder-ui/overview
Supports
- Configuring streams, authentication, pagination, and incremental sync in the Airbyte web UI and testing against the live API
- https://docs.airbyte.com/integrations/connector-support-levels
Supports
- Airbyte Connectors (certified) as tested, vetted, production-ready, and supported for all users
- Marketplace and Community connectors carrying no Airbyte support SLA, needing testing before production, and able to ship breaking changes with no notice
- Enterprise connectors available only to Enterprise and Pro customers
- Custom connectors maintained solely by their builder
- https://docs.airbyte.com/platform/deploying-airbyte/
Supports
- The airbyte/airbyte Helm chart as the Kubernetes deployment path, from the https://airbytehq.github.io/charts repository
- abctl using kind for local single-node deployment
- Production requirements for an external database, object storage for state and logs, secret management, and ingress
- Self-Managed Enterprise adding RBAC, SSO, and multiple workspaces via a license key
- https://docs.airbyte.com/integrations/sources/postgres/postgres-troubleshooting
Supports
- Setting frequent CDC syncs so WAL does not fill disk space
- Deleting the replication slot when you stop syncing a CDC Postgres source
- Raising wal_keep_size (default 0) at the cost of more disk space
- Performing a full refresh when required WAL has been removed
- https://docs.airbyte.com/platform/using-airbyte/pyairbyte/getting-started
Supports
- pip install airbyte, ab.get_source, check, select_all_streams, and read
- DuckDB as the default local cache
- Converting results to pandas or SQL
- No server or orchestration, and a subset of connectors
- https://docs.airbyte.com/release_notes/june_2024
Supports
- Airbyte announcing the formal deprecation of Docker Compose deployments in favor of Kubernetes
- abctl available for local deployments
- https://github.com/airbytehq/airbyte
Supports
- The monorepo holding the platform and all connectors under MIT and ELv2 licenses
- https://airbyte.com/blog/airbytes-journey-until-1-0
Supports
- Airbyte started by Michel Tricot and John Lafleur in July 2020
- Version 0.1 launched on GitHub in October 2020 with 3 sources and 2 destinations
- Airbyte Cloud launched in April 2022
- Airbyte 1.0 released on 24 September 2024 with Self-Managed Enterprise GA
- https://airbyte.com/blog/how-airbyte-raised-its-series-a-round-2-months-after-its-seed
Supports
- A 5.2 million dollar seed round led by Accel in March 2021
- The Series A following roughly two months after the seed
- https://techcrunch.com/2021/05/25/airbyte-announces-26m-series-a-for-open-source-data-connector-platform/
Supports
- A 26 million dollar Series A led by Benchmark, announced 25 May 2021
- https://www.businesswire.com/news/home/20211217005648/en/Airbyte-Closes-$150-Million-Series-B-Funding-Round-Led-by-Altimeter-Capital-and-Coatue-Management
Supports
- A 150 million dollar Series B led by Altimeter Capital and Coatue Management, announced 17 December 2021
- https://techcrunch.com/2022/04/07/airbyte-acquires-data-synchronization-service-grouparoo-to-launch-reverse-etl-capabilities/
Supports
- Airbyte acquiring the open-source reverse-ETL company Grouparoo, announced 7 April 2022
- https://airbyte.com/blog/launching-the-no-code-connector-builder-build-custom-connectors-in-minutes
Supports
- The no-code Connector Builder announced 18 May 2023, available on Airbyte Open Source and Airbyte Cloud
- https://airbyte.com/blog/introducing-airbyte-destinations-v2-typing-deduping
Supports
- Destinations V2 (Typing and Deduping) launched 29 August 2023
- One-to-one stream-to-table mapping with no sub-tables
- Per-row error handling via _airbyte_meta instead of failing syncs
- The intent to remove the concept of normalization from Airbyte
- https://airbyte.com/blog/announcing-pyairbyte
Supports
- PyAirbyte announced in February 2024 as an open-source Python library
- Removing the need for Docker, Kubernetes, or an Airbyte Cloud account to run a connector
- https://github.com/airbytehq/airbyte/discussions/40599
Supports
- The stated reason for deprecating Docker Compose, that it is brittle to upgrade
- A community survey finding most production users deploy on Kubernetes
- abctl using kind (Kubernetes in Docker) under the hood
- The announcement receiving roughly 40 downvotes to 5, with concerns about running Kubernetes on a single VM
- https://airbyte.com/blog/connector-release-stages
Supports
- Generally available connector reliability defined as at least a 99 percent sync success rate with more than 40 users
- Beta connectors averaging roughly a 93 percent sync success rate and alpha connectors roughly 90 percent
- https://registry.terraform.io/providers/airbytehq/airbyte/latest/docs
Supports
- The airbytehq/airbyte Terraform provider managing sources, destinations, and connections as resources
- https://www.singer.io/
Supports
- Singer as an open specification defining the tap-and-target connector pattern
- https://meltano.com/
Supports
- Meltano as a declarative, CLI-first data integration tool that runs Singer taps and targets
- https://dlthub.com/
Supports
- dlt as an open-source Python library for building extract-and-load pipelines that run anywhere Python runs
- https://debezium.io/
Supports
- Debezium as an open-source change data capture platform that streams row-level database changes, commonly into Kafka
- https://estuary.dev/
Supports
- Estuary Flow as a platform combining CDC, batch, and real-time data movement
- https://www.fivetran.com/
Supports
- Fivetran as a fully managed data movement service with prebuilt connectors
- https://www.stitchdata.com/
Supports
- Stitch as a hosted data integration service built on the Singer protocol
- https://hevodata.com/
Supports
- Hevo Data as a no-code, fully managed data pipeline service
- https://www.matillion.com/
Supports
- Matillion as a data integration platform covering both loading and in-warehouse transformation
- https://www.redpanda.com/connect
Supports
- Redpanda Connect (formerly Benthos) as a declarative streaming data pipeline tool with several hundred connectors
- https://greatexpectations.io/
Supports
- Great Expectations as a framework for validating and profiling data in tables
- https://github.com/pawl/awesome-etl
Supports
- The curated awesome-etl list used to select ecosystem tools for the Awesome Links tab
