DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Last call! Secure your stack and shape the future! Help dev teams across the globe navigate their software supply chain security challenges.

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Releasing software shouldn't be stressful or risky. Learn how to leverage progressive delivery techniques to ensure safer deployments.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Related

  • Architecture and Code Design, Pt. 2: Polyglot Persistence Insights To Use Today and in the Upcoming Years
  • Five Steps To Building a Tier 1 Service That Is Resilient to Outages
  • Reporting in Microservices: How To Optimize Performance
  • How To Implement and Design Twitter Search Backend Systems using Java Microservices?

Trending

  • Docker Base Images Demystified: A Practical Guide
  • Unlocking the Potential of Apache Iceberg: A Comprehensive Analysis
  • Beyond Code Coverage: A Risk-Driven Revolution in Software Testing With Machine Learning
  • Agile and Quality Engineering: A Holistic Perspective
  1. DZone
  2. Data Engineering
  3. Data
  4. How to Design Data Marts

How to Design Data Marts

This article will give some best practice tips for designing useful data marts for your business teams.

By 
Zehra Can user avatar
Zehra Can
·
Oct. 15, 20 · Opinion
Likes (4)
Comment
Save
Tweet
Share
8.2K Views

Join the DZone community and get the full member experience.

Join For Free

Data marts are the business user interface of your data warehouse. I have tried to explain how to design an enterprise data warehouse in my first article. This article will give some best practice tips for designing useful data marts for your business teams. The question was in my previous article:

"What kind of data marts do you need? "

Your business teams' needs can differ from each other. They may need their own data format where, for example, the finance department has requirements other than the sales or marketing department. 

Security requirements must also take into consideration. Different departments should not reach or see others' data. You may not want to prefer other departments to see all the financial data on your systems. 

On the other hand, there will exist shared data between departments, to keep the single point of truth, the data mart design should also have some common structures on your system.

Data marts are focused on mostly fast reading of the data. The data should sometimes be kept in summary formats. So your data marts may contain some aggregated structures or calculated metrics based on your business team need. 

Keeping history is very important for your trend analysis and your past situation of your company. However, keeping all the transaction data may cost you a lot. So you can create some end-of-month or maybe end-of-week structures in your data marts.  

So we can consolidate the questions above as the following lines:

  • What do business teams need? Do they have different requirements and need different formats of data?
  • Is security of data a concern for your company? 
  • Does the data mart have common structures like dimensions or facts?
  • Do business teams need aggregated data?
  • Do business teams need new calculated metrics? 
  • What kind of historical data is needed?
  • Should there be a life cycle of a data mart?

Common Structures

Not every data may not be specific to a business department. For example, your customer data is unique on the company base. So the customer data can be kept in a single format and deliver to each department from the same data source.  

Common structures also give you the ability of the easy management of system. In terms of the ETL process, you do not have to manage, schedule separately your data marts. Common structures give also the central management of the ETL processes.

To design the common structures you can group them in two categories:

  1. Dimensions: You can keep all of them in one schema or user. Knowing that all of them are your dimension tables. 
  2. Facts: Facts include your big master tables, end of month structures, transaction tables. 

Security

You can prevent all user to query your common structures and create database roles for each of the business teams defining each team their own policy with their database role. 

The business terms of the data marts can have views for security reasons. You can filter your data both in columns and rows in your views. But for the performance issues, you should always take into consideration not to define complex queries in your views otherwise the reading performance of your reports may decrease.

Aggregated and Calculated Data

Data marts are designed for the high performance of reading data. According to your business reporting requirements, you should sometimes need to create aggregated structures. For example, if you billions of usage data you can keep a simple version of the sum of the usage data. Sometimes calculating new metrics based on the existing data is needed. Like the cost of the product, or the revenue of a customer or rule-based segmentation of your customers. Many data sources need to be consolidated in this kind of calculation. At this point, calculated data can be generated for your data marts in daily, weekly, or monthly basis as required.

Keeping Historical Data

It is sometimes necessary to keep data in some date basely structures like End of Month, End of Week or partitioned transaction data. The depth of the data can be 12-month, 24-month or more as according your trend and data analysis requirements. This depth should be decided on the data characteristics.

Data Mart Types for Business Needs

Everyone in a company does not relate to all the data that the company has. Salespeople usually deal with the order status; which orders completed, which are currently in progress. Potential customers are also in the focus of the sales department. So you can design a data mart that has order data, customer data, etc. On the other side, the finance department may deal with payments, invoice amounts, and other money stuff.

Life Cycle of a Data Mart

Should there be a life cycle for a data mart? The answer is sometimes "yes" and sometimes "no". If you design a data mart for a small team, sometime in the future, your company organization could be changed and the team might not exist in your company any further. In such cases, you may not want that data mart anymore. However, you can still have the data in your underlying enterprise data warehouse.

Data (computing) Design Data mart Database teams

Opinions expressed by DZone contributors are their own.

Related

  • Architecture and Code Design, Pt. 2: Polyglot Persistence Insights To Use Today and in the Upcoming Years
  • Five Steps To Building a Tier 1 Service That Is Resilient to Outages
  • Reporting in Microservices: How To Optimize Performance
  • How To Implement and Design Twitter Search Backend Systems using Java Microservices?

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!