数仓建模—数据集市

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 这里我们先回忆一下数据仓库的定义, 数据仓库(Data Warehouse) 是一个面向主题的(Subject Oriented) 、集成的( Integrate ) 、相对稳定的(Non -Volatile ) 、反映历史变化( Time Variant) 的数据集合用于支持管理决策。更多关于数据仓库的可以参考数仓架构发展史,而且前面我们也介绍了大量关于数仓建模这一块的内容,具体可以参考我们的专栏数仓建模方法论。

数据集市(DM)


这里我们先回忆一下数据仓库的定义, 数据仓库(Data Warehouse) 是一个面向主题的(Subject Oriented) 、集成的( Integrate ) 、相对稳定的(Non -Volatile ) 、反映历史变化( Time Variant) 的数据集合用于支持管理决策。更多关于数据仓库的可以参考数仓架构发展史,而且前面我们也介绍了大量关于数仓建模这一块的内容,具体可以参考我们的专栏数仓建模方法论


今天我们介绍一个在数仓中非常常见的概念——数据集市,数仓定义中的五个特性都值得一一仔细品味,随着你对数仓的理解加深,你对这个五个特性的理解也会更加全面。

首先数据仓库用于支持决策,面向分析型数据处理,它不同于企业现有的操作型数据库;其次,数据仓库是对多个异构的数据源有效集成,集成后按照主题进行了重组,并包含历史数据并且存放在数据仓库中的数据一般不再修改。


什么是数据集市(DM)


这里有一个词是主题,那就是我们集成后的数据,又按照了主题进行了划分,而面向主题划分出来的部分就是数据集市,也就是说数据集市是数据仓库的一个子集或者说是集成后的子集。


数据集市通常是面向部门的或者是部门级业务,或者是面向部门的主题的,举个例子例如在金融领域可能会有结算部门的数据集市、风控部部门数据集市、市场部门的数据集市、运营部门的数据集市,这里的特点就是面向部门的,但是对于有的部门它的组织结构可能比较大,所以它所负责的业务线也有多个,这个时候就会出现,数据集市是面向部门的子业务,总之一句话,数据集市是面向主题的,一般公司的主题就是部门或者业务线。


这里还有一点要强调数据集市是作为我们数仓的一层,对外提供数据服务,当然提供服务的方式是有很多种的,但是最终我们是将数据集市层的数据提供出去的,也就是说这一层是面向用户的。


为什么要有数据集市


上面了解了什么是数据集市,接下来我们就看看一下为什么要有数据集市,开始之前我们线回顾一下前面的数仓建模分层理论,我们知道了数仓最简单的就是ODS+DM,但为什么我们还要分层,在文章中我们解释了分层的意义是什么,如果你忘记了可以看一下前面的文章。


这里我们知道了数据集市是数据仓库的子集,我们可以把分层看作是横向切分,那么数据集市就是竖向切分,

微信图片_20220425223250.png


所以我们可以得出一个结论那就是数据集市的划分也是为了更好的管理数仓和提高生产效率,但是这个还是有点抽象,下面我们再讨论一下为什么要做数据集市层。


灵活性


这里我们把数据集成也引入进来,从宏观上看一下从数据源到数据服务,整个数仓的存在形式是怎样的,当然这里我们是一个简化的图,我们主要反映出问题就行了。

微信图片_20220425223256.png


上面就是我们当前的数仓形态,这下我们解释一下我们为什么要做数据集市层,数据集市层虽然是一个层,但是这层里有多个集市,每个集市面向不同的业务线或者是业务部门,那我们为什么要这么做呢,说白了就是为解耦,解耦的目的是为了增加灵活性。


如果没有数据集市层,那么我们的数仓就要面向众多的业务部门,但是由于每个业务部门的数据需求或者所关心的数据是不一样的,这就会导致我们的数仓建设失去核心,就会出现我们为了满足某一个部门而违背了我们数仓的建设原则的现象出现,所以我们增加了数据集市层,也就是每个部门的个性化需求在这里体现。


其实如果你学习过设计模式或者是Java 的话,其实很容易立即,这有点类似抽象类Service 和 实现类 ServiceImpl.


数据集市有什么特点


如果你仔细学习了前面的内容的话,你肯定可以理解下面的几个特点这里我就不一一解释,而且这些特点也是我总结出来的,你也可有对其进行扩展。


规模小


数据仓库是面向企业的,数据集市是面向部门或者特定业务的


面向主题


数据集市是面向部门或者特定业务的


直接面向用户


数据集市是面向部门或者特定业务的



个性化高

数据集市是面向部门或者特定业务的,所以就会出现灵活多变的特点,而且也会出现流程上更简单快速,规范上要求不严格,使用上要尽量简单。其实这会反映到我们的表上


  1. 就是我们集市层的表一般都是关联好之后的表,使用的时候基本不需要关联,主要是为了使用方便性能高,其实可以看到我们集市层的表机会都是数仓建模—宽表的设计


  1. 还有就是我们集市层的表一般都是冗余了一些相关的字段,主要是为了应对也无妨多变的请求,举个例子业务方想看每个人今年的总消费,我可能会把最大值和平均值都会计算出来。


满足需求为第一优先级


尤其在一起初创企业,数仓建设跟不上的时候,为了尽快完成需求我们就会直接从ods层建设DM,从而可以对外提供数据。


如何建立数据集市


数据仓库(集市)的设计可以采用迭代式的方法,也就是说我们可以根据我们的适用方不断的去迭代我们的数据集市,而且也没有任何数据集市是可以一次性建成的。


理论上讲,应该有一个总的数据仓库的概念,然后才有数据集市,但是我们实际的做法是先确定了数据集市以及我们的服务对象之后,然后才开始开始建立数据仓库最后才是数据集市,也就是我们首先设计的是数据集市,但是我们建立的时候却是首先建立的是数据仓库。


总结


数据集市就是数据仓库面向某个主题的子集,它作为数仓面向用户的一层存在,提供数据服务。


据集市往往作为数据仓库之上的一个面向分析应用或者是数仓里面向用户的一层,也就是说没有这一层的话,我们的仓库就要面向用户了,我们可以将其视作代理,因为这一层要面向用户,所以它就有多变和不规范的特性,但是为了保证数仓整体建设的合理性和规范性,所以我们在数仓上加了这一层。


虽然集市层是面向用户的,但是由于面向的用户群体不同,所以又根据用户群体的特点,将集市层进行了纵向切分,切分成了一个个不同的集市。


数据仓库是面向企业的,数据集市是面向部门或者特定业务的,你可以将其看作一个小型的数据仓库,其实这里牵扯出了早期数据仓库的一种存在形体,那就是每个部门有自己的数据仓库,而不是统一建设的数据仓库。

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
6月前
|
存储 SQL 分布式计算
离线数仓(五)【数据仓库建模】(4)
离线数仓(五)【数据仓库建模】
|
6月前
|
SQL 存储 关系型数据库
离线数仓(五)【数据仓库建模】(1)
离线数仓(五)【数据仓库建模】
离线数仓(五)【数据仓库建模】(1)
|
7月前
|
存储 数据挖掘 大数据
大数据数仓建模基础理论【维度表、事实表、数仓分层及示例】
数据仓库建模是组织和设计数据以支持数据分析的过程,包括ER模型和维度建模。ER模型通过实体和关系描述数据结构,遵循三范式减少冗余。维度建模,特别是Kimball方法,用于数据仓库设计,便于分析和报告。事实表存储业务度量,如销售数据,分为累积、快照、事务和周期性快照类型。维度表提供描述性信息,如时间、产品、地点和客户详情。数仓通常分层为ODS(源数据)、DWD(明细数据)、DIM(公共维度)、DWS(数据汇总)和ADS(应用数据),以优化数据管理、质量、查询性能和适应性。
1781 3
|
6月前
|
SQL 存储 关系型数据库
技术心得记录:数仓建模方法之范式建模、ER实体建模、维度建模
技术心得记录:数仓建模方法之范式建模、ER实体建模、维度建模
120 0
离线数仓(五)【数据仓库建模】(3)
离线数仓(五)【数据仓库建模】
|
6月前
|
存储 SQL JSON
离线数仓(五)【数据仓库建模】(2)
离线数仓(五)【数据仓库建模】
|
存储 数据挖掘 关系型数据库
数仓学习---6、数据仓库概述、 数据仓库建模概述、维度建模理论之事实表、维度建模理论之维度表
数仓学习---6、数据仓库概述、 数据仓库建模概述、维度建模理论之事实表、维度建模理论之维度表
|
7月前
|
存储 数据可视化 前端开发
数仓常用分层与维度建模
本文介绍了数据仓库的分层结构和维度建模。数仓通常分为ODS、DIM、DWD、DWS和ADS五层,各层负责不同的数据处理阶段。维度建模是数据组织方法,包括星型和雪花模型。星型模型简单直观,查询性能高,适合简单查询;雪花模型则通过规范化减少冗余,提高数据一致性和结构复杂性,但可能影响查询效率。选择模型需根据业务需求和数据复杂性来定。
654 0
|
7月前
|
数据挖掘 数据库
离线数仓6.0--- 数据仓库 ER模型-范式理论,维度模型、维度建模理论之事实表、维度建模理论之维度表
离线数仓6.0--- 数据仓库 ER模型-范式理论,维度模型、维度建模理论之事实表、维度建模理论之维度表
295 0
|
存储 BI 数据库
数据仓库(4)基于维度建模的数仓KimBall架构
基于维度建模的KimBall架构,将数据仓库划分为4个不同的部分。分别是操作型源系统、ETL系统、数据展现和商业智能应用,如下图。
301 1

热门文章

最新文章