UberExplainer
Simplifying Data and Product Integrations with a Data Abstraction Layer
Summary
Uber built a domain-agnostic Data Abstraction Layer (DAL) to decouple data consumers from changing physical datasets and simplify advertiser reporting. The DAL is an RPC service that accepts a logical table, schema, time range, and filters; logical tables define the interface, while configuration describes locations, relationships, availability windows, and rollup transforms. It generates database-specific queries, runs them in parallel across systems such as an internal OLAP database, Docstore, and Apache Hive, and assembles responses with aggregation and rollup behavior determined by the request. Removing a dimension can produce an account-level response with metrics automatically rolled up, while mixed realtime and daily tables can cover different portions of a requested time range. For advertiser reporting, the approach reduced new report delivery from several weeks or months to under two days and enabled dynamic filters, report builders, and third-party API integrations.
Context
Advertiser reporting required flexible combinations of time ranges, campaigns, dimensions, and metrics across heterogeneous and evolving data stores. Before the DAL, building a new report took several weeks to a couple of months, while queries were tightly coupled to underlying dataset structures.
Approach / What changed
The DAL places an RPC service between data consumers and producers. Consumers query logical tables, while declarative configurations and table resolution select physical datasets based on schema eligibility, availability, and column continuity. The service generates and executes database-specific queries, including mixed-database requests, in parallel, then assembles and rolls up the results.
Takeaways
Logical tables expose a stable data interface without specifying where or how data is retrieved; the DAL resolves the physical tables and columns needed for each request.
Table resolution filters candidates by requested schema and availability, then maps metric time ranges to candidates, preferring overlapping candidates closer in cardinality to the request.
New advertiser reports that previously took several weeks to a couple of months can now be delivered in under two days, enabling dynamic report builders and third-party API integrations.
Source and freshness
- Source
- uber.com
- Published
- Added to Yomu
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.