Enterprise Data Warehouse: Concept, Examples, and Cost
A regional outdoor apparel retailer runs sixty stores and an ecommerce site. In February the merchandising director asks a question that sounds trivial: how did the insulated jacket line perform last season in the stores that also ran the email promotion, net of returns, compared with the same stores the year before? Four people spend a week on it and produce three different numbers. That week is the moment an enterprise data warehouse stops being an architecture slide and becomes an operational necessity, because no single system in that company holds the answer and no combination of spreadsheet exports will produce the same answer twice.
That retailer runs through this whole article. Every abstraction below gets tested against their jacket question, because the concept of a data warehouse is easy to nod along to and genuinely hard to apply. By the end you should know what a data mart buys you that a warehouse does not, why an operational data store keeps appearing in the same diagram, and what the whole thing costs once you count the parts most estimates leave out.
The concept of a data warehouse, stated precisely
Bill Inmon's definition from the early 1990s has survived three generations of technology because it describes properties, not products. A data warehouse is subject oriented, integrated, time variant and non volatile. Those four words carry the whole idea, so it is worth spending them on the jackets.
Subject oriented. Source systems are organised around processes: the point of sale system is organised around transactions, the ecommerce platform around sessions and carts, the ERP around purchase orders. A warehouse is organised around subjects the business talks about: product, store, customer, sale, return. The merchandising director thinks in products and stores. The warehouse should too.
Integrated. The point of sale system calls it sku_id, the ecommerce catalogue calls it product_code, and the supplier feed uses the vendor's part number. One stores size and colour inside the SKU string; another splits them into columns. Integration means resolving that once, centrally, so a jacket is the same jacket everywhere. It is the least glamorous and most expensive property in the definition.
Time variant. The store dimension currently says store 14 is in the Northeast region. Last season it was Mid Atlantic, before a territory reshuffle. Answering "compared with the same stores the year before" requires knowing which region store 14 belonged to at the time, not what the current record says. Operational systems overwrite; warehouses append.
Non volatile. Once a row lands, it is not edited in place by an application. Loads add data. Corrections arrive as new versions with their own effective dates. That immutability is what makes a number reproducible six months later, which is the entire reason finance trusts the thing.
Ralph Kimball's dimensional modelling supplies the practical shape most teams build: fact tables holding measurements at a defined grain, dimension tables holding the attributes you filter and group by. Inmon and Kimball argued for decades about which comes first. Almost every modern build lands in the middle: raw landing zone, conformed core, dimensional models on top.
What is an enterprise data warehouse, and what makes it "enterprise"
Ask what is an enterprise data warehouse and you will get answers that describe any warehouse. The distinguishing word is scope. An EDW is the warehouse that serves the whole organisation rather than one function, and that scope forces three commitments a departmental warehouse can skip.
The first commitment is conformed dimensions. Marketing's analysis and finance's analysis must use the same product hierarchy and the same store list, with the same keys, or the two teams cannot compare results. Conforming a dimension is a negotiation, not a modelling exercise. Someone has to decide whether a discontinued SKU relaunched under a new code is the same product. That decision has revenue implications and it is not a technical call.
The second is a governed metric layer. "Net sales" for the jacket line means one thing to merchandising, which excludes shipping, and another to finance, which nets out promotional funding from the supplier. In an EDW that definition is written once, versioned, reviewed and served to every consumer. Without it you have a warehouse with a governance problem, indistinguishable from no warehouse in the only way that matters: whether people trust the number.
The third is stewardship. Enterprise scope means the warehouse outlives the person who built it: documented lineage, tested transformations, a named owner per subject area, a change process for schema evolution. Teams that skip this ship faster for two quarters and then spend a year on archaeology.
Everything else people attach to the term, MPP query engines, columnar storage, separation of storage and compute, is implementation. Those choices matter for performance and bill size, and how distributed engines split a scan across nodes is worth understanding before you size anything, which Parallel Data Warehouse: How MPP Query Engines Work covers properly. But an EDW built on a single large Postgres instance is still an EDW if it satisfies the three commitments, and a Snowflake account full of ungoverned team schemas is not one, no matter how much it costs.
Data mart vs data warehouse, plus the two neighbours that confuse everyone
The data mart vs data warehouse question is usually asked as if the two compete. They do not. A mart is a subset of warehouse content shaped for one audience, and the useful debate is only about whether marts are derived from a conformed core or built independently. Independent marts are how organisations end up with three revenue numbers.
The genuinely different stores are the operational data store and the data lake. Here is the whole landscape against the properties that actually determine where data should live.
| Store | What it holds | Time depth | Latency | Typical consumer | Failure mode |
|---|---|---|---|---|---|
| Source system | Current operational state | Now, with history overwritten | Real time | Applications and staff | Cannot answer "as it stood" questions |
| Operational data store | Integrated current state across systems | Hours to days | Minutes | Ops dashboards, service desks | Treated as an analytics store and quietly outgrown |
| Enterprise data warehouse | Conformed, modelled history | Years | Hours to a day | Finance, planning, analysts | Ungoverned metrics, stale ownership |
| Data mart | One subject or department, from the EDW | Inherited from EDW | Inherited | A single team | Built independently, diverges from the core |
| Data lake | Raw files in open formats | Indefinite | Batch | Data engineers, ML teams | Becomes a swamp without catalogue and schema |
| Lakehouse | Lake storage with table semantics | Indefinite | Batch to near real time | Both camps | Complexity of both worlds, ownership of neither |
For the retailer, the split is concrete. Store managers need to know what is in stock right now and which online orders are awaiting pickup: an operational data store question with a latency requirement measured in minutes. The jacket question needs two seasons of conformed history with region membership as of the sale date: an EDW question. Web clickstream at event grain, kept in case someone models browse to buy behaviour later, is lake material: high volume, low structure, uncertain value per row.
The operational data warehouse sits in an awkward middle. The term usually describes a warehouse loaded frequently enough to support day to day decisions: replenishment triggers, fraud review queues, service level monitoring. It is a legitimate pattern and also a reliable way to blow a budget, because every increase in freshness multiplies pipeline runs, orchestration complexity and failure surface. Before committing to fifteen minute loads, get someone to name the decision that changes because the data is fifteen minutes old rather than a day old. If nobody can, you have bought latency for its own sake.
A data warehouse example, modelled end to end
Abstractions land when you write the grain down. Here is the retailer's core, as a data warehouse example you could actually build.
Grain of the central fact. One row per sales line item per transaction. Not per transaction, because the jacket question needs product level detail. Not per product per day, because you would lose basket composition and the ability to ask what else people bought with the jacket. Grain is the first and most consequential decision in the model, and changing it later means rebuilding everything downstream.
Dimensions. Date, product, store, customer, promotion, employee. Product carries the hierarchy: SKU, style, category, department, plus colour, size and vendor. Store carries region, format and open date. Both are managed as slowly changing dimensions of type 2, meaning a territory reshuffle inserts a new store row with new valid from and valid to dates rather than editing the old one. That is what makes "the same stores as last year, under the region they had then" answerable.
Facts. Sales line items carry quantity, gross amount, discount, tax and unit cost as of the transaction. Unit cost is the trap: it lives in the ERP, it changes when vendor pricing changes, and margin is wrong forever if you join to the current cost instead of the cost at the time. Returns are recorded as their own fact rows with negative quantities, linked back to the original line so that net figures are a sum, not a subtraction two teams implement differently.
The promotion link. Email sends live in the marketing platform, not the point of sale. Attributing in store sales to a campaign requires a bridge table connecting campaign, store, date range and audience segment. That bridge encodes a business rule about attribution windows, and the rule belongs in the model with a comment explaining it, not in a spreadsheet on someone's laptop.
With that in place, the February question becomes a single query with a join to the promotion bridge and a filter on the store dimension's effective dates. It produces the same answer whoever runs it. Getting there took roughly four months, most of it spent not on SQL but on conversations about what "net" means and whether an exchange is a return plus a sale or a modification.
What an enterprise data warehouse actually costs
Cost estimates for an EDW fail in a predictable way: they price the platform, which is the visible and smallest line, and skip the labour, which is most of it. Here is the honest shape of the bill.
| Cost line | What drives it | What estimates usually miss |
|---|---|---|
| Platform compute and storage | Query volume, concurrency, transformation frequency | Idle warehouses left running, over provisioned dev environments, full refresh jobs nobody converted to incremental |
| Ingestion tooling | Number of connectors and rows synced | Pricing that scales with updated rows, so a chatty source system costs more than a large quiet one |
| Transformation tooling | Model count, run frequency | Cheap in licence terms, expensive in engineer time |
| BI licences | Named users, often per seat | Viewers who need one number a month still consume a seat |
| Orchestration and observability | Pipeline count | Usually bought after the first silent data quality incident, not before |
| Data engineering headcount | Source count and change rate | The dominant line by a wide margin |
| Analytics engineering headcount | Metric count and stakeholder count | Grows with adoption, not with data volume |
| Source system API costs | Extraction volume | Some SaaS vendors gate historical API access behind higher tiers |
Do the arithmetic with your own salary bands and the conclusion is uncomfortable in a useful way: one data engineer plus one analytics engineer costs multiples of a mid sized warehouse platform bill. Platform choice is still worth optimising, and consumption pricing genuinely punishes careless modelling, which is why the trade offs in Snowflake Data Warehouse: Architecture, Costs, and Limits are worth reading before you sign anything. But if you halve your platform spend and lose your analytics engineer, you have made the project more expensive, because the warehouse stops changing and starts decaying.
There is also an integration bill people forget entirely. Every source that is not a database needs an extraction path, and the difference between a supported connector and a bespoke one is weeks of engineering plus permanent maintenance. Cloud Integration Platforms (iPaaS) Compared for 2026 lays out that market, and since finance sources are usually the fussiest, QuickBooks Integrations: Picking the Ones Worth Wiring Up goes through that selection properly.
The line item nobody budgets: modelling never finishes
Build estimates end at go live. The work does not.
The retailer launches with six sources. Within a year they add a loyalty platform, replace the email tool, acquire eight stores on a different point of sale system, and change the product hierarchy because the buying team reorganised. Each of those is a modelling project, not a connector task. The loyalty platform introduces a customer identity that partially overlaps the ecommerce customer, which means an identity resolution rule and an argument about which system wins. The acquired stores use different SKU codes for the same items, which means a mapping table maintained by hand for months. The hierarchy change means every historical report either restates under the new hierarchy or does not, and that is a business decision with audit implications.
This is the steady state of an EDW: a permanent queue of change requests, each individually reasonable, cumulatively equal to another full time person. Teams that budget for it call it stewardship and staff it. Teams that do not watch their warehouse drift out of sync with the business until people quietly go back to exporting spreadsheets, which is how a two year project ends without anyone declaring failure.
Two habits reduce the drag more than any tooling choice. First, tests on every model: uniqueness on keys, not null on foreign keys, accepted values on status columns, row count and freshness thresholds. A pipeline that fails loudly is an inconvenience; a pipeline that succeeds while producing a wrong margin number is a much worse day. Second, a written owner per subject area with the authority to say no. Most warehouse sprawl is the accumulation of requests nobody was empowered to decline.
When an enterprise data warehouse is the wrong build
Three situations where the honest answer is not yet.
Your questions are about the present. If the queue is dominated by "which invoices are overdue", "what did that customer email us last week", "did Tuesday's campaign move signups", none of that needs stored history. It needs fast access to live systems, and a warehouse adds a latency penalty to questions that had none.
Your volumes fit on one machine. A few hundred million rows is comfortable on a well indexed Postgres instance or a local analytical engine, and analysts who know their way around dataframes go a long way without any warehouse. Python Data Analysis Tools: What to Use and When to Skip maps that territory, and if your storage question is really about embeddings, Is PostgreSQL a Vector Database? Pinecone, Weaviate, Chroma answers the question people often bring to warehouse vendors by mistake.
You have no owner. If nobody's job description includes the warehouse, do not start. An unowned warehouse becomes an expensive archive within two quarters, and the credibility damage makes the second attempt harder than the first.
Where Skopx fits, and where it does not
Direct version first, because vendors are vague here and it wastes everyone's time.
Skopx is not a data warehouse. It does not store your history, it does not model your dimensions, and it never becomes your system of record. It is not an ETL tool, it is not a BI or dashboard builder, and it is not a CRM. If your jacket question needs two seasons of conformed sales history with region membership as of the transaction date, you need the warehouse described above, and nothing on this site substitutes for it.
What Skopx does is deal with the queue that lands on the data team but is not actually warehouse work. It is an AI workspace that connects nearly 1,000 tools a company already uses, Gmail, Slack, Stripe, HubSpot, QuickBooks, Google Analytics and the rest, and answers questions in chat with citations back to the source records. It sends a morning brief, runs an insights engine that surfaces anomalies and risks across connected tools, and lets people build workflows by describing them in chat. It runs on your own AI key with zero markup, any major model. Pricing is Solo at $5 per month and Team at $16 per seat per month, listed on the pricing page.
That matters after an EDW exists because building the warehouse does not empty the request queue, it only changes its composition. A large share of what people ask the data team is present tense and cross system: what did this account do in the last two weeks across billing, email and support; which deals slipped since the forecast was locked; which invoices went out but were never paid. Those questions never needed a warehouse, they needed someone with credentials to five tools and an hour. When they arrive as tickets to the analytics team, they crowd out the modelling work only that team can do.
The honest boundary: Skopx answers from the live state of your connected tools, so it inherits their limits. If a source system overwrote the value you need, Skopx cannot recover it and neither can anything else short of a stored copy. It does not enforce your semantic layer, so a governed metric belongs in the warehouse and should be consumed from there. And it is not where a board level financial number should come from. Where AI genuinely helps in customer systems and where it overpromises is covered in Artificial Intelligence in CRM: What It Fixes and Misses.
The division of labour for the retailer: the EDW owns season over season margin, cohort behaviour and anything finance restates. The operational layer owns what needs a person to notice today.
Daily returns spike check, operational layer
Every weekday 7:00
Scheduled trigger, before the merchandising stand-up
Pull yesterday's refunds
Payment platform refunds and reasons for the last 24 hours
Pull support tickets
Tickets tagged with product complaints in the same window
Compare to trailing baseline
Flag products whose refund rate is well above their own recent norm
Only if a product trips
No alert on a quiet day
Post to merchandising channel
Product, refund count, ticket themes, links to source records
Nothing in that loop belongs in an EDW. It is same day, it touches three systems, and its output is a nudge rather than a report. Keeping that class of work out of the warehouse queue is worth more to a data team than most tooling upgrades. On where broader process automation should live, Workflow Management Software: What to Buy and What to Skip draws that boundary.
Frequently asked questions
What is an enterprise data warehouse in simple terms?
A separate database holding organised copies of data from across the whole company, kept over time and defined consistently, so questions about history and about relationships between systems get the same answer whoever asks. The word enterprise means it serves the organisation rather than one department: shared dimensions, agreed metric definitions, a named owner.
What is the difference between a data mart and a data warehouse?
A warehouse holds conformed, integrated data across subjects. A mart is a subset shaped for one audience, drawn from that warehouse. The distinction is not size but lineage: a mart derived from a conformed core stays consistent with everything else, while a mart built independently from source extracts eventually disagrees with the warehouse and with the other marts, which is how organisations end up with three revenue figures.
Is a data lake a replacement for an enterprise data warehouse?
No, though lakehouse architectures blur the storage boundary. A lake solves cheap retention of raw and semi structured data at scale. It does not by itself supply conformed dimensions, agreed metric definitions or the modelling discipline that makes a number reproducible. Teams that replaced a warehouse with a lake generally rebuilt the warehouse layer on top of lake storage, which is what the lakehouse pattern formalises.
How long does it take to build one?
For a mid sized company with six to ten sources, a first useful subject area typically takes a quarter and credible enterprise scope closer to a year. The variable is almost never the technology. It is how long it takes to settle definitions, resolve identity across systems and get source owners to agree on what their fields mean.
Can an operational data warehouse replace the EDW?
They serve different clocks. An operational data warehouse or operational data store integrates current state at low latency for day to day decisions, usually keeping a short window of history and optimising for freshness rather than reproducible analysis. Running both is normal. Forcing one store to satisfy both requirements usually produces something expensive, slow and late at once.
If AI tools can read our systems, do we still need a warehouse?
Yes, for anything depending on stored history, governed definitions or large cross system joins. An assistant reading live systems cannot recover a value a source already overwrote, and it should not be the authority on a metric finance restates. What such tools legitimately remove is the volume of present tense questions that never needed a warehouse, which is a real saving in analyst hours and a poor substitute for the model itself.
The short version: build the enterprise data warehouse for history, conformance and governance, staff it permanently rather than as a project, and accept that the modelling work continues long after launch. Then keep the day to day, cross system questions off its queue, because those questions are urgent, numerous, and almost never what a warehouse was built to answer.
Skopx Team
The Skopx engineering and product team