Uber Optimizes Data Exports

Uber slashes data export costs by combining Hudi column stats and table sorting, preserving cloud storage tiering.

9 min read
Diagram showing contrasting analytics vs export workload file scanning patterns in a Hudi table.
Uber Engineering

Visual TL;DR. High export costs leads to Hot data problem. High export costs problem for Secondary indexes fail. Hot data problem solved by Winning combination. Secondary indexes fail replaced by Winning combination. Hudi column stats combined with Winning combination. Table sorting combined with Winning combination. Winning combination enables Preserves storage tiering. Preserves storage tiering results in Slashed export costs. Winning combination achieves Slashed export costs.

  1. High export costs: DSARs and compliance requests trigger full-table scans on massive historical archives
  2. Hot data problem: even selective queries on cold data inflate storage, retrieval, and egress costs
  3. Secondary indexes fail: not suitable for broad historical scope and small, specific record lookups
  4. Hudi column stats: leverages Apache Hudi's built-in metadata to quickly identify relevant data files
  5. Table sorting: organizes data physically on disk, reducing the need to scan irrelevant blocks
  6. Winning combination: Hudi column stats and table sorting work together to optimize data access
  7. Preserves storage tiering: avoids rehydrating cold data, keeping costs low on Google Cloud Storage
  8. Slashed export costs: significantly reduces storage, retrieval, and egress expenses for export workloads
Visual TL;DR
Visual TL;DR, startuphub.ai High export costs · Hudi column stats · Table sorting · Slashed export costs High export costs Hudi column stats Table sorting Slashed export costs From startuphub.ai · The publishers behind this format
Visual TL;DR, startuphub.ai High export costs · Hudi column stats · Table sorting · Slashed export costs High export costs Hudi column stats Table sorting Slashed exportcosts From startuphub.ai · The publishers behind this format
Visual TL;DR, startuphub.ai High export costs · Hudi column stats · Table sorting · Slashed export costs High export costs DSARs and compliance requests triggerfull-table scans on massive historicalarchives Hudi column stats leverages Apache Hudi's built-in metadatato quickly identify relevant data files Table sorting organizes data physically on disk,reducing the need to scan irrelevantblocks Slashed export costs significantly reduces storage, retrieval,and egress expenses for export workloads From startuphub.ai · The publishers behind this format
Visual TL;DR, startuphub.ai High export costs · Hudi column stats · Table sorting · Slashed export costs High export costs DSARs andcompliance requeststrigger full-table… Hudi column stats leverages ApacheHudi's built-inmetadata to quickly… Table sorting organizes dataphysically on disk,reducing the need… Slashed exportcosts significantlyreduces storage,retrieval, and… From startuphub.ai · The publishers behind this format
Visual TL;DR, startuphub.ai High export costs leads to Hot data problem. High export costs problem for Secondary indexes fail. Hot data problem solved by Winning combination. Secondary indexes fail replaced by Winning combination. Hudi column stats combined with Winning combination. Table sorting combined with Winning combination. Winning combination enables Preserves storage tiering. Preserves storage tiering results in Slashed export costs. Winning combination achieves Slashed export costs leads to problem for solved by replaced by combined with combined with enables results in achieves High export costs DSARs and compliance requests triggerfull-table scans on massive historicalarchives Hot data problem even selective queries on cold datainflate storage, retrieval, and egresscosts Secondary indexes fail not suitable for broad historical scopeand small, specific record lookups Hudi column stats leverages Apache Hudi's built-in metadatato quickly identify relevant data files Table sorting organizes data physically on disk,reducing the need to scan irrelevantblocks Winning combination Hudi column stats and table sorting worktogether to optimize data access Preserves storage tiering avoids rehydrating cold data, keepingcosts low on Google Cloud Storage Slashed export costs significantly reduces storage, retrieval,and egress expenses for export workloads From startuphub.ai · The publishers behind this format
Visual TL;DR, startuphub.ai High export costs leads to Hot data problem. High export costs problem for Secondary indexes fail. Hot data problem solved by Winning combination. Secondary indexes fail replaced by Winning combination. Hudi column stats combined with Winning combination. Table sorting combined with Winning combination. Winning combination enables Preserves storage tiering. Preserves storage tiering results in Slashed export costs. Winning combination achieves Slashed export costs leads to problem for solved by replaced by combined with combined with enables results in achieves High export costs DSARs andcompliance requeststrigger full-table… Hot data problem even selectivequeries on colddata inflate… Secondary indexesfail not suitable forbroad historicalscope and small,… Hudi column stats leverages ApacheHudi's built-inmetadata to quickly… Table sorting organizes dataphysically on disk,reducing the need… Winningcombination Hudi column statsand table sortingwork together to… Preserves storagetiering avoids rehydratingcold data, keepingcosts low on Google… Slashed exportcosts significantlyreduces storage,retrieval, and… From startuphub.ai · The publishers behind this format

Uber engineers have developed a method to significantly reduce the cost of running specific data export workloads. These tasks, often related to compliance or privacy requests like Data Subject Access Requests (DSARs), involve retrieving small datasets from massive historical archives. The challenge lies in the fact that even selective queries can trigger full-table scans, leading to inflated storage, retrieval, and egress costs on their Google Cloud Storage™-backed lakehouse. The solution, detailed on the Uber Engineering blog, combines Apache Hudi™ column statistics with table sorting.

Export workloads are characterized by their narrow search criteria but broad historical scope. Unlike typical analytics queries that might process large amounts of recent data, these export tasks repeatedly hunt for specific records across years of historical information. This pattern, described as finding a needle in a haystack where the haystack is the entire data table, forces systems to repeatedly access data files. This constant activity prevents cloud storage services, like Google Cloud Storage, from automatically moving less-frequently accessed data to cheaper, colder tiers. StartupHub.ai data indicates Uber scores 76/100, with a verified post-money valuation of $4K, placing it above competitors like The Bot Company (62/100) and Agility Robotics (58/100).

The Problem with Hot Data

Google Cloud Storage offers tiered storage, allowing data to move to cheaper classes like Nearline, Coldline, or Archive based on access frequency. However, export workloads disrupt this by keeping all data "hot" through repeated scans. Even reading file metadata or footers, which contain column statistics in formats like Parquet, can keep objects in the expensive Standard tier. This negates the cost-saving benefits of auto-tiering, leading to unnecessarily high storage bills. Uber's goal is to achieve a distribution closer to 60% Standard, 15% Nearline, 10% Coldline, and 15% Archive, but hot data keeps everything at 100% Standard.

Why Secondary Indexes Fell Short

The team explored Apache Hudi's secondary index feature, which is designed to accelerate queries on non-primary key columns by helping engines prune data files. While secondary indexes can identify candidate files, they proved insufficient for Uber's specific export workloads. The issue is that records for a given subject ID are often spread across a large number of files. Consequently, even with a secondary index, the query engine still had to inspect a substantial set of files, incurring high metadata and file-scan costs. The overhead of maintaining the index itself also added to the operational burden.

The Winning Combination: Column Stats and Sorting

Uber's successful approach hinges on two key components working in tandem. First, Apache Hudi maintains column-level statistics (min, max, null counts) in its metadata table, separate from the actual data files. This allows query engines to identify relevant files for a predicate without reading the Parquet data itself, drastically reducing the scan surface area. This metadata-driven pruning is crucial for keeping older data cold and preserving GCS auto-tiering benefits.

Second, table sorting is applied to the predicate columns. Since export queries are frequently driven by subject identifiers (like rider IDs), sorting clusters records for the same subject into a smaller subset of files. When combined with Hudi's column statistics, this physical clustering makes file pruning far more effective. Column stats provide the mechanism for pruning, and sorting enhances its precision. This pairing transforms broad file scans into highly targeted file selection, reducing read, shuffle, and execution times for row-level queries.

Benchmarking showed significant improvements. For instance, with 5,000 predicates, a sorted partition reduced the percentage of target files accessed from 100% in an unsorted table to a much smaller fraction. The results demonstrated substantial reductions in GCS egress, compute costs, and overall storage footprint. Optimized storage also improves compression efficiency.

Broader Applicability

This pattern of narrow, subject-oriented lookups over long historical windows is common across many industries. Finance firms need it for regulatory and audit workflows. Healthcare and life sciences require it for patient history access and compliance reviews. E-commerce uses it for fraud investigations and customer support. Ad tech relies on it for attribution and personalization, and security systems use it for investigations and access reviews. The techniques Uber developed could offer substantial cost savings and performance gains in these domains.

Next Steps and Lessons Learned

Uber plans to expand these optimizations to handle multi-column lookups, exploring techniques like Z-order curves for more complex data layouts. They are also developing an automated framework to identify these "needle-in-a-haystack" access patterns and trigger optimizations only when the return on investment is clear. Key lessons from the initiative include: access patterns dictate storage costs; file layout is as important as storage tiering; metadata-driven pruning is essential; and a one-time rewrite cost can yield long-term savings. The success highlights the importance of an end-to-end design where storage layout, metadata, and query execution align.

© 2026 StartupHub.ai. All rights reserved. Do not enter, scrape, copy, reproduce, or republish this article in whole or in part. Use as input to AI training, fine-tuning, retrieval-augmented generation, or any machine-learning system is prohibited without written license. Substantially-similar derivative works will be pursued to the fullest extent of applicable copyright, database, and computer-misuse laws. See our terms.