Skip to main content

OLake (v0.3.14 - v0.3.16)

January 13, 2026 – February 09, 2026

🎯 What's New

Sources

  1. New Source Introduction -
    Introduced MSSQL as new source connector for OLake.

  2. New Source Introduction -
    Introduced DB2 LUW as new source connector for OLake.

  3. MySQL connector JDBC params and SSL support -
    Added support for JDBC URL parameters and SSL/TLS configuration in the MySQL connector, enabling more flexible and secure connections.

  4. Kafka Avro schema registry support -
    Added Schema Registry support for Kafka sync for Avro data using the Schema Registry API (currently Confluent Schema Registry); requires Confluent Wire Format, otherwise falls back to JSON.

Platform Features

  1. OLake full refresh sync performance -
    Improved OLake sync performance for full refresh operations.

  2. Manual approval for integration tests -
    Added a manual approval gate for integration tests so they only run when explicitly approved.

  3. OLake version in telemetry -
    Added OLake version as a telemetry property so it’s visible in the Mixpanel dashboard for filtering and analysis.

Destinations

  1. Dedup handled by Iceberg Java engine -
    Removed Go-side de-duplication logic since the Iceberg Java writer already handles row-level changes via positional delete files.

  2. Driver-specific CDC ordering metadata columns -
    Added driver-specific CDC position columns (MySQL binlog file/pos, PostgreSQL LSN, MongoDB resume token, MSSQL start LSN/seq) so events can be reliably ordered even when _cdc_timestamp is identical within a transaction, and emit them consistently in both normalized and non-normalized outputs.

🔧 Bug Fixes & Stability

  1. Dynamic RPS benchmarking -
    Improved performance tests to compare requests-per-second (RPS) against the average of the last 5 runs instead of static benchmarks for more reliable performance tracking.

  2. Parquet schema field name normalization -
    Normalized schema field names to lowercase before Parquet schema creation so mixed-case definitions like COL_INTEGER and col_integer map deterministically to a single destination column, preventing non-deterministic type overrides and intermittent Parquet write failures during schema evolution.

  3. compare.go unit test coverage -
    Added unit tests for olake/utils/typeutils/compare.go, covering comparisons across nil, signed/unsigned integers, floats, booleans, time.Time, custom time types, and fallback string comparisons to harden core comparison logic used in incremental sync, backfill, and binlog processing.

  4. MongoDB connection extra parameters -
    Allowed passing arbitrary key–value connection options via the MongoDB config so they are appended to the MongoDB URI as additional parameters.

  5. Iceberg dedup commit ordering fix -
    Updated the Iceberg writer to commit each writer completion’s data files and equality delete files together in a single atomic commit, preserving Iceberg sequence-number semantics so deletes apply to the intended data files and preventing duplicate results during schema evolution + concurrent updates.

  6. Arrow Iceberg writer improvements -
    Added support for now() in partition transformations, fixed int-to-long handling in the Arrow Iceberg writer, and added integration tests.

  7. New writer instance on retry -
    On retry, the writer now starts with a fresh instance and new artifacts instead of reusing the previous failed writer state, preventing unexpected failures and avoiding stale/partial data from being pushed after a retry.

  8. Kafka flatten json.Number handling -
    Updated flatten.go to treat json.Number as a supported primitive type so numeric values decoded with UseNumber() pass through as numbers (not JSON strings), preventing schema detection type mismatches for Kafka JSON messages.

  9. MySQL binlog FLOAT precision alignment -
    Ensured FLOAT values read from MySQL binlog follow MySQL’s float32 semantics by casting binlog float values back to float32, preventing extra-precision float64 output mismatches versus MySQL SELECT results.

  10. IBM Db2 LUW integration tests -
    Added integration tests for IBM Db2 LUW to improve end-to-end validation.

​11. MSSQL CDC capture instance selection for schema evolution -
With schema changes, CDC may create a new capture instance and streaming could keep reading from an older one. Fix: Always pick the newest valid capture instance (based on start_lsn vs fromLSN) and clamp reads to the new instance’s start_lsn when switching.

  1. MySQL CDC TIMESTAMP timezone alignment -
    Resolve the effective MySQL timezone (session → global → system, or jdbc_url_params.time_zone) and use it in the CDC binlog syncer so CDC writes TIMESTAMP in the DB/server timezone. ​


💡 Join the OLake Community!

Got questions, ideas, or just want to connect with other data engineers?
👉 Join our Slack Community to get real-time support, share feedback, and shape the future of OLake together. 🚀

Your success with OLake is our priority. Don’t hesitate to contact us if you need any help or further clarification!