Chapter 01 · Data Warehouse Foundations: OLTP vs OLAP, Analytical Workloads, Architecture, and Lab Dataset
Warehouse, Data Mart, ODS, Data Lake, Lakehouse, Semantic Layer, and BI Platform: Responsibilities and Boundaries
Separate warehouse, mart, ODS, lake, lakehouse, semantic-layer, and BI responsibilities and validate an AtlasMart architecture contract.
Learning outcomes
AtlasMart has an ERP database, CRM extracts, inventory snapshots, web-event files, analyst spreadsheets, and dashboards. Calling every destination “the warehouse” hides responsibility: which layer owns raw evidence, integrated historical data, certified metrics, low-latency current state, or user presentation? This lesson separates those boundaries without pretending every organization must deploy every named layer.
Define warehouse, data mart, ODS, data lake, lakehouse, semantic layer, and BI platform by responsibility rather than brand.
Trace one AtlasMart question from source evidence to consumer while identifying system-of-record and serving boundaries.
Distinguish logical responsibility from physical deployment; several responsibilities may share infrastructure without becoming semantically identical.
Recognize dependent versus independent marts and why duplicated business logic creates drift.
Build and validate a local architecture manifest that gives each dataset an owner, purpose, freshness class, and consumer contract.
These terms are used differently across vendors and organizations. The course defines them operationally by responsibility. When a product documentation uses a term differently, record the product-specific meaning instead of silently assuming equivalence.
1. A warehouse is an analytical responsibility, not merely a large database
A data warehouse is the governed analytical environment that integrates data for historical analysis and repeatable decision support. It should expose stable meaning, traceability, quality controls, and workload isolation appropriate to analytical consumers. The implementation might be a relational MPP engine, a serverless service, a lakehouse query layer, or another architecture.
The word does not guarantee a star schema, a specific vendor, nightly batch, or one physical database. Those are design choices. What makes the responsibility “warehouse-like” is that it turns source evidence into durable, queryable analytical meaning under explicit contracts.
2. Separate the neighboring responsibilities
| Layer or responsibility | Primary job | Typical history | What it must not silently become |
|---|---|---|---|
| Operational data store (ODS) | Integrate near-current operational state for operational reporting or process support | Often limited compared with a warehouse | A historical warehouse merely because it contains copies of source rows |
| Data warehouse | Integrated, governed analytical history and reusable presentation structures | Deliberate historical retention | An unrestricted raw dump or dashboard-specific logic store |
| Data mart | Focused analytical serving area for a domain/process/audience | Inherited or selected from governed analytical data | An independent semantic island when enterprise conformance is required |
| Data lake | Broad file/object repository for raw, semi-structured, and structured data | Potentially deep, subject to retention policy | A guarantee of transactional semantics, quality, or BI usability |
| Lakehouse | Architecture that adds table-management/query/governance capabilities over lake-oriented storage | Depends on table/retention design | A claim that dimensional modeling, semantic governance, or BI serving is unnecessary |
| Semantic layer | Reusable business definitions for measures, metrics, dimensions, relationships, and policy | Versioned definitions rather than raw history | A hidden place where every dashboard invents its own formula |
| BI platform | Dashboards, reports, exploration, alerts, and distribution | Usually caches/results rather than source history | The authoritative source of business data by default |
These are not mutually exclusive boxes. A managed service may host warehouse and semantic responsibilities in one product. A lakehouse can serve as the physical warehouse platform. An ODS can feed a warehouse. The discipline is to keep the contracts distinct even when the infrastructure is shared.
3. Follow one AtlasMart question end to end
Suppose operations asks: “Which paid orders from the last 30 minutes belong to customers currently marked high-priority, and what is the paid merchandise value by region?” The ERP is authoritative for order state; CRM is authoritative for customer priority; neither should become authoritative for the joined analytical answer.
A plausible responsibility chain is:
- Sources: ERP and CRM commit operational facts.
- Landing/raw evidence: immutable extracts or change records preserve what ingestion observed.
- Integration/warehouse: identity, timestamps, quality, and history policies are applied.
- Mart/presentation: sales-oriented structures make the approved grain and dimensions convenient.
-
Semantic layer:
paid_gmvand “high-priority customer” definitions are versioned once. - BI: dashboard/exploration renders the answer and its freshness state.
An ODS might be added if a near-current operational process needs integrated current state with lower latency than the historical warehouse path. It is not mandatory just because the acronym exists.
4. Logical boundaries can share hardware
Architecture diagrams often imply one product per box. That can create needless complexity. AtlasMart can preserve clear raw, integration, presentation, semantic, and BI responsibilities while using a single local database in a learning lab or one managed platform in production. Conversely, placing datasets in separate cloud services does not create governance if definitions, lineage, and access controls are unclear.
For every dataset ask: Who owns the meaning? What is its grain or row contract? Is it replayable? Is it certified for consumption? What freshness does it promise? Who can read it? Which upstream evidence can reproduce it? If those answers are unknown, adding another product does not solve the boundary problem.
5. Controlled failure: one “analytics” bucket for everything
A team creates analytics/ and drops ERP CSVs,
curated customer tables, dashboard exports, notebooks, and KPI
extracts into the same namespace. Analysts cannot tell which
file is raw, which is corrected, which formula is certified, or
whether a dashboard CSV is an input or an output. Reprocessing
can overwrite evidence, and security applied to the dashboard
does not protect copied raw PII.
The repair is a contract-first namespace: classify data by responsibility, preserve raw evidence where policy permits, mark certified serving objects, version semantic definitions, and make BI outputs downstream rather than upstream sources unless explicitly governed as such.
6. Hands-on lab — classify the architecture before choosing products
In an empty directory, save this manifest as
architecture.json. It is a teaching contract, not a
vendor configuration file.
{ "datasets": [ {"name":"erp_orders_raw","responsibility":"raw","owner":"data-platform","freshness":"15m","certified":false}, {"name":"crm_customer_current","responsibility":"integration","owner":"customer-data","freshness":"24h","certified":false}, {"name":"sales_order_line_atomic","responsibility":"warehouse","owner":"analytics-engineering","freshness":"30m","certified":true}, {"name":"sales_mart","responsibility":"mart","owner":"sales-analytics","freshness":"30m","certified":true}, {"name":"paid_gmv","responsibility":"semantic","owner":"finance-data","freshness":"30m","certified":true}, {"name":"executive_sales_dashboard","responsibility":"bi","owner":"bi-team","freshness":"60m","certified":true} ]}
import jsonfrom pathlib import Pathallowed = {"raw", "ods", "warehouse", "mart", "lake", "lakehouse", "semantic", "bi", "integration"}data = json.loads(Path("architecture.json").read_text(encoding="utf-8"))names = set()for item in data["datasets"]: assert item["name"] not in names, f"duplicate dataset: {item['name']}" names.add(item["name"]) assert item["responsibility"] in allowed assert item["owner"].strip() assert item["freshness"].strip()print("validated datasets:", len(names))print("certified:", [x["name"] for x in data["datasets"] if x["certified"]])
Run python validate_architecture.py. Expected
evidence: validated datasets: 6, followed by the
four certified objects. Now deliberately change
paid_gmv to responsibility
dashboard_formula; the validator must reject the
unrecognized responsibility. Restore semantic and
rerun.
Verification: every object has one named owner and freshness class; raw data is not certified by default; the semantic metric is distinct from the dashboard; the mart is downstream from the warehouse responsibility. Cleanup: delete only the two files created in this lab directory.
7. Production judgment
Do not ask “warehouse or lakehouse?” before asking what responsibility is missing. AtlasMart may eventually use object storage, an analytical database, open table formats, a semantic model, and a BI service, but each technology should attach to a defined contract. The next lesson compares four architectural styles by where they place integration, transformation, and serving responsibilities.
Knowledge check
Check your understanding
- Why can a lakehouse and a dimensional warehouse coexist without contradiction?
- What distinguishes a semantic layer from a BI dashboard?
- When is an ODS useful, and why is it not automatically required?
- What is the main risk of an independent mart that redefines shared metrics?
- Why does separating products not automatically create clean architectural boundaries?
Review the answers
1. A lakehouse describes storage/table/query architecture while dimensional modeling describes analytical meaning and serving shape; a dimensional presentation can be built on lakehouse-managed data.
2. The semantic layer owns reusable metric/dimension/relationship definitions; the BI dashboard consumes those definitions to present results.
3. An ODS is useful for integrated near-current operational state or operational reporting; if no such requirement exists, adding one is unnecessary complexity.
4. It can create incompatible definitions and keys, making cross-domain analysis and reconciliation unreliable.
5. Boundaries are contractual. Separate services can still have unclear ownership, history, freshness, lineage, and access rules.
Summary and next step
Warehouse, mart, ODS, lake, lakehouse, semantic layer, and BI platform name different responsibilities. Keep those responsibilities explicit even when one platform implements several of them.
Next: Classic Enterprise Warehouse, Dimensional Bus, Modern ELT, and Lakehouse-Centric Architectural Styles.
Authoritative references
- Big Data Academy — course curriculum — Course scope and reserved sequence.
- Kimball Group — Enterprise Data Warehouse Bus Architecture — Technology-independent integration through business processes and conformed dimensions.
- Kimball Group — Enterprise Data Warehouse Bus Matrix — Process/dimension matrix used later to govern incremental delivery.
- dbt Developer Hub — Semantic Layer — One current implementation example of a semantic-layer responsibility; not a course prerequisite.
- Apache Iceberg documentation — Example of an open table-format layer; table format is distinct from semantic modeling and BI serving.