This lesson on One Big Table (OBT) vs Star — The Modern Debate is hands-on and example-driven. Evaluate architectural trade-offs between One Big Table (OBT) and Star Schema (Dimensional Modeling) in modern data platforms. You will identify when denormalization accelerates early analytics delivery and when Kimball-style logical modeling is required to maintain semantic integrity, manage historical changes, and control long-term storage costs.
What You'll Be Able To Do
- Differentiate the physical and logical structure of a denormalized One Big Table from a Kimball Star Schema.
- Evaluate compute versus storage cost trade-offs when eliminating distributed joins in modern lakehouses.
- Assess data integrity risks and operational overhead when tracking Slowly Changing Dimensions (SCDs) in an OBT.
- Architect analytical lakehouse layers that decouple physical storage optimizations from logical semantic business models.
Detailed Concept Walkthrough
1. Structural Paradigms: OBT vs. Star Schema
Star Schema isolates metrics in fact tables and business contexts in normalized dimension tables, whereas OBT collapses all attributes into a single wide table.
- Mechanism: Star Schema separates quantitative measurements (facts) from descriptive attributes (dimensions), linking them via surrogate foreign keys to establish strict relational integrity.
- Under the Hood: One Big Table (OBT) pre-joins all dimensions into the fact record at ingestion or transformation time, creating wide rows where categorical strings repeat across millions of rows.
- Best Practice: Use Star Schema when multiple business processes share conforming dimensions (e.g., shared Customer or Product entities across Sales, Support, and Billing domains).
-- Star Schema: Fact references Dimension foreign key
CREATE TABLE dim_customer (
customer_key INT PRIMARY KEY,
customer_name VARCHAR(100),
tier VARCHAR(20)
);
CREATE TABLE fact_sales (
sale_id BIGINT PRIMARY KEY,
customer_key INT REFERENCES dim_customer(customer_key),
sale_amount DECIMAL(10, 2),
order_timestamp TIMESTAMP
);
Key Takeaway: Star Schemas maintain relational modularity across business processes, while OBT prioritizes single-table self-containment.
2. The Performance Appeal: Eliminating Distributed Joins
OBT gained traction because eliminating distributed table joins can significantly simplify query writing and reduce query execution latency for simple analytical scans.
- Mechanism: Distributed SQL engines (like Spark, Trino, or Snowflake) perform network shuffles when joining large fact tables to dimension tables across compute nodes.
- Under the Hood: By denormalizing attributes into an OBT, read queries scan only local columnar files (Parquet/ORC) without requiring data repartitioning or broadcast joins across worker nodes.
- Best Practice: Leverage OBT as specialized downstream serving tables (e.g., feeding specific BI dashboards) rather than treating OBT as the core foundational storage layer.
-- OBT: Single flat table eliminates distributed JOIN at read time
CREATE TABLE obt_sales_analytics (
sale_id BIGINT,
sale_amount DECIMAL(10, 2),
order_timestamp TIMESTAMP,
customer_name VARCHAR(100),
customer_tier VARCHAR(20),
product_category VARCHAR(50)
);
Key Takeaway: OBT trades write-time data duplication for read-time join elimination in distributed query engines.
3. Limitations: Historical Tracking and Semantic Integrity
Denormalizing all attributes into one table destroys central semantic control and creates severe maintenance bottlenecks when handling entity mutations and historical tracking.
- Mechanism: In a Star Schema, a Slowly Changing Dimension (SCD Type 2) updates or adds a single dimension row without touching historical fact records.
- Under the Hood: In an OBT, updating an attribute (like a customer tier change) requires updating or backfilling millions of historical rows, triggering massive rewrite cycles in immutable columnar formats.
- Best Practice: Avoid OBT when downstream analysts require explicit, authoritative definitions of entity relationships and audit-ready historical state tracking.
-- Updating an attribute in Star Schema updates one record:
UPDATE dim_customer
SET tier = 'Enterprise'
WHERE customer_key = 1042;
-- Updating an attribute in OBT requires rewriting millions of rows:
UPDATE obt_sales_analytics
SET customer_tier = 'Enterprise'
WHERE customer_name = 'Acme Corp';
Key Takeaway: Mutations and historical dimension tracking in OBT cause expensive table-wide rewrites and risk data inconsistency.
4. Modern Architecture: Logical Modeling vs. Physical Storage
Modern lakehouse formats (Delta Lake, Apache Iceberg) loosen physical storage constraints, but logical dimensional modeling remains essential for organizational scalability.
- Mechanism: Columnar formats with dictionary encoding and compression mitigate raw storage footprint for duplicated string attributes in wide tables.
- Under the Hood: Although physical storage handles wide tables efficiently, the lack of a logical Kimball model forces every downstream consumer to re-derive business logic and join rules independently.
- Best Practice: Adopt a hybrid architecture by storing trusted, normalized dimensional layers upstream while generating materialized OBT views for end-user BI tools.
-- Hybrid pattern: Maintain dimensional source, expose OBT as consumer view
CREATE VIEW view_dashboard_sales_obt AS
SELECT
f.sale_id,
f.sale_amount,
f.order_timestamp,
c.customer_name,
c.tier AS customer_tier
FROM fact_sales f
JOIN dim_customer c ON f.customer_key = c.customer_key;
Key Takeaway: Physical lakehouse storage optimizations do not replace the need for logical Kimball semantic modeling.
Topics Covered in One Big Table (OBT) vs Star — The Modern Debate
- Defining the OBT Controversy (0:00 - 0:24) — Introduces the debate between traditional dimensional modeling and the rise of denormalized tables.
- OBT vs. Dimensional Modeling (0:24 - 1:35) — Contrasts single wide denormalized tables with multi-table fact and dimension structures.
- Primary Appeal of OBT (1:35 - 2:02) — Explains how OBT achieves fast query execution and development velocity by eliminating distributed joins.
- OBT Limitations and Complexity (2:02 - 3:41) — Details how OBT struggles with complex analytics, historical change tracking, and semantic consistency.
- Long-Term Trade-Off Analysis (3:41 - 4:44) — Analyzes storage costs, data duplication risks, and long-term operational maintenance between both models.
Data Modeling & Warehousing Fundamentals Cheat Sheet
-
Star Schema Fact Definition— Defines central metric table with dimension foreign keysCREATE TABLE fact_orders (order_id INT, cust_id INT, amount NUMERIC); -
Star Schema Dimension Definition— Stores normalized entity attributes and business contextCREATE TABLE dim_cust (cust_id INT PRIMARY KEY, region TEXT); -
One Big Table (OBT) Definition— Stores facts and descriptive attributes in one tableCREATE TABLE obt_orders (order_id INT, cust_region TEXT, amount NUMERIC); -
Star Schema Query— Aggregates metrics by joining dimension tables to factsSELECT d.region, SUM(f.amount) FROM fact_orders f JOIN dim_cust d ON f.cust_id = d.cust_id GROUP BY 1; -
OBT Query— Aggregates metrics directly from flat columns without joinsSELECT cust_region, SUM(amount) FROM obt_orders GROUP BY 1;
Comparison Table
| Architectural Metric | One Big Table (OBT) | Star Schema (Kimball) |
|---|---|---|
| Data Structure | Single denormalized wide table | Central fact with normalized dimensions |
| Query Complexity | No distributed joins required | Requires explicit multi-table relational joins |
| Storage Efficiency | High duplication across historical rows | High efficiency via normalized dimensions |
| Dimension Updates (SCD) | Costly full-table updates or backfills | Isolated updates to dimension tables |
| Semantic Integrity | Implicit and derived by consumers | Explicitly defined across shared dimensions |
| Initial Setup Velocity | Fast for single-use-case reporting | Slower due to upfront modeling |
Common Pitfalls
- Mistake: Choosing OBT solely for initial implementation speed without evaluating update frequency. Avoid: Determine whether attributes change over time and require audit tracking before denormalizing.
- Mistake: Assuming columnar compression completely eliminates the storage penalty of wide tables. Avoid: Measure the cost of metadata overhead and full columnar file rewrites during updates.
- Mistake: Abandoning dimensional modeling because distributed compute can scan flat files fast. Avoid: Maintain logical Star Schemas to preserve a single source of truth across domains.
FAQs
- Why has One Big Table (OBT) become popular again in modern data stacks? Modern distributed compute engines scan columnar formats rapidly, and avoiding complex shuffle joins provides immediate query speed and setup simplicity for targeted BI tools.
- How does OBT break down when tracking Slowly Changing Dimensions (SCDs)? Because descriptive attributes are duplicated across every transactional row, updating a customer attribute requires rewriting historical partition files rather than inserting one record into a dimension table.
- What is the recommended modern hybrid approach between OBT and Star Schema? Model and store core data warehouse layers using Kimball Star Schemas for governance, then build denormalized OBT views or tables downstream for BI consumption.