Overview
This article details how Uber built and scaled Apache Hudi to power one of the world's largest data lakes, managing 19,500 datasets with trillions of records across a multi-hundred-petabyte repository. It covers the engineering motivations behind creating Hudi, key innovations like the Metadata Table and Record Index that enabled trillion-record-scale operations, and lessons learned from nearly a decade of operating extreme-scale data lake infrastructure.
What You'll Learn
Why traditional append-only, batch-oriented data lake architectures fail at Uber-scale mutable workloads and what primitives are needed to fix them
How to design a Metadata Table (MDT) with HFile-backed key-value storage to eliminate file listing bottlenecks at extreme scale
How to implement a Record Index for O(1) key lookups across trillion-record tables, replacing external dependencies like HBase
How to architect multi-data-center replication for data lake tables with consistent failover and cloud migration support
Why configuration management, schema evolution, and automated observability are critical operational concerns at scale
Prerequisites & Requirements
- Understanding of data lake concepts including ACID transactions, partitioning, and file formats like Parquet
- Familiarity with distributed processing frameworks such as Apache Spark and Apache Flink
- Understanding of upsert operations, indexing strategies, and incremental processing patterns
- Experience with large-scale data engineering or data platform operations(optional)
Key Questions Answered
Why did Uber build Apache Hudi instead of using existing data lake technologies?
How does the Hudi Metadata Table solve the file listing bottleneck at scale?
How does the Hudi Record Index enable efficient upserts on trillion-record tables?
What are the different workload types in Uber's data lake and how many tables does each have?
How does Uber handle multi-data-center replication for Hudi tables?
What is Uber's IngestionNext initiative and how does Hudi support it?
What are the key operational lessons from running a trillion-row data lake?
What is Uber's future roadmap for Apache Hudi?
Key Statistics & Figures
Technologies & Tools
Some links below are affiliate links. We may earn a commission if you make a purchase.
Key Actionable Insights
1Implement a metadata layer to eliminate filesystem-level bottlenecks for large-scale data lake operations. Storing file listings, column statistics, and bloom filters in an indexed key-value store within the table format itself allows O(1) lookups instead of expensive filesystem list operations. This is especially critical when managing thousands of partitions with millions of files.Uber deployed their Metadata Table to over 90% of production datasets, fundamentally changing the economics of operating their data lake by removing dependence on HDFS NameNode for file listings.
2Build native record-level indexing into your data lake storage layer rather than relying on external index services like HBase. An embedded index that maps record keys to file groups enables O(1) lookups without external operational dependencies, reducing both latency and infrastructure complexity for upsert-heavy workloads.Uber's Record Index achieves 1-2 millisecond lookup latency per record key and supports sharding into up to 10,000 HFiles for tables exceeding 300 billion rows, enabling parallelized lookups across thousands of executors.
3Tackle the hardest technical challenges in your data platform first rather than deferring them. Building scalable indexing, schema evolution, and mutable data support early prevents architectural dead-ends that become exponentially harder to fix as the platform grows and more dependencies accumulate.Uber learned that while small deployments can use bloom filters and file scanning for upserts, these approaches become completely intractable at trillion-row scale. Without planning for scalable indexing from the start, no amount of compute would make such workloads viable.
4Centralize configuration management for your data lake tables to prevent configuration drift from becoming a scaling bottleneck. What starts as a few parameter overrides per dataset quickly turns into tens of thousands of subtly different configurations, making it impossible to roll out improvements safely.Uber's Hudi Config Store provides a controlled, globally consistent configuration layer that enables new features, compaction logic, and file-sizing improvements to be rolled out across thousands of datasets safely and predictably.
5Treat schema evolution as a first-class concern from day one by implementing strong backward-compatibility rules, automated schema validation, and pre-change validation. At scale, a seemingly harmless field rename can break thousands of downstream jobs, and the operational cost of schema issues grows exponentially with dataset count.Uber's schemas change constantly as product teams iterate and launch new features. Without automated guardrails, schema changes became one of the most persistent sources of operational incidents.
6Invest in automated observability and validation tooling that continuously checks data lake consistency, rather than relying on reactive incident response. Silent issues like corrupted files, configuration errors, and open source bugs are the most dangerous because they can cascade into large-scale outages before detection.Uber's Hudi Validation tool detects inconsistencies early, and their M3-based metrics system tracks commit latency, compaction throughput, file growth rates, and table health across all 19,500 datasets.