A well-designed data warehouse turns data from separate operational systems into consistent, analysis-ready information. The work covers more than storage: it connects business requirements to architecture, data models, ETL or ELT pipelines, security controls, service levels, and operating practices.
This guide explains how to design a data warehouse step by step, from prioritizing analytical use cases and declaring fact-table grain to choosing an architecture, building reliable pipelines, and controlling performance and cost. It also compares star, snowflake, and galaxy schemas and explains where cloud warehouse and lakehouse designs overlap.
The central principle is simple: start with the decisions people need to make, not with the schemas of the source systems. If your organization needs help assessing, designing, or modernizing its analytical platform, explore our data warehouse consulting services.
A well-designed data warehouse turns data from separate operational systems into consistent, analysis-ready information. It gives analysts a stable model, gives business teams shared definitions, and gives engineering teams a controlled way to change pipelines without breaking every report downstream.
That outcome depends on more than choosing a cloud platform. Data warehouse design covers the architecture, data model, ingestion and transformation pipelines, security controls, service levels, and operating practices that keep the system useful after launch.
This guide explains how those decisions fit together and where common designs fail.
What is data warehouse design?
Data warehouse design is the process of deciding how analytical data will be collected, stored, modeled, governed, and served. It connects business questions to a technical architecture.
A complete design defines:
- which decisions and reports the warehouse must support;
- which source systems provide the required data;
- how quickly data must become available;
- what each row in a fact table represents;
- how business entities and metrics are defined;
- how data quality, lineage, access, and retention are controlled;
- how the platform will meet performance and cost targets.
The warehouse itself is a centralized analytical data store. Unlike a transactional database, it is optimized for examining large sets of historical data across subjects such as customers, orders, products, finance, and operations. Google Cloud’s data warehouse overview describes the same core purpose: combining data from multiple sources for reporting and analysis.
Data warehouse, operational database, data lake, or lakehouse?
These systems overlap, but they solve different primary problems.
| System | Primary job | Typical data | Typical users |
|---|---|---|---|
| Operational database | Run an application or business process | Current, detailed transactions | Applications and operational teams |
| Data warehouse | Provide governed historical analysis | Integrated, modeled, structured data | Analysts, BI users, finance, operations |
| Data lake | Retain data economically in many formats | Raw and curated structured, semi-structured, and unstructured data | Data engineers, data scientists, ML teams |
| Lakehouse | Combine object storage with warehouse-like management and query capabilities | Raw through business-ready data | Engineering, analytics, BI, and ML teams |
The boundary is no longer absolute. A cloud warehouse may query external object storage, while a lakehouse may serve dimensional models to BI tools. The design question is not which label sounds most modern. It is where data contracts, quality controls, business logic, and access policies will be enforced.
Design a warehouse your teams can trust
We design, build, and modernize data warehouses around the decisions, service levels, and controls your business needs.
Talk to our team about architecture, migration, modeling, and performance.
Talk to our team about architecture, migration, modeling, and performance.
Start with the business questions, not the source schemas
The first design artifact should describe decisions, not tables. A source-first project often reproduces an ERP or CRM inside a new platform and postpones the hard questions about metric definitions until dashboard development.
Begin with a small set of use cases. For each one, record:
- the decision or workflow it supports;
- the measures and dimensions users need;
- the owner of each business definition;
- required history and retention;
- expected data freshness;
- acceptable query response time;
- security and privacy classification;
- reconciliation criteria against the source.
For example, “daily sales reporting” is too vague. A useful requirement states whether revenue means booked, invoiced, shipped, or paid revenue; which currencies apply; how returns are treated; and when the report is considered complete.
This work also exposes conflicting definitions early. If Finance and Sales calculate annual recurring revenue differently, a faster pipeline will only deliver the disagreement sooner.
A practical data warehouse architecture
A modern data warehouse architecture usually separates ingestion, storage, transformation, business modeling, and consumption. Security, metadata, quality, lineage, and monitoring cut across every layer.
| Layer | Responsibility | Design questions |
|---|---|---|
| Source systems | Produce operational data | Who owns each source? What can change without notice? |
| Ingestion | Move batch, change data capture, or streaming events | What latency is required? Can a load be replayed safely? |
| Landing and staging | Preserve received data and isolate processing | Is raw data immutable? How are schemas and late records handled? |
| Transformation and integration | Clean, standardize, reconcile, and join data | Where does business logic live? How is it tested and versioned? |
| Warehouse storage | Hold integrated historical data | What model, partitioning, retention, and recovery strategy apply? |
| Semantic and serving layer | Publish trusted metrics and business-ready datasets | Where are shared definitions enforced? Which tools consume them? |
| Consumption | Support BI, ad hoc SQL, applications, and AI workloads | Which workloads need isolation or different service levels? |
Microsoft’s modern data warehouse guidance groups the flow into ingest, transform, model, and serve stages, with orchestration and governance spanning the system. That is a useful logical model even when the chosen products use different names.
What should a data warehouse architecture diagram show?
A useful data warehouse architecture diagram shows data movement and control boundaries, not just product logos. It should identify sources, ingestion modes, storage zones, transformation, the warehouse model, the semantic layer, consumers, orchestration, and cross-cutting controls.
A simplified flow looks like this:
Source systems
|
Batch, CDC, and streaming ingestion
|
Landing and staging
|
Transformation and data quality
|
Integrated warehouse models
|
Semantic layer and data products
|
BI, analytics, applications, and AI
Across all layers: orchestration, lineage, catalog, security, monitoring, and cost controls
For publication, this flow should become an original branded graphic with the alt text: “Data warehouse architecture diagram showing sources, ingestion, staging, transformation, warehouse models, semantic layer, and analytics consumers.”
Common data warehouse architecture patterns
There is no single best architecture. The right pattern depends on organizational ownership, data volume, latency, regulation, existing platforms, and the number of consuming teams.
Three-tier architecture
The classic three-tier model separates the system into:
- a bottom tier for data sources, integration, and warehouse storage;
- a middle tier for analytical or semantic processing;
- a top tier for BI tools, reports, and user access.
The separation is logical. A managed cloud platform may implement several tiers within one service, while a larger enterprise may use a different product for each.
Dimensional warehouse with data marts
A dimensional design organizes data around business processes such as orders, shipments, claims, or subscriptions. Conformed dimensions allow separate fact tables and data marts to use the same definitions for customers, products, dates, and locations.
This pattern works well for BI because its models match the questions users ask. Its main risk is fragmentation when teams create marts independently and redefine shared dimensions or metrics.
Enterprise integration hub
An enterprise warehouse can integrate data centrally before publishing dependent marts. This improves consistency where many functions must share master data and historical rules. It also increases coordination cost, so delivery should usually proceed by bounded business domains rather than a multi-year attempt to model the entire company before releasing value.
Data Vault and hybrid models
Data Vault separates business keys, relationships, and descriptive history. It can suit environments with many changing sources, audit requirements, or a need to preserve detailed lineage. It is rarely the most convenient model for direct BI consumption, so teams commonly add dimensional serving models on top.
Cloud warehouse and lakehouse hybrids
Cloud designs may keep raw or infrequently accessed data in object storage and publish curated data through a warehouse or lakehouse engine. Some platforms separate storage and compute so workloads can scale independently. For example, Google’s BigQuery architecture explains its separation of storage and compute.
This flexibility does not remove the need for modeling. It changes where data is stored and processed, not the need for agreed grain, dimensions, measures, ownership, and controls.
Data and Integration Services You Might Find Useful
Boomi Integration Services
Connect applications and data flows with Boomi integration services designed for reliable enterprise operations.
IT System Migration
Move data and software between platforms with a structured migration process and controlled cutover.
Database Development and Consulting
Design and improve database solutions that support dependable applications, reporting, and analytics.
How to design a data warehouse in 10 steps
1. Prioritize analytical use cases
Choose a small first release with clear users, decisions, and measurable value. Identify the reports or products that will be replaced and the acceptance criteria for each.
2. Inventory sources and owners
Document source tables, APIs, files, event streams, update patterns, data owners, known quality issues, and change-notification processes. Sample the actual data instead of relying only on schema documentation.
3. Set service-level objectives
Define freshness, availability, recovery, query response, and load-completion targets. A dashboard needed at 8:00 a.m. requires a different pipeline from operational fraud detection.
4. Choose the architecture and platform
Evaluate integration needs, skill availability, workload isolation, regional requirements, concurrency, recovery, pricing behavior, and compatibility with the existing stack. Avoid selecting a tool solely because it leads an analyst category.
5. Declare the grain of each fact table
The grain states exactly what one row represents. Kimball Group recommends declaring it before choosing facts and dimensions in its guidance on grain in dimensional modeling.
Examples include one row per order line, one row per account per day, or one row per sensor reading. Mixing grains creates incorrect totals and joins that are difficult to detect.
6. Design dimensions, facts, and metric definitions
Identify measurable events, descriptive business entities, hierarchies, slowly changing attributes, and conformed dimensions. Define calculation rules and ownership for business metrics before encoding them in dashboards.
7. Design ingestion and transformation
Select batch, change data capture, streaming, or a combination based on actual latency requirements. Decide how pipelines will handle duplicates, deletes, late-arriving data, schema changes, retries, and historical backfills.
8. Add security and governance by design
Classify data, establish access roles, identify masking or tokenization needs, set retention rules, and capture lineage. Controls added after broad access has been granted are harder to implement and audit.
9. Test correctness, performance, and recovery
Test transformations, referential relationships, metric reconciliation, permissions, concurrent workloads, failed loads, replay, and recovery. A successful happy-path load is not production readiness.
10. Release by domain and operate the warehouse
Ship a useful slice, measure adoption and reliability, then extend the model. Assign ownership for incidents, source changes, costs, data-quality failures, and documentation. A warehouse is a running product, not a one-time migration.
Data warehouse modeling: facts, dimensions, and schemas
Data modeling converts business events and entities into structures that remain understandable as sources change. Kimball Group’s overview of fact and dimension tables provides the basic distinction: facts capture measurements, while dimensions provide the descriptive context used to filter and group them.
Fact tables
A fact table records events or periodic measurements at a declared grain. Common fact types include:
- transaction facts, such as one order line;
- periodic snapshots, such as one account balance per day;
- accumulating snapshots, such as one row tracking milestones in an order lifecycle;
- factless facts, which record that an event or relationship occurred without a numeric measure.
Measures should be classified by how they aggregate. Revenue may be additive across products and days, while a balance should not be summed across time.
Dimension tables
Dimensions describe the people, products, places, accounts, channels, and dates associated with facts. They should use stable warehouse keys where source identifiers can change or collide.
When an attribute changes, the model must define whether to overwrite it, preserve a new historical version, or keep limited prior-state fields. This is the purpose of slowly changing dimension strategies.
Star, snowflake, and galaxy schemas
| Schema | Structure | Strength | Tradeoff |
|---|---|---|---|
| Star schema | A fact table connected to denormalized dimensions | Simple navigation and efficient BI queries | Some repeated dimension attributes |
| Snowflake schema | Dimensions normalized into related tables | Less repetition and clearer sub-hierarchies in some domains | More joins and a less intuitive user model |
| Galaxy schema | Multiple fact tables sharing conformed dimensions | Supports several related business processes | Requires disciplined grain and dimension governance |
Choose the simplest model that preserves correctness. Normalization is not automatically more rigorous, and denormalization is not a substitute for clear ownership or consistent definitions.
ETL vs ELT in a data warehouse
ETL transforms data before loading it into the target warehouse. ELT loads source data first and performs transformations using the target platform’s compute. Many modern architectures use both.
ETL can be appropriate when data must be filtered or protected before it reaches the analytical store, or when a specialized engine performs the transformation. ELT is useful when the target platform can process data efficiently and teams need a replayable raw layer. The choice should reflect security boundaries, data volume, latency, cost, and operational skills rather than fashion.
ETL and ELT best practices
- Make loads idempotent. Re-running a job for the same interval should not create duplicate facts or corrupt history.
- Preserve replayable inputs. Keep enough source data or change history to rebuild affected models after a logic error.
- Process incrementally when it is safe. CDC and watermark-based loads reduce work, but deletes, late events, and source resets need explicit handling.
- Validate at boundaries. Check schema, volume, uniqueness, nulls, accepted values, referential relationships, and financial reconciliation where relevant.
- Quarantine bad records. Do not silently discard them or block every unaffected record without a recovery path.
- Version code and schemas. Pipeline logic, model definitions, tests, and deployment configuration should be reviewable and reproducible.
- Design backfills before they are needed. Historical reprocessing should use controlled parameters and avoid overwhelming production workloads.
- Capture lineage. Teams should be able to trace a dashboard value through transformations to its source.
- Monitor outcomes, not only job status. A green pipeline can still load zero rows, stale data, or incorrect totals.
Performance and cost best practices
Warehouse performance comes from matching physical design and workload management to real query patterns. The mechanism differs by platform, so universal advice such as “add indexes” is not enough.
Start with measured workloads and query plans. Then consider:
- scanning only required columns and partitions;
- choosing partition, clustering, distribution, or sort strategies supported by the platform;
- using appropriate data types and compression;
- reducing repeated expensive transformations;
- creating aggregate tables or materialized views for stable high-demand queries;
- isolating ingestion, BI, data science, and ad hoc workloads where contention is material;
- setting resource limits, budgets, alerts, and ownership for costly queries;
- archiving data that no longer needs high-performance access;
- testing concurrency, not just single-query speed.
AWS publishes Redshift-specific design and performance practices, while Google documents BigQuery cost optimization, including controls that reflect BigQuery’s own architecture. Use vendor guidance for the selected engine rather than copying physical-design rules from a different system.
Security, privacy, and governance
Security must follow data through every copy and transformation. Protecting the final dashboard while leaving staging tables broadly accessible creates an obvious gap.
A practical control set includes:
- least-privilege roles and regular access reviews;
- encryption in transit and at rest, with appropriate key management;
- masking, tokenization, or restricted views for sensitive attributes;
- row-level and column-level controls where use cases require them;
- separate service identities for pipelines and applications;
- audit logs for access and administrative changes;
- a data catalog with ownership, classification, definitions, and lineage;
- retention and deletion procedures that account for replicas, backups, and downstream extracts;
- tested incident response and recovery procedures.
Compliance obligations depend on the data, jurisdictions, contracts, and industry. GDPR, HIPAA, PCI DSS, and other frameworks should not be reduced to a feature checklist. Security, privacy, and legal specialists should validate the architecture and operating procedures that apply to the organization.
Data warehouse best practices that hold across platforms
The most durable practices are organizational as much as technical.
- Give every critical dataset an owner. Someone must approve definitions and resolve quality issues.
- Keep business logic out of isolated dashboards. Shared calculations belong in governed transformations or a semantic layer.
- Treat source changes as expected events. Establish contracts, schema monitoring, and communication paths.
- Prefer small, testable releases. A working sales model is more useful than an enterprise model that remains unfinished.
- Separate raw history from business-ready models. This makes investigation and reprocessing safer.
- Document grain and metric semantics next to the model. Column names alone do not explain meaning.
- Build for failure and replay. Retries, backfills, duplicate events, and partial source availability are normal conditions.
- Measure data reliability. Track freshness, completeness, accuracy, incidents, and recovery time.
- Review cost with performance. A query that becomes twice as fast at ten times the cost may not be an improvement.
- Retire obsolete assets. Duplicate tables and dashboards undermine trust and increase operating cost.
Common data warehouse design mistakes
Copying source systems without a business model
Replicated source tables can help with ingestion, but they do not create shared definitions or an analyst-friendly warehouse.
Mixing grains in one fact table
Combining order-level and line-level measures produces double counting and fragile queries. Declare and test the grain.
Pursuing real-time data without a real-time decision
Streaming adds operational complexity. If a process changes once a day, a reliable hourly or nightly load may provide more value.
Hiding transformations inside BI reports
When every report implements its own joins and calculations, metrics drift and testing becomes difficult. Reusable logic belongs upstream.
Applying tuning advice from the wrong platform
Indexes, distribution keys, clustering, caching, and materialization behave differently across engines. Optimize against the selected platform and observed workload.
Launching without ownership
Pipelines, definitions, access requests, and incidents need named owners. Otherwise the warehouse deteriorates even when its initial design was sound.
When should you redesign or modernize a data warehouse?
A redesign is worth considering when teams cannot reconcile core metrics, pipelines miss required freshness, query costs grow without corresponding use, source changes repeatedly break reports, security controls are inconsistent, or the platform prevents new analytical workloads.
Modernization does not always mean replacing everything. It may involve separating storage and compute, redesigning a few high-value models, introducing a semantic layer, improving orchestration and observability, or moving selected workloads to a new platform.
Multishoring’s data warehouse consulting services cover architecture, migration, modeling, pipeline development, performance, and BI integration. For a broader review of the data ecosystem, see modern data architecture services and data quality consulting.
Frequently asked questions
What are the three layers of data warehouse architecture?
In the classic three-tier model, the bottom tier handles sources, integration, and storage; the middle tier provides analytical or semantic processing; and the top tier serves reports, BI tools, and users. Modern cloud products may combine several logical tiers within one managed service.
What is the best schema for a data warehouse?
A star schema is often the simplest choice for BI because it connects fact tables directly to descriptive dimensions. Snowflake and galaxy schemas can be appropriate when dimensions have reusable substructures or several business processes share conformed dimensions. Correct grain and definitions matter more than the label.
What is the difference between ETL and ELT?
ETL transforms data before it is loaded into the target warehouse. ELT loads data first and transforms it using the target platform. Many production systems combine both based on security, latency, scale, and replay requirements.
How long does it take to design a data warehouse?
There is no reliable duration without scope. A focused warehouse slice for one domain can be designed and released incrementally, while an enterprise program with many sources, historical migrations, and regulated data takes longer. Estimate architecture, source analysis, modeling, pipeline work, validation, security, migration, and user acceptance separately.
Is a data warehouse still needed if a company has a data lake?
Often, yes. A data lake can retain raw and diverse data, but business users still need governed models, consistent metrics, security controls, and predictable query performance. Those capabilities may be delivered by a separate warehouse, a lakehouse, or a warehouse engine over object storage.
Final takeaway
Good data warehouse design starts with business decisions and ends with a system that can be operated safely. Architecture, modeling, pipelines, performance, governance, and ownership are parts of one design problem. If any one of them is postponed, the cost usually appears later as conflicting metrics, failed loads, slow reports, uncontrolled access, or an expensive rebuild.

