数据仓库(07)数仓规范设计

简介: 所谓的规范的定义,简单理解,如果把数据当作货物,那就是货物的分类,以及对应相关的属性,比如生产日期,某个原料的含量等,我们可以把相近或者相同货物,按照一定的规律,放在一起,方便入库与出库,需要某个货物按照这些规律就可以,以比较快的速度拉取出来。 一般的规范设计包含一下几个方面:划分和定义数据域、业务过程、维度、度量 原子指标、修饰类型、修饰词、时间周期、派生指标。

规范设计在这里取《大数据之路:阿里巴巴大数据实践》中的定义,这里记录一下本人对这一块自己的理解。

规范定义指以维度建模作为理论基础 构建总线矩阵,划分和定义数据域、业务过程、维度、度量 原子指标、修饰类型、修饰词、时间
周期、派生指标。

所谓的规范的定义,简单理解,如果把数据当作货物,那就是货物的分类,以及对应相关的属性,比如生产日期,某个原料的含量等,我们可以把相近或者相同货物,按照一定的规律,放在一起,方便入库与出库,需要某个货物按照这些规律就可以,以比较快的速度拉取出来。

一般的规范设计包含一下几个方面:划分和定义数据域、业务过程、维度、度量 原子指标、修饰类型、修饰词、时间周期、派生指标。

数据域:指面向业务分析,将业务过程或者维度进行抽象的集合。其中,业务过程可以概括为一个个不可拆分的行为事件,如买家下单事件,买家是维度。数据域需要抽象提炼,并且长期维护和更新,不可轻易变动。划分数据域时,既要能涵盖当前所有的业务需求,又能在新业务进入时无影响地被包含进已有的数据域和扩展新的数据域。
业务过程:指企业的业务活动,如下单、支付等,业务过程是一个不可拆分的行为事件。
时间周期:用来明确数据统计的时间范围或者时间点,如最近30天、自然周、截至当日等。
修饰类型:是对修饰词的一种抽象划分。修饰类型从属于某个业务域,如日志域的访问终端类型涵盖无线端、PC端等修饰词。
度量/原子指标:原子指标和度量含义相同,基于某一个业务事件行为下的度量,是业务定义中不可再拆分的指标,具有明确业务含义的名词,如支付金额。
维度:维度是度量的环境,用来反映业务的一类属性,这类属性的集合构成一个维度,也可以称为实体对象。维度属于一个数据域,如地理维度、时间维度。
维度属性:维度属性隶属于一个维度,如地理维度里面的国家名称、国家ID、省份名称等属于维度属性。
派生指标:派生指标=一个原子指标+多个修饰词(可选)+时间周期。可以理解为对原子指标统计范围的圈定。如原子指标:支付金额,最近1天海外买家支付金额则为派生指标(最近1天为时间周期,海外为修饰词,买家作为维度,而不作为修饰词)。

这里说说对上面的理解,上面的定义,实际上就是对数据的分类,以及对指标统一口径,统一命名的过程。首先,我们需要划分数据域,这个是业务过程的集合,所以这个是对数据的一个大的分类,这个很重要,因为会影响到后续我们的数据怎么开发和存储,以及我们后续需要数据时,怎么查询,从哪里查询。

数据仓库-7-001数据仓库规范定义.png

数据域是一个业务过程+维度的集合,也就是我们在建立规范定义的时候,需要先定义目前以及未来将有的业务过程,这个需要和业务一起定义讨论,因为这一块要贴近业务,一般的开发人员不够业务人员对业务理解深入。确定好业务过程之后,再看看目前的业务过程有哪些维度,抽取出来,做好维度总线矩阵,维护好一致性维度。一个业务过程属于一个数据域,但是一个维度可以属于多个数据域。

定义好业务过程和维度之后,就要对业务过程和维度分类了,看看每一个数据域都有哪些内容,做好划分。

分类好了之后,就是确定,每一个业务过程,有哪些原子指标,以及对应的修饰词,时间周期。

做好之后,再根据需求生成我们想要的派生指标等,或者抽取一些数据宽表,用于数据分析,这样我们就可以想要知道某个数据,就可以通过数据域->业务过程->相应的物理表->对应的指标,修饰词,时间周期等,通过这个分类,定位到我们的数据,这样也可以方便我们后续对数据地图,数据资产的管理,这个就有点像是图书馆对图书的分类,想定义大类,再细分,图书是根据类目划分,我们这里要根据业务行为过程,具体的业务划分。

数据仓库-7-002图书馆分类.png

上面的图是网络上某一个图书馆的图书分类,我们可以注意到,每一个图书分类前面都有一个字母,这个是每一个类目的代码,用于图书的编码记录,这里我们也是一样,需要对每一个数据域,也就是数据的分类,分配一个编码。这样用于表命名,最简单的就是作为前后缀,这样我们就可以简单的通过表名知道这个表是数据哪个数据域的,同样的道理我们需要对上面提到的业务过程,维度,修饰词等取一个统一的编码,用于对后续数据开发过程中,表命名,字段命名等,这样我们通过表名称,字段名称,就可以大概知道这张表是什么数据。

这里举一个简单电商的例子,比如交易数据域(transaction),业务过程属于下单(order),支付金额(pay_amount),时间周期为最近1天(1d),按照上面的逻辑就是表和字段的逻辑表示为transaction_order.pay_amount_1d,这里为一个伪代码,帮助了解,具体以共同的约定为准。

需要数据仓库资料可以点击这个领取数据仓库(13)大数据数仓经典最值得阅读书籍推荐

参考资料:

  1. 数据仓库(01)什么是数据仓库,数仓有什么特点
  2. 数据仓库(02)数仓、大数据与传统数据库的区别
  3. 数据仓库(03)数仓建模之星型模型与维度建模
  4. 数据仓库(04)基于维度建模的数仓KimBall架构
  5. 数据仓库(05)数仓Kimball与Inmon架构的对比
  6. 数据仓库(06)数仓分层设计
  7. 数据仓库(07)数仓规范设计
  8. 数据仓库(08)数仓事实表和维度表技术
  9. 数据仓库(09)数仓缓慢变化维度数据的处理
  10. 数据仓库(10)数仓拉链表开发实例
  11. 数据仓库(11)什么是大数据治理,数据治理的范围是哪些
  12. 数据仓库(12)数据治理之数仓数据管理实践心得
  13. 数据仓库(13)大数据数仓经典最值得阅读书籍推荐
相关实践学习
数据库实验室挑战任务-初级任务
本场景介绍如何开通属于你的免费云数据库,在RDS-MySQL中完成对学生成绩的详情查询,执行指定类型SQL。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
23天前
|
存储 数据挖掘 BI
离线数据仓库规范
离线数据仓库规范
|
1月前
|
SQL 关系型数据库 MySQL
在云数据仓库AnalyticDB MySQL版中,有几个参数可能影响SELECT查询的执行及其稳定性
在云数据仓库AnalyticDB MySQL版中,有几个参数可能影响SELECT查询的执行及其稳定性【1月更文挑战第16天】【1月更文挑战第80篇】
22 4
|
1月前
|
SQL 分布式计算 Java
数仓学习---7、数据仓库设计、数据仓库环境准备、模拟数据生成
数仓学习---7、数据仓库设计、数据仓库环境准备
41 2
|
1月前
|
数据挖掘 数据库
离线数仓6.0--- 数据仓库 ER模型-范式理论,维度模型、维度建模理论之事实表、维度建模理论之维度表
离线数仓6.0--- 数据仓库 ER模型-范式理论,维度模型、维度建模理论之事实表、维度建模理论之维度表
58 0
|
1月前
|
存储 分布式计算 关系型数据库
|
1月前
|
分布式计算 DataWorks 关系型数据库
在云数据仓库AnalyticDB MySQL版中,LIMIT的大小是由系统参数max_limit控制的
【1月更文挑战第7天】【1月更文挑战第31篇】在云数据仓库AnalyticDB MySQL版中,LIMIT的大小是由系统参数max_limit控制的
18 1
|
2月前
|
存储 大数据 BI
数据仓库、数据湖、湖仓一体,究竟有什么区别?
近几年大数据概念太多了,数据库和数据仓库还没搞清楚,就又出了数据湖,现在又说什么“湖仓一体”。乙方公司拼命造概念,甲方公司不管三七二十一,吭哧吭哧花钱搞数据建设。到头来发现,钱也花了,人力也投入了,但最基本的业务需求都解决不了。
|
2月前
|
数据采集 监控 OLAP
云数据仓库ADB如何使用数仓版一键诊断功能-前提条件?
云数据仓库ADB如何使用数仓版一键诊断功能-前提条件?
29 0
|
2月前
|
存储 大数据 数据管理
数据仓库(08)数仓事实表和维度表技术
所谓的事实表和维度表技术,指的就是如何和构造一张事实表和维度表,是的事实表和维度表,可以涵盖现在目前的需要和方便后续下游数据应用的开发
34 1
|
1月前
|
存储 关系型数据库 MySQL
在阿里云的AnalyticDB MySQL版中使用CREATE TABLE语句来创建内表
在阿里云的AnalyticDB MySQL版中使用CREATE TABLE语句来创建内表【1月更文挑战第16天】【1月更文挑战第78篇】
182 3