skip to content

Warehouse Architectures & Layering

The competing blueprints for a whole analytics platform: Kimball's conformed marts, Inmon's normalized enterprise warehouse, Data Vault, and modern medallion layering on a lakehouse. Senior interviews ask you to pick one and defend it.

on this pageshow

explore

questions

30

What is the core difference between the Kimball and Inmon data warehouse architectures?

level: juniorimportance: must knowfreq 72%

answer

  1. Two build directions, two integration points
  2. Who integrates: an upstream layer or shared tables?
  3. Top-down normalized store vs bottom-up marts
  4. Inmon: dependent marts inherit one definition
  5. Kimball: the marts are the warehouse

basics

~10 s

Inmon builds top-down: one normalized enterprise warehouse integrates every source, and dimensional marts are derived from it. Kimball builds bottom-up: dimensional marts per business process are the warehouse, tied together by shared dimensions.

solid answer

~50 s

Both want one trustworthy reporting layer; they disagree about **where integration happens** and **what you build first**. Inmon puts a normalized enterprise data warehouse at the centre. Every operational source is cleaned and loaded into it, and departmental marts are built *from* that store — so marts cannot disagree, because they inherit one definition of customer or product. Kimball skips that layer. You pick one business process, declare its grain, and build a star schema straight from staged source data; that mart *is* the warehouse. Consistency comes from reusing the same physical dimension tables across fact tables rather than from an upstream integrated store. The practical consequence is delivery order: Kimball ships a usable mart in weeks and integrates incrementally; Inmon integrates first and ships reports later, but ships them already reconciled. Most real platforms land somewhere between the two.

code

text · 10 lines
text
INMON (top-down)
  sources -> staging -> normalized enterprise warehouse
                              |
                              +-> finance mart (dimensional)
                              +-> marketing mart (dimensional)

KIMBALL (bottom-up)
  sources -> staging -> orders star  ----+
                     -> shipments star --+-- shared dimension tables
                     -> returns star ----+

go deeper

for a junior

Be ready to state both directions in one sentence each: top-down normalized enterprise store feeding marts, versus bottom-up dimensional marts sharing dimensions. Knowing which name goes with which direction is the whole ask here.

for a middle

Explain where integration physically happens in each design and what the consumption layer looks like. Interviewers expect you to say that both end up serving dimensional models to BI tools.

for a senior

Show the operational consequence: which design ships value sooner, which one makes a cross-cutting definition change expensive, and how each fails in practice when discipline slips.

for a principal

Own the framing that these are poles on an integration axis, not products. Be able to argue what your organization's governance maturity, delivery cadence and source volatility imply about how much integration to do before publishing.

## The question behind the question Interviewers ask this to check whether you see a warehouse as having an *architecture* — a deliberate decision about **where integration happens and in what order you build** — rather than just a pile of tables. Bill Inmon and Ralph Kimball both wanted one trustworthy place for enterprise reporting. They disagreed about which layer does the reconciling and about what the first deliverable is. ## Inmon: top-down, integrate first Inmon's Corporate Information Factory places a single **enterprise data warehouse (EDW)** at the centre of the platform. Data is extracted from every operational system, cleaned, reconciled, and loaded into a normalized model that describes the *enterprise's* entities — customer, product, contract, shipment — rather than any particular report. Inmon's own definition of that store is that it is subject-oriented, integrated, time-variant and non-volatile: organized around business subjects, reconciled across sources, keeping history, and never overwritten in place. That layer is deliberately **not** the surface analysts query. Downstream, **dependent data marts** are derived from it, typically dimensional, one per department or subject area — finance, marketing, supply chain. Because every mart is fed by the same integrated store, two marts physically cannot hold contradictory customer definitions; they inherit one. Integration is a property of the layer, enforced once, by construction. The price is sequencing. Nobody gets a report until the enterprise model covers the entities that report needs, and modelling the enterprise is slow, political work that pays back only later. ## Kimball: bottom-up, publish first Kimball's **dimensional bus architecture** has no enterprise normalized layer. You choose one business process — orders, shipments, claims — declare the grain of its fact table, and build a star schema (one fact table surrounded by dimension tables) directly against staged source data. That mart is the warehouse; there is no other authoritative copy behind it. The next business process is built the same way, and integration is achieved by **reusing the same physical dimension tables** — the same keys, the same attributes — across the new fact tables. Consistency is therefore a property of shared dimensions and of the discipline that plans them up front, not a property of an upstream store. The warehouse is the union of marts plus that shared dimensional backbone. The price is discipline. Nothing physically stops a team from building its own private customer dimension, and when that happens the marts stop agreeing — the failure mode Inmon's architecture designs away structurally. ## What actually differs - **Where integration lives.** Inmon: an upstream normalized layer. Kimball: shared dimension tables inside the delivery layer. - **Unit of delivery.** Inmon: the enterprise model, then marts. Kimball: one business process at a time. - **The queryable surface.** Inmon: marts (the EDW is plumbing). Kimball: the marts are everything. - **Redundancy.** Inmon stores each attribute once centrally and copies it into marts; Kimball accepts denormalized dimension attributes as the normal state. - **Cost of change.** Inmon absorbs a new source into a model designed to receive it, but changing the enterprise model ripples into every dependent mart. Kimball changes one mart cheaply, but a *cross-cutting* change — a new customer definition — must be applied to every fact table that uses that dimension. - **Who it suits.** Inmon rewards organizations that already have central data governance and long horizons; Kimball rewards teams that must show value quarterly. ## Where they agree More than the debate suggests. Both keep analytics off the operational database. Both are subject-oriented and keep history rather than overwriting it. Both end up serving **dimensional models to BI tools**, because business users query facts and dimensions either way. Both require agreed definitions of shared entities — they differ only on whether that agreement is enforced upstream or by reuse. ## What real platforms look like Almost no modern platform is doctrinally pure. Cheap storage and ELT changed the economics: landing raw data costs almost nothing, so most teams land raw, build a reconciled integration layer of some kind (normalized, or another integration modelling style), and publish star schemas on top for consumption. That is Inmon's shape with Kimball's serving layer, and it is the common answer today. Treat the two names as **poles on an axis** — how much integration you do before you publish — rather than as products you buy. ## Answering in an interview Lead with the one-sentence contrast: top-down normalized enterprise store feeding dependent marts, versus bottom-up dimensional marts unified by shared dimensions. Then name the tradeoff — time-to-value against built-in conformance — and close by saying which you would pick for the situation described and why. Reciting only the definitions reads as memorized; naming the consequence reads as experience.

  • In Kimball's architecture, if there is no enterprise warehouse behind the marts, what stops two marts from disagreeing?
    Nothing structural — only design discipline. Kimball's answer is that shared dimensions are planned before any mart is built and then physically reused, so both fact tables point at the same customer table with the same keys. Skip that planning and you get isolated marts that report different numbers, which is the architecture's known failure mode.
  • Does choosing Inmon mean business users query normalized tables?
    No. In Inmon's architecture the normalized enterprise warehouse is an integration layer, not a consumption layer. Users query the dependent marts built on top, which are usually dimensional. Pointing BI tools at the normalized layer produces many-join, hard-to-read queries and is generally a sign the marts were never built.
  • Is one of the two approaches considered obsolete?
    Neither. Cheap storage and ELT made landing and re-processing raw data trivial, which softened the original argument about the cost of an extra layer, but both ideas survive inside modern stacks: an integration layer that reconciles sources, and dimensional marts that serve consumers. Presenting either school as dead is a weak answer.

Inmon builds the municipal water treatment plant first, then pipes to each neighbourhood. Kimball plumbs one neighbourhood now and standardizes the fittings so the next one connects cleanly.

saying these in an interview costs you the question

  • Says Inmon means normalized and Kimball means denormalized, nothing more
  • Claims Kimball has no integration story at all
  • Thinks Inmon's enterprise warehouse is what analysts query
  • Calls one approach outdated without naming a tradeoff
  • Confuses build direction with star-versus-snowflake table shape

context

open as a page

What is a data mart, and how is it different from the warehouse it draws from?

level: juniorimportance: must knowfreq 70%

basics

~20 s

A data mart is a subject-area slice of the warehouse: the facts and dimensions one business area needs, named in their vocabulary and owned by someone. The warehouse holds everything; a mart is a curated, governed subset for a specific audience.

open as a page

What belongs in the bronze, silver and gold layers of a medallion architecture?

level: juniorimportance: must knowfreq 78%

basics

~20 s

Bronze holds source data landed as received, duplicates and quirks included. Silver holds cleaned, typed, deduplicated and conformed entities at a declared grain. Gold holds business-ready output — dimensional models, aggregates and metric tables that reporting queries directly.

open as a page

What is a one-big-table (OBT) analytics model and what problem does it solve?

level: juniorimportance: must knowfreq 55%

basics

~20 s

A one-big-table model materialises a fact and all its dimension attributes into a single wide table, so analysts query it without joins. It buys simplicity and consumer safety, and pays in duplication, rebuild cost and lost dimension reuse.

open as a page

Why are Data Vault satellites insert-only rather than updated in place?

level: middleimportance: must knowfreq 52%

basics

~20 s

Because the vault must be able to prove what each source said at each point in time. Every change inserts a new row stamped with a load date, the previous row is never touched, and loads stay restartable and parallel.

open as a page

Why does a Kimball dimensional mart reach business users sooner than an Inmon warehouse?

level: middleimportance: must knowfreq 55%

basics

~20 s

Because the bottom-up unit of delivery is one business process, not the enterprise. You model only the sources that process needs and publish a usable star schema; the top-down approach must integrate the enterprise model before any report exists.

open as a page

Why is the bronze layer of a lakehouse kept immutable and append-only?

level: middleimportance: must knowfreq 62%

basics

~20 s

Because it is the only copy of what the source actually sent. Keeping it append-only lets you recompute every downstream table after a logic bug or schema change, prove whether an error came from the source or from your code, and survive sources you cannot re-read.

open as a page

In a one-big-table mart, what does copying every dimension attribute onto each fact row cost you?

level: middleimportance: must knowfreq 58%

basics

~20 s

Duplicated attributes make every correction a rewrite of history instead of a one-row dimension update, spread the same business definition across marts where copies drift, and make rebuild cost scale with history rather than with the size of the change.

open as a page

Two dashboards report different revenue for the same month — how do you diagnose and fix it?

level: seniorimportance: must knowfreq 62%

basics

~20 s

Put the two queries side by side and find where they differ: filters, join grain, which date column, currency handling, and which dimension version. Then agree one owner and one definition, migrate both dashboards to it, and add a reconciliation test.

open as a page

Why does an Inmon-style warehouse keep a normalized integration layer beneath its dimensional marts?

level: middleimportance: should knowfreq 52%

basics

~20 s

Because reconciling sources once, in a model of the enterprise rather than of any report, means every mart built on top inherits the same definitions and history. New sources and new marts attach to that layer instead of re-deriving the truth.

open as a page

What is a semantic layer in an analytics stack, and what does it define once?

level: middleimportance: should knowfreq 58%

basics

~20 s

A semantic layer sits between physical tables and consumers, defining metrics, dimensions and join paths once in one reviewed place. Tools request a metric by name instead of writing their own SQL, so every report computes it identically.

open as a page

When should a wide analytics table nest child records in an array column instead of one row per child?

level: middleimportance: should knowfreq 42%

basics

~20 s

Nest children when the table's grain must stay one row per parent and the children are bounded and always read with the parent. Flatten to one row per child when children carry their own measures or filters, and accept that parent measures then repeat.

open as a page

In a Data Vault, why are hub and link keys hashed business keys?

level: seniorimportance: should knowfreq 45%

basics

~20 s

Because a hash is computed from the business key alone, every pipeline can derive the same key without looking anything up. Hubs, links and satellites then load in parallel, in any order, across systems, with no sequence assignment step.

open as a page

In a Data Vault warehouse, what separates the raw vault from the business vault?

level: seniorimportance: should knowfreq 40%

basics

~20 s

The raw vault holds source data with only hard rules applied — type casting, key standardization, hashing — so it stays an auditable copy of what arrived. The business vault holds derived structures built by applying soft business rules on top.

open as a page

Is a hybrid of Inmon's integration layer and Kimball star marts a real architecture?

level: seniorimportance: should knowfreq 44%

basics

~20 s

Yes, and it is the common shape today: raw landing, a reconciled integration layer built once, and dimensional star marts published on top for consumption. It buys inherited definitions plus a query surface users can navigate, at the cost of maintaining two models.

open as a page

Should a derived metric live as a mart column or as a semantic-layer definition?

level: seniorimportance: should knowfreq 44%

basics

~20 s

Materialise additive components in the mart and define the metric over them in the semantic layer. Store a computed metric in a column only when it must be frozen, is too expensive to compute at read time, or is consumed by tools that cannot reach the layer.

open as a page

How does medallion layering let you fix six months of silver tables corrupted by a bad transform?

level: seniorimportance: should knowfreq 55%

basics

~20 s

By recomputing rather than repairing. Because raw landings are retained unmodified, you fix the transform, delete and rebuild the affected window from raw, then rebuild every downstream table in dependency order. It works only if the transform is deterministic and depends on nothing mutable.

open as a page

What are the signs that a medallion lakehouse has degraded into a data swamp?

level: seniorimportance: should knowfreq 42%

basics

~20 s

Layers that add no guarantee: uncatalogued bronze nobody can interpret, silver tables with no declared grain or tests, chains of near-duplicate copies, business logic embedded in the landing layer, dashboards reading raw directly, and no owner for any of it.

open as a page

In a one-big-table mart, how do you serve both the as-of-event and the current value of a dimension attribute?

level: seniorimportance: should knowfreq 38%

basics

~20 s

Carry the frozen as-of value as its own named column, built by joining the fact to the dimension version effective at event time, and keep the durable business key on the row so consumers can join to a small current-attribute table for today's value.

open as a page

How do you decide whether a warehouse needs a Data Vault layer at all?

level: principalimportance: should knowfreq 34%

basics

~20 s

Adopt it when many sources must be integrated on business keys, schemas churn, and history must be provable — those are the problems it solves. Skip it with few stable sources: it adds a whole layer and marts are still required on top.

open as a page

How would you choose between a Kimball-first and an Inmon-first build for a new analytics platform?

level: principalimportance: should knowfreq 40%

basics

~20 s

Decide from how much the sources disagree, how many consumers exist, and how much delivery pressure you are under. Heavy reconciliation and many consumers favour integrating first; a single clear source and an urgent question favour publishing a mart first.

open as a page

How do you govern metric definitions so every team and BI tool reports the same number?

level: principalimportance: should knowfreq 36%

basics

~20 s

Give every metric a named business owner, keep its definition in version control with review, publish certification status in a catalog, and make the governed path faster than writing private SQL. Governance that is slower than the workaround gets routed around.

open as a page

How do you decide how many medallion layers a lakehouse needs and who owns each?

level: principalimportance: should knowfreq 30%

basics

~20 s

Put a layer where responsibility changes hands and a guarantee is added, not where a diagram says three. Count the real handoffs — ingestion, conformance, business definition — give each an accountable owner with a tested contract, and delete any layer whose promise nobody can name.

open as a page

Every dashboard team wants its own one-big-table; how do you stop the warehouse model fragmenting?

level: principalimportance: should knowfreq 30%

basics

~20 s

Treat wide tables as generated, disposable serving artifacts over one modelled core. Business definitions live upstream and are selected, never restated; each mart must be reproducible from the core, owned, lineage-tracked and retirable. Duplicated values are fine; duplicated definitions are not.

open as a page

What are dependent and independent data marts, and which does Inmon's architecture produce?

level: middleimportance: nice to knowfreq 30%

basics

~20 s

A dependent mart is built from a central integrated warehouse; an independent mart is built straight from source systems for one department. Inmon's top-down architecture produces dependent marts, which is how it guarantees marts cannot disagree.

open as a page

What is headless BI, and what does it change about where metrics are defined?

level: middleimportance: nice to knowfreq 28%

basics

~20 s

Headless BI runs the metrics layer as a standalone service with no visualisation of its own, exposed over SQL or an API. Dashboards, notebooks, spreadsheets and applications all request the same named metrics, so definitions stop living inside one vendor's tool.

open as a page

What distinguishes a silver-layer table from a bronze one beyond the naming convention?

level: middleimportance: nice to knowfreq 40%

basics

~20 s

The guarantee attached to it. A bronze table promises only fidelity to what the source sent; a silver table promises a declared grain, enforced types, resolved business keys and conformed values, backed by tests and an owner. Without that promise the name is decoration.

open as a page

What problem do point-in-time and bridge tables solve in a Data Vault?

level: seniorimportance: nice to knowfreq 26%

basics

~20 s

They make vault queries affordable. A point-in-time table pre-resolves which satellite version was in effect per key per snapshot date, and a bridge table pre-resolves multi-hop key paths, turning correlated lookups into plain equality joins.

open as a page

In a wide analytics table, when should sparse attributes live in a key-value map column instead of typed columns?

level: seniorimportance: nice to knowfreq 22%

basics

~20 s

Use a key-value column when attributes are sparse, per-tenant or high-churn and a typed column each would mean constant schema changes and mostly-null columns. Promote an attribute to a typed column once many consumers filter, group or document it.

open as a page