一、数据建模背景和目的
1.1 数据建模任务背景
a. xxxx 中台新增数据建模模块,对标行业最佳实践,补齐数据中台短板。
b. 以往的数据建模,包括数仓模型的设计、数仓模型的落地,都是通过第三方的工具,例如DBwaver、Navicat等数据库管理工具操作模型落地的,但是实际上数据建模仍是有一整台数据建设的流程,需要单独提供了数据建模的模块;
1.2 行业调研
(1) 阿里dataworks
数据建模产品文档:数据建模
阿里的数据建模场景是收费的:https://nav-cn-hangzhou.data.aliyun.com/homepage#/
**一句话评价:**阿里的数据建模是目前最为详细的建模方案,也是最为细致的。
(2). 亿信华辰
没有专门的数据建模模块;
一句话评价:无
(3). 华为
华为数据治理中心DataArts Studio
参考连接:https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0609.html
有对应的"数据架构组件"-> "模型设计"有对应的"关系建模"和“维度建模”。
一句话评价:但是让然比较弱;
(4). 百度EDAP
https://cloud.baidu.com/doc/EDAP/s/Ekhd8cx5h
一句话评价::百度数据管理与分析平台EDAP弱化了“数据建模”, 本质上数据建模的内容,只有主题和元数据DDL的建设;
(5). 字节
大数据研发治理套件 DataLeap
https://www.volcengine.com/docs/6260/149801
一句话评价:弱化了数据建模,是铜鼓"数据指标",引入部分建模的思想;
二、XXX数据建模设计
2.1总体流程设计
如下是dataworks的智能数据建模模块
阿里dataworks的完整的数据建模的架构图
xx数据中台-数据建模流程架构图
数据建模主流程说明:
- 进入XXX数据中台的"数据建模"模块;
a. 进入数据建模页面 - 点击,数仓规划->业务分类
创建数据分类,(参考:创建业务分类)
业务分类创建完成后,您可在创建维度表、明细表、汇总表、应用表时关联对应的业务分类,也可在维度建模页面,通过业务数据视角查看表分类详情。 - 构建数仓分层
在页面的数仓规划 -》 数仓分层菜单下,执行如下操作:
a. 创建数据分层
完成1中的步骤之后,开始在“数仓规划"-》 "数仓分层”中添加自动的划分层,但是系统已经默认为你创建了5层(ODS层、DIM层、DWD层、DWS层、ADS层),可以满足绝大部分的场景和需求,如您存在部分需要个性化处理的场景,可以自定义创建分层;(参考: 创建数仓分层);
b. 查看并管理数仓分层
i. 查看数据分层预览
ii. 查看数据分层详情
iii. 修改数据分层详情
iv. 删除数据分层 - 构建数据域、业务过程、数据集市、主题域
a. 点击“公共层”->"数据域"菜单,操作数据域;
i. 新建数据域
ii. 查看、修改、删除数据域
b. 点击“公共层”-> “业务过程"菜单,新建业务过程;
i. 新建“业务过程”,新建页面可以选择所属的的“业务域”;
c. 点击“应用层” -> “数据集市"菜单,新建数据集市;
i. 新建数据集市;新建一级(或n级)数据集市,可以选择所属业务分类,参考第2步;
ii. 管理数据集市;可以查看、修改、维护数据集市下的所有"主题域”;
d. 点击“应用层” -> “主题域"菜单,新建主题域;
i. 新建主题域(切记:主题域用于将数据集市按照分析视角进行划分,通常是联系较为紧密的数据主题的集合); 选择该主题所属的"数据集市”,参考上一步的"数据集市”; - 构建配置数据标准
a. 在"数据建模" -> “数据标准"菜单下,分别构建字段标准、标准代码、度量单位、命名词典;
b. 以上建立完之后,其中 ,“字段标准”,“标准代码” 可以分别在"维度建模” -> "发布与管理表"中关联使用,(参考:发布与管理表 );“度量单位” 可以在第6步中的“数据指标”的“配置计算逻辑”中国使用;"命名词典"可以在"数仓分层"的“配置及使用数仓分层检查器”中进行配置检查,用来检查表、指标等命名是否规范; - 维度建模
a. 在前面已经创建了公共层和应用层分别执行了数仓分层,并且已经创了数据域、数据集市的前提下,执行创建维度;(维度是您观察业务状况的视角);
b. 创建维度表
i. 例如,命名为dim_开头的表,商品货物维度表dim_shop_goods; 此处可以选择该维度表关联的维度(可选);
ii. 完成维度表创建之后,仍需为表配置字段管理、关联关系、分区设置等内容;
c. 创建明细表
i. 例如,命名为dwd_开头的表,销售表dwd_sales_details; 创建工程中,可以选择数仓分层,业务分类、业务过程等,用来限定该明细表的归属;
ii. 完成创建明细表后,仍需为表配置字段管理、关联关系、分区设置等内容;
d. 创建汇总表
i. 例如,命名为dws_开头的表,店铺一天的销售额表dws_day_single_good_sales; 创建工程中,可以选择数仓分层,业务分类、业务过程等,用来限定该表的归属;
ii. 完成创建表后,仍需为表配置字段管理、关联关系、分区设置等内容;
e. 创建应用表
i. 例如,命名为ads_开头的表,销售表ads_year_beijing_good_sales; 创建工程中,可以选择数仓分层,业务分类、业务过程等,用来限定该表的归属;
ii. 完成创建表后,仍需为表配置字段管理、关联关系、分区设置等内容;
f. 发布与管理表
i. 模型创建成功后,您需为维度表、明细表、汇总表、应用表配置字段管理、关联关系、分区管理等配置,完成后将表进行发布;
ii. 字段管理:添加表字段。一共有三种方式,分别是:- 从已有的表/视图中创建
- 从指标导入
- 代码模式
iii. 字段管理:设置表字段属性。可以在管理字段属性时候,设置字段的关联字段标准、关联标准代码(注意:该部分是前面的数据标准里面定义的内容)。
iv. 发布表;即将逻辑设计的数据模型映射到对应的物力引擎上;相当于将ddl建表语句真正执行,例如生成真实的doris和hive表;
v. 查看发布状态:发布成功、发布失败、发布中;
- 数据指标
a. 创建原子指标
i. 创建原子指标,同时配置计算逻辑;
ii. 配置计算逻辑时,需选择特定的明细表或者维度表,并指定表的特定字段名称,指定单位,从而实现特定的实际计算;
b. 创建修饰词
c. 创建时间周期
d. 创建派生指标
i. 创建单个派生指标。过程:① 选择构成派生指标的原子指标、修饰词、时间周期;②生成派生指标
ii. 批量创建派生指标。遇上类似:https://help.aliyun.com/document_detail/276966.html
e. 派生指标应用:可以在"维度建模"的“汇总表”和“应用表”中引用该指标,从而后续的业务查询,OLAP分析,数据分发等提供基础。
2.2 数据建模详细流程设计
数据建模主流程主要设计四个子模块:数仓规划、数据标准、维度建模、数据指标。这四个模块构成了数据建模的核心。
主要在于设计,提供专门区域,从数据分层、业务分类、数据域、业务过程、数据集市、主题域进行设计;其实主要通过如下这个:思维导图+阿里dataworks的建模产品文档= 一个XX中台的产品文档;
其实主要的设计可以参考阿里的dataworks的数据建模模块,链接:数据建模;
其实有一个疑问,数据建模与数据资产的关系?
数据建模之一:数仓规划
- 数仓规划:负责对数据分层、业务分类、数据域、业务过程、数据集市、主题域进行设计;
数仓分层:
业务分类:
公共层下的“数据域”
“公共层下”的“业务过程”
"应用层"下的“数据集市”
“应用层”下的“主题域”
数据建模之二:数据标准
略;
数仓建模之三:维度建模
创建维度:https://help.aliyun.com/document_detail/451744.html
维度建模视角:
创建维度:
创建维度表
创建的维度表可以选择所属的哪一个维度。
创建明细表
创建汇总表
创建应用表
发布与管理表
可以做成ddl的形式
也可以做成画板的方式:https://help.aliyun.com/document_detail/300004.html
数仓建模之四:数据指标
已有,参考阿里https://help.aliyun.com/document_detail/276031.html
三、建模效果评价与总结
- 能够在xx数据中台的建模模块,完成数据模型的设计(维度建模)->数仓分层->映射创建表物理引擎(HIVE/DORIS);从而不需要借助于外部的第三方工具(navicat、资产标记、维度关系画图软件),即可以完成全部的工作;
- 借助该部分工作,可以将业务过程、数据域、主题域、数据集市、数仓分层等同步到数据资产中,方便做搜索;
问题补充:
- 补充数据模型的整体流程图;
- 数据标准怎样融合在数据模型里面;
- 数据指标怎么融合进来;