datazip-inc/olake

OLake - Fastest Databases, Kafka & S3 Replication to Apache Iceberg with Table optimization (Called OLake Fusion). ⚡ Efficient, quick and scalable data ingestion for real-time analytics. Supported sources : Postgres, MongoDB, MySQL, Oracle, MSSql, DB2, Kafka, S3.

Go

1,476

795 commits

updated Oct 12, 2026

See the code

See what people are saying

SourceMessageScoreDate

Keeping Lakehouses Open-Source

2

Oct 8, 2026

README

olake
OLake Go

OLake Go is a high-performance, open-source data ingestion engine for replicating databases, S3, and Kafka into Apache Iceberg (or plain Parquet).
Built for scalable, real-time pipelines, OLake Go provides a simple web UI and CLI - used to ingest into vendor-lock-in free Iceberg tables supporting all the query-engines/warehouses.

Read the docs and benchmarks at olake.io/docs. Join our active community on Slack.

GitHub issues Documentation slack Contribute to OLake

[!NOTE] 🎉 OLake Fusion is now live! — Automate your Apache Iceberg Table Maintenance. Check it out here → github.com/datazip-inc/olake-fusion 🎉

OLake Go — Super-fast Sync to Apache Iceberg

OLake Go supports replication from transactional databases such as PostgreSQL, MySQL, MongoDB, Oracle, DB2, and MSSQL, event-streaming systems like Apache Kafka and Object-store like S3, into open data lakehouse formats such as Apache Iceberg or Plain Parquet — delivering blazing-fast performance with minimal infrastructure cost.

pic


🚀 Why OLake Go?

  • 🧠 Smart sync: Full + CDC replication with automatic schema discovery & schema evolution
  • ⚡ High throughput: 580K RPS (Postgres) & 338K RPS (MySQL)
  • ➡️ Exactly once delivery & Arrow writes: Accuracy with speed.
  • 💾 Iceberg-native: Supports Glue, Hive, JDBC, REST catalogs
  • 🖥️ Self-serve UI: Deploy via Docker Compose and sync in minutes
  • 💸 Infra-light: No Spark, no Flink, no Kafka, no Debezium

📊 Benchmarks

Full Load

Source → DestinationFull LoadRelative Performance (Full Load)Full Report
Postgres → Iceberg
(as of 30th Jan 2026)
5,80,113 RPS12.5× faster than FivetranFull Report
MySQL → Iceberg
(as of 30th May 2026)
1,39,773 RPS1.91× faster than FivetranFull Report
MongoDB → Iceberg
(as of 5th Feb 2026)
37,879 RPS-Full Report
Oracle → Iceberg
(as of 30th Jan 2026)
5,26,337 RPS-Full Report
Kafka → Iceberg
(as of 27th Feb 2026)
2,09,065 MPS (Bounded Incremental)1.23x slower than FlinkFull Report
MSSQL → Iceberg
(as of 09th June 2026)
3,45,866 MPS4.32x faster than FivetranFull Report

CDC

Source → DestinationCDCRelative Performance (CDC)Full Report
Postgres → Iceberg
(as of 30th Jan 2026)
55,555 RPS2× faster than FivetranFull Report
MySQL → Iceberg
(as of 30th May 2026)
59,951 RPS1.52× faster than FivetranFull Report
MongoDB → Iceberg
(as of 5th Feb 2026)
10,692 RPS-Full Report

🔧 Supported Sources and Destinations

Sources (Databases)

SourceFull LoadCDCIncrementalNotesDocumentation
PostgreSQL✅✅ pgoutput✅wal2json deprecatedPostgres Docs
MySQL✅✅✅Binlog-based CDCMySQL Docs
MongoDB✅✅✅Oplog-based CDCMongoDB Docs
Oracle✅WIP✅JDBC based Full Load & IncrementalOracle Docs
DB2✅-✅JDBC based Full Load & IncrementalDB2 Docs
MSSQL✅✅✅Full Load, CDC & IncrementalMSSQL Docs

Source (S3)

SourceFull LoadCDCIncrementalNotesDocumentation
S3✅-✅Ingests from Amazon S3 or S3-compatible (MinIO, LocalStack)S3 Docs

Source (Kafka)

SourceBounded IncrementalNotesDocumentation
Kafka✅Latest offset bounded incremental syncKafka Docs

Destinations

DestinationFormatSupported Catalogs
Iceberg✅Glue, Hive, JDBC, REST (Nessie, Polaris, Unity, Lakekeeper, AWS S3 tables)
Parquet✅Filesystem
Writer Docs
  1. Apache Iceberg Docs

    1. Catalogs
      1. AWS Glue Catalog
      2. REST Catalog
        • Generic
        • Lakekeeper
        • Nessie
        • S3 Tables
        • Unity
        • Apache Polaris
      3. JDBC Catalog
      4. Hive Catalog
    2. Azure ADLS Gen2
    3. Google Cloud Storage (GCS)
    4. MinIO (local)
  2. Parquet Writer

    1. AWS S3 Docs
    2. Google Cloud Storage (GCS)
    3. Local FileSystem Docs

🧪 Quickstart (UI + Docker)

OLake UI is a web-based interface for managing OLake Go jobs, sources, destinations and configurations. You can run the entire OLake Go stack (UI, Backend, and all dependencies) using Docker Compose. This is the recommended way to get started. Run the UI, connect your source DB, and start syncing in minutes.

curl -sSL https://raw.githubusercontent.com/datazip-inc/olake-ui/master/docker-compose.yml | docker compose -f - up -d

Access the UI:

Detailed getting started using OLake UI can be found here.

olake-ui

Creating Your First Job

With the UI running, you can create a data pipeline in a few steps:

  1. Configure Source: Navigate to Source tab and click Create Source. Set up your source connection.
  2. Configure Destination: Navigate to Destination tab and click Create Destination. Set up your destination.
  3. Create a Job: Navigate to the Jobs tab and click Create Job.
  4. Configure & Run: Give your job a name, set a schedule, select your source and destination and click Next to finish.
  5. Select Streams: Choose which tables to sync and configure their sync mode (CDC, Full Refresh or Incremental).

For a detailed walkthrough, refer to the Jobs documentation.


🛠️ CLI Usage (Advanced)

For advanced users and automation, OLake Go's core logic is exposed via a powerful CLI. The core framework handles state management, configuration validation, logging, and type detection. It interacts with drivers using four main commands:

  • spec: Returns a render-able JSON Schema for a connector's configuration.
  • check: Validates connection configurations for sources and destinations.
  • discover: Returns all available streams (e.g., tables) and their schemas from a source.
  • sync: Executes the data replication job, extracting from the source and writing to the destination.
  • clear-destination : Clears data in the destination, only for the selected streams defined in streams.json.

Find out more about CLI here.


Install OLake Go

Below are other different ways you can run OLake Go:

  1. OLake Go UI (Recommended)
  2. Kubernetes using Helm
  3. Standalone Docker container
  4. Airflow on EC2
  5. Airflow on Kubernetes

Playground

  1. OLake Go + Apache Iceberg + REST Catalog + Presto
  2. OLake Go + Apache Iceberg + AWS Glue + Trino
  3. OLake Go + Apache Iceberg + AWS Glue + Athena
  4. OLake Go + Apache Iceberg + AWS Glue + Snowflake
  5. OLake Go + Apache Iceberg + REST Catalog + Spark

🌍 Use Cases

  • ✅ Migrate from OLTP to Iceberg without Spark or Flink
  • ✅ Enable BI over fresh CDC data using Athena, StarRocks, Trino, Presto, Dremio, Databricks, Snowflake and more!
  • ✅ Build near real-time data lake-house on cost-efficient cloud object stores
  • ✅ Move away from vendor-lock-in warehouse or tools with open data lake-house
  • ✅ Single copy for both analytics & machine learning

🧭 Roadmap Highlights

  • Oracle Full Load Support
  • Oracle Incremental
  • Filters for Full Load and Incremental
  • Interoperability (Coming Soon)
  • Iceberg V3 Support

🤝 Contributing

We ❤️ contributions, big or small!

Check out our Bounty Program. A huge thanks to all our amazing contributors!

apache-iceberg
cdc
change-data-capture
database
data-pipeline
elt
hacktoberfest
kafka
lakehouse
parquet
replication
s3

datazip-inc/olake

OLake - Fastest Databases, Kafka & S3 Replication to Apache Iceberg with Table optimization (Called OLake Fusion). ⚡ Efficient, quick and scalable data ingestion for real-time analytics. Supported sources : Postgres, MongoDB, MySQL, Oracle, MSSql, DB2, Kafka, S3.

Go

1,476

795 commits

updated Oct 12, 2026

See the code

See what people are saying

SourceMessageScoreDate

Keeping Lakehouses Open-Source

2

Oct 8, 2026

README

olake
OLake Go

OLake Go is a high-performance, open-source data ingestion engine for replicating databases, S3, and Kafka into Apache Iceberg (or plain Parquet).
Built for scalable, real-time pipelines, OLake Go provides a simple web UI and CLI - used to ingest into vendor-lock-in free Iceberg tables supporting all the query-engines/warehouses.

Read the docs and benchmarks at olake.io/docs. Join our active community on Slack.

GitHub issues Documentation slack Contribute to OLake

[!NOTE] 🎉 OLake Fusion is now live! — Automate your Apache Iceberg Table Maintenance. Check it out here → github.com/datazip-inc/olake-fusion 🎉

OLake Go — Super-fast Sync to Apache Iceberg

OLake Go supports replication from transactional databases such as PostgreSQL, MySQL, MongoDB, Oracle, DB2, and MSSQL, event-streaming systems like Apache Kafka and Object-store like S3, into open data lakehouse formats such as Apache Iceberg or Plain Parquet — delivering blazing-fast performance with minimal infrastructure cost.

pic


🚀 Why OLake Go?

  • 🧠 Smart sync: Full + CDC replication with automatic schema discovery & schema evolution
  • ⚡ High throughput: 580K RPS (Postgres) & 338K RPS (MySQL)
  • ➡️ Exactly once delivery & Arrow writes: Accuracy with speed.
  • 💾 Iceberg-native: Supports Glue, Hive, JDBC, REST catalogs
  • 🖥️ Self-serve UI: Deploy via Docker Compose and sync in minutes
  • 💸 Infra-light: No Spark, no Flink, no Kafka, no Debezium

📊 Benchmarks

Full Load

Source → DestinationFull LoadRelative Performance (Full Load)Full Report
Postgres → Iceberg
(as of 30th Jan 2026)
5,80,113 RPS12.5× faster than FivetranFull Report
MySQL → Iceberg
(as of 30th May 2026)
1,39,773 RPS1.91× faster than FivetranFull Report
MongoDB → Iceberg
(as of 5th Feb 2026)
37,879 RPS-Full Report
Oracle → Iceberg
(as of 30th Jan 2026)
5,26,337 RPS-Full Report
Kafka → Iceberg
(as of 27th Feb 2026)
2,09,065 MPS (Bounded Incremental)1.23x slower than FlinkFull Report
MSSQL → Iceberg
(as of 09th June 2026)
3,45,866 MPS4.32x faster than FivetranFull Report

CDC

Source → DestinationCDCRelative Performance (CDC)Full Report
Postgres → Iceberg
(as of 30th Jan 2026)
55,555 RPS2× faster than FivetranFull Report
MySQL → Iceberg
(as of 30th May 2026)
59,951 RPS1.52× faster than FivetranFull Report
MongoDB → Iceberg
(as of 5th Feb 2026)
10,692 RPS-Full Report

🔧 Supported Sources and Destinations

Sources (Databases)

SourceFull LoadCDCIncrementalNotesDocumentation
PostgreSQL✅✅ pgoutput✅wal2json deprecatedPostgres Docs
MySQL✅✅✅Binlog-based CDCMySQL Docs
MongoDB✅✅✅Oplog-based CDCMongoDB Docs
Oracle✅WIP✅JDBC based Full Load & IncrementalOracle Docs
DB2✅-✅JDBC based Full Load & IncrementalDB2 Docs
MSSQL✅✅✅Full Load, CDC & IncrementalMSSQL Docs

Source (S3)

SourceFull LoadCDCIncrementalNotesDocumentation
S3✅-✅Ingests from Amazon S3 or S3-compatible (MinIO, LocalStack)S3 Docs

Source (Kafka)

SourceBounded IncrementalNotesDocumentation
Kafka✅Latest offset bounded incremental syncKafka Docs

Destinations

DestinationFormatSupported Catalogs
Iceberg✅Glue, Hive, JDBC, REST (Nessie, Polaris, Unity, Lakekeeper, AWS S3 tables)
Parquet✅Filesystem
Writer Docs
  1. Apache Iceberg Docs

    1. Catalogs
      1. AWS Glue Catalog
      2. REST Catalog
        • Generic
        • Lakekeeper
        • Nessie
        • S3 Tables
        • Unity
        • Apache Polaris
      3. JDBC Catalog
      4. Hive Catalog
    2. Azure ADLS Gen2
    3. Google Cloud Storage (GCS)
    4. MinIO (local)
  2. Parquet Writer

    1. AWS S3 Docs
    2. Google Cloud Storage (GCS)
    3. Local FileSystem Docs

🧪 Quickstart (UI + Docker)

OLake UI is a web-based interface for managing OLake Go jobs, sources, destinations and configurations. You can run the entire OLake Go stack (UI, Backend, and all dependencies) using Docker Compose. This is the recommended way to get started. Run the UI, connect your source DB, and start syncing in minutes.

curl -sSL https://raw.githubusercontent.com/datazip-inc/olake-ui/master/docker-compose.yml | docker compose -f - up -d

Access the UI:

Detailed getting started using OLake UI can be found here.

olake-ui

Creating Your First Job

With the UI running, you can create a data pipeline in a few steps:

  1. Configure Source: Navigate to Source tab and click Create Source. Set up your source connection.
  2. Configure Destination: Navigate to Destination tab and click Create Destination. Set up your destination.
  3. Create a Job: Navigate to the Jobs tab and click Create Job.
  4. Configure & Run: Give your job a name, set a schedule, select your source and destination and click Next to finish.
  5. Select Streams: Choose which tables to sync and configure their sync mode (CDC, Full Refresh or Incremental).

For a detailed walkthrough, refer to the Jobs documentation.


🛠️ CLI Usage (Advanced)

For advanced users and automation, OLake Go's core logic is exposed via a powerful CLI. The core framework handles state management, configuration validation, logging, and type detection. It interacts with drivers using four main commands:

  • spec: Returns a render-able JSON Schema for a connector's configuration.
  • check: Validates connection configurations for sources and destinations.
  • discover: Returns all available streams (e.g., tables) and their schemas from a source.
  • sync: Executes the data replication job, extracting from the source and writing to the destination.
  • clear-destination : Clears data in the destination, only for the selected streams defined in streams.json.

Find out more about CLI here.


Install OLake Go

Below are other different ways you can run OLake Go:

  1. OLake Go UI (Recommended)
  2. Kubernetes using Helm
  3. Standalone Docker container
  4. Airflow on EC2
  5. Airflow on Kubernetes

Playground

  1. OLake Go + Apache Iceberg + REST Catalog + Presto
  2. OLake Go + Apache Iceberg + AWS Glue + Trino
  3. OLake Go + Apache Iceberg + AWS Glue + Athena
  4. OLake Go + Apache Iceberg + AWS Glue + Snowflake
  5. OLake Go + Apache Iceberg + REST Catalog + Spark

🌍 Use Cases

  • ✅ Migrate from OLTP to Iceberg without Spark or Flink
  • ✅ Enable BI over fresh CDC data using Athena, StarRocks, Trino, Presto, Dremio, Databricks, Snowflake and more!
  • ✅ Build near real-time data lake-house on cost-efficient cloud object stores
  • ✅ Move away from vendor-lock-in warehouse or tools with open data lake-house
  • ✅ Single copy for both analytics & machine learning

🧭 Roadmap Highlights

  • Oracle Full Load Support
  • Oracle Incremental
  • Filters for Full Load and Incremental
  • Interoperability (Coming Soon)
  • Iceberg V3 Support

🤝 Contributing

We ❤️ contributions, big or small!

Check out our Bounty Program. A huge thanks to all our amazing contributors!

apache-iceberg
cdc
change-data-capture
database
data-pipeline
elt
hacktoberfest
kafka
lakehouse
parquet
replication
s3

Project health

Latest release

v0.12.0 · Oct 7, 2026

Releases this year

60

Significant stargazers

Chirag Aggarwal

243 followers · starred Mar 2025

Christine Belzie

562 followers · starred Mar 2025

Asish Kumar

168 followers · starred Mar 2025

Matthias Vallentin

438 followers · starred Sep 2025