Favicon of Apache Hudi

Apache Hudi

Apache Hudi is an open lakehouse format that pioneered transactional data lakes, offering record-level upserts and deletes, incremental queries, and a choice between copy-on-write and merge-on-read table types.

LicenseOpen source (permissive)· Apache-2.0
DeploymentSelf-hostedManaged
PricingFree
Operational complexityMedium
LanguageJava

Use it when

  • You are applying record-level upserts and deletes to lake tables continuously, such as CDC ingestion from operational databases.
  • Downstream pipelines should consume only what changed, using incremental queries or the CDC view instead of full scans.
  • The workload is write-heavy or streaming and merge-on-read fits: appends land fast and compaction is deferred.
  • Key-based writes benefit from its indexes (bloom, bucket, record-level) to locate affected files quickly.

Think twice when

  • Your engines need to write from outside Spark or Flink; Trino, Presto, and Hive only read Hudi tables.
  • You want to minimize table operations: compaction, clustering, cleaning, and archival are yours to configure and run.
  • Multiple writers must commit concurrently; optimistic concurrency needs an external lock provider except in the non-blocking MoR case.
  • The data is slow-changing batch output, where Iceberg or Delta Lake involves fewer moving parts.

How it runs

Hudi is a library inside the engine, not a server. Tables live on object storage with the transaction timeline in the table directory, optionally synced to a metastore or catalog. You choose copy-on-write or merge-on-read per table and schedule maintenance inline, semi-async, or as separate jobs. Managed platforms from the ecosystem around the project run those services for you, and Apache XTable can translate the metadata to Iceberg or Delta in place.

Details

Compare

How Apache Hudi answers the questions Table Formats turns on.

Table Formats
How it works
CatalogOptional: timeline in the table directory; metastore sync
Update modelCopy-on-write or merge-on-read, chosen per table; partial updates on MoR
PartitioningHive-style paths: no hidden partitioning; an expression index covers some of the gap
Schema evolutionAdd and promote on write; drop, rename and reorder need schema-on-read, one-way
Concurrent writersOCC with an external lock provider; non-blocking mode for MoR bucket-index writers
IndexesMulti-modal: bloom, simple, bucket, record-level, secondary and expression indexes
Change feedIncremental queries since a commit, or CDC with before and after images
Running it
MaintenanceCompaction, clustering, cleaning and archival, inline, semi-async or a separate job
Connections
Engine supportSpark and Flink write; Trino, Presto, Hive read
Cross-format readsApache XTable translates the metadata to Iceberg or Delta in place

Share:

Alternatives to Apache Hudi

Favicon

 

  
  
Favicon

 

  
  
Favicon