---
title: "Simplifying Data and Product Integrations with a Data Abstraction Layer"
description: "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."
---

# Simplifying Data and Product Integrations with a Data Abstraction Layer

[Uber](https://yomu.fyi/company/uber) · Jun 11, 2026

**Type:** Explainer

## 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.

**Tags:** [Architecture](https://yomu.fyi/topic/architecture), [Databases](https://yomu.fyi/topic/databases), [Data Engineering](https://yomu.fyi/topic/data-engineering)

- Source: [Uber](https://www.uber.com/us/en/blog/data-abstraction-layer)
- Source URL: https://www.uber.com/us/en/blog/data-abstraction-layer
- Ingested by Yomu: 2026-09-11T08:01:06.480Z

[Read original post](https://www.uber.com/us/en/blog/data-abstraction-layer)
