hudi

**Apache Hudi** is the **open-source data lakehouse platform created at Uber for efficient upserts and incremental processing on large datasets stored in object storage** — solving the specific challenge of applying real-time database changes (inserts, updates, deletes) to massive Parquet-based data lakes without rewriting entire partitions on every change. **What Is Apache Hudi?** - **Definition**: A data lake storage framework that provides efficient upsert (update + insert) and delete operations on large datasets stored in HDFS or object storage — using a record-level index to locate which file contains a specific record and updating only that file rather than rewriting entire partitions. - **Origin**: Created at Uber in 2016 to solve the "How do we apply driver payment updates and trip corrections to our 100TB+ data lake in near real-time?" problem — donated to Apache in 2019. - **Record Index**: Hudi maintains a record-level index (HBase or in-file) mapping each record key to its physical file location — enabling point updates to individual records without full partition rewrites. - **Table Types**: Hudi offers two table types optimized for different access patterns: Copy-on-Write (COW) for read-heavy workloads and Merge-on-Read (MOR) for write-heavy streaming use cases. - **Incremental Queries**: Consumers can query "What records changed in the last 15 minutes?" rather than reprocessing the entire table — critical for streaming ETL pipelines and real-time ML feature updates. **Why Hudi Matters for AI/ML** - **Real-Time Feature Updates**: Update individual user features (latest purchase, recent click, current balance) in the feature store within minutes of the triggering event — Hudi's upsert handles the "update this one record" operation efficiently. - **Streaming Ingestion**: Kafka → Spark Structured Streaming → Hudi table pipeline: continuously ingests CDC events from databases into a queryable analytical table updated in near-real-time. - **Incremental Training**: ML pipelines can consume only new/changed records from Hudi tables since the last training run — avoiding reprocessing terabytes of historical data to incorporate daily updates. - **GDPR Compliance**: Delete a specific user's records across all Hudi tables without partition rewrites — Hudi's delete operation marks records as deleted in the index and filters them from queries. - **Time Travel**: Audit training data state at any past point — Hudi maintains timeline metadata enabling point-in-time queries for debugging model drift. **Core Hudi Concepts** **Table Types**: Copy-on-Write (COW): - Writes rewrite affected Parquet files with updates applied - Read-optimized: readers always see clean Parquet files - Write amplification: expensive for high-frequency updates - Best for: analytics workloads with infrequent updates Merge-on-Read (MOR): - Writes append delta log files (Avro format) rather than rewriting Parquet - Reads merge base Parquet with delta logs on the fly - Write-optimized: extremely fast ingestion for streaming - Best for: streaming CDC ingestion, near-real-time use cases **Hudi Timeline (Transaction Log)**: - Ordered sequence of actions: commit, compaction, clean, rollback - Every committed instant is immutable with timestamp, action type, and state - Incremental queries specify a start instant to get only subsequent changes **Incremental Query Pattern**: hudi_df = spark.read.format("hudi") .option("hoodie.datasource.query.type", "incremental") .option("hoodie.datasource.read.begin.instanttime", "20240101000000") .load("/path/to/hudi/table") **Compaction**: - MOR tables periodically compact delta logs back into Parquet base files - Scheduled as async background job to avoid blocking ingestion - Reduces read-time merge overhead as delta logs accumulate **Hudi vs Alternatives** | Feature | Hudi | Delta Lake | Iceberg | |---------|------|-----------|---------| | Upsert efficiency | Best (record index) | Good | Good | | Streaming native | Yes (MOR) | Yes | Yes | | Incremental queries | Native | CDC feed | Incremental scan | | Engine support | Spark, Flink | Spark, Trino | All major engines | Apache Hudi is **the streaming-first data lakehouse platform that makes real-time upserts on massive datasets practical** — by maintaining a record-level index and providing both copy-on-write and merge-on-read table types, Hudi enables ML teams to build near-real-time feature stores and continuously updated training datasets on top of object storage without the prohibitive cost of full-partition rewrites.

Go deeper with CFSGPT

Get AI-powered deep-dives, save terms, and run advanced simulations — free account.

Create Free Account