数仓设计平台V1.2.1

EasyDesign主要提供组织数据、刻画数据、规范约束、效果衡量等能力,用于实现数仓的规范化建模,同时指引数仓建设的方向。该产品提供了主题域、表分层、字典集以及表设计规则设置的管理功能;提供了数仓建设概览大屏数据;提供了主题域、维度、度量、基础字典查看和管理的功能;提供了工单设计表的功能。 此外,四大能力的具体介绍如下: 1、组织数据:按照主题域、多级主题(支持主题的富文本说明)和表分层来组织数仓表。 2、刻画数据:通过主键、维度、度量、指标、基础字典等描述数仓核表心信息。 3、规范约束:在平台上设计和创建表,提供表命名约束、表和字段核心标签设置。 4、效果衡量:数仓建设水平评估体系。

表1-1 术语解释

术语名称术语解释
主题域数仓建设的一个上层分类概念,把比较接近的业务过程或者属性接近内容划分为一个大的整体,称之为域。
子主题EasyDesign中主题域下的分类,是更细化的业务或者内容的集合划分。支持最多3层子主题。
表分层数仓表按不同的特性进行层次的划分,不同的分层包含不同类型的数据。
维度维度是度量的环境,用来反映业务的一类属性,常见的如统计日期、用户、省份、性别等。
度量来源于业务系统中不经过加工的用于反映和描述事实的数值型数据,可以不带业务含义单独存在。
指标统计型数值,有业务含义,通过度量加工得到,在EasyIndex中定义了原子指标、派生指标和复合指标。

数仓配置模块

该模块仅“项目组负责人”有查看和修改配置的权限。项目组负责人可从整体上设置当前工作空间下的基础配置,包括主题域、表分层、字典集、表设计规则。一般来说,这些设置需要在内部进行充分的讨论后再配置,一旦配置后,尽量不做改动。

1、主题域设置 项目组负责人可按照数仓团队承接的业务,进行业务形态的抽象,把相近的业务块抽象成主题域,比如交易域。主题域不宜过多,一般限制在10个以内,设置过多会对用户查找数据带来麻烦。每个主题域设置一个或多个域负责人,两个或以上的域审批人。域负责人有权限去管理自己负责的主题域,包括编辑介绍,新增子主题,添加关联表等。域审批人有权限审批归属到该主题域下的表的建表工单。

2、分层配置 项目负责人可以对数仓的表分层进行设置,表分层可采用系统预置的分层(建议使用系统预置的分层),也可进行新增自定义分层。 对于每个分层,可设置表抓取规则,设置后系统会定时把符合规则的表抓取并显示在“主题域”的“未分组(系统)”中。在未分组中,将显示所有被抓取,且未设置主题域的表。此外,“数仓建设概览”模块中的数据,也依赖于该抓取规则的设置。 项目负责人也可设置各层是否自动审批,对于“表设计工单管理”中选择了创建该层表的工单,会按照配置是否完成自动审批。

3、字典集配置 项目负责人可设置字段集,用于管理常用的命名缩写。字典集目前可作为某个分层中表名的命名规则的拼接项。具体在“表设计规则管理”中会使用到。

4、表设计规则管理 项目组负责人可对已启用分层的表进行规则设置、表属性默认项配置、强制分区表设置。在表名设计规则中,支持按照规则来约束某个分层的命名。规则中支持固定字符串、主题域缩写、二级主题缩写、字典集、正则表达式。表属性默认项配置完成后,在“表设计工单管理”中选择对应分层建表,可预知这些配置参数。强制分区表设置,则可以控制某个分层的表是否必须带有分区。

数仓建设概览模块

该模块主要用于展示数仓团队通过EasyDesign进行数仓建设后的一些数据,通常数仓团队的管理者会比较关注该模块。一般会用来评估当前数仓的建设水平,以及指导数仓开发进行数据建设。主要功能如下: (1)提供已启用分层的统计指标及趋势图查看,支持图表和表格模式切换,提供数仓表基础统计数据。 (2)提供数仓建设水平评估页面,从“dwd/dim层覆盖情况”,dwd、dim和dws各层复用情况两个方面来展现,也支持趋势图查看。通过该指标可用于评估数仓的建设水平,并指导数仓建设。

主题域模块

该模块用于数仓开发通过主题域、表分层来组织和管理数仓表。可编辑主题域和子主题的介绍。也可以将“未分组(系统)”中的表或已关联到其它主题域的表,关联到自己有权限的主题域中。 在数仓表中,可查看表的核心属性,也可变更表的主题域归属或维度名称。

主题域有一个系统预置的“未分组(系统)”,会展示被分层抓取规则命中,且没有配置主题域的表。系统会定时抓取,用户也可以手动触发。

表设计工单管理模块

主要包括“与我相关”和“全部”两个部分。“与我相关”会分为“未提交”、“被驳回”、“待我审批”、“待审批”和“已通过”5个tab。当前用户可在不同tab下处理和查看相应的工单。

该模块还支持创建工单建表,创建的工单会按照分层和主题域的不同,有不同的配置内容。对于dim层表,需通过选择维度来获取维度所属的主题域,作为表的所属主题域。对于非dim层,可通过直接选择一个或多个主题域下的子主题。此外,对于表可设置字段、主键、标准化标签等。其中字段标准化标签,dim层、map层仅可配置维度,dwd层仅可配置维度和度量,dws、ads和自定义分层仅可配置维度和指标。对于dws、ads和自定义分层,还可为表添加间接关联指标,如可通过表的指标计算得到的指标。除dwd层中多个字段可配置到相同的维度外,其它层中所有的维度、度量、指标均只可关联一次。

创建建表工单,有三种模式可选择,分别是表单模式、SQL模式和DML模式(v1.2.1版本分别叫“仅建表-表单模式”、“仅建表-SQL模式”、“构建DML与表”)。 表单模式是直接通过表单分别填写一个一个字段得到表结构和建表语句,SQL模式是直接使用create建表语句得到表结构和建表语句,DML模式是通过构建DML间接得到建表语句。

如下为配置模式选择DML模式:

表设计工单管理设置了一个“不合理命名表清单”模块,该模块会展示被各表分层抓取出来的、但是不符合表设计规则的表,项目成员可参考表名规则用于治理,或重命名或下线等。

维度模块

用于管理和查看维度。可查看维度被哪些表的字段所关联,从而查看关联的明细、汇总表,也能知道和别的维表的关联,找到星型模型的关联表。

度量模块

用于管理和查看度量。可查看度量的应用情况,被那些dwd表引用。

基础字典模块

用于管理和查看基础字段。

使用数仓设计平台(EasyDesign)指导建议

1)建议使用对象 EasyDesign是专门为数仓开发(数据工程师、ETL工程师等等)人员设计的产品,因此建议该种人员或类似职能的人员使用。

2)产品组织形式 EasyDesign以猛犸大数据平台的“项目组-集群”为活动单元,这里的项目组是用户在页面上看到的“项目”的更上一级的组合。比如项目可以是“mammut_project1”,“mammut_project2”,他们都属于“big_data_group”这样一个项目组。如果一个项目在多个集群上都有开通,那么就可以产生多个活动单元。 使用者需要获得猛犸大数据平台某一个“项目”中的“数仓开发”这一角色,获得后即可登录对应的“项目-集群”进行业务活动。比如用户A获得了“mammut_project1”项目的“数仓开发”角色,用户B获得了“mammut_project2”项目的“数仓开发”角色,则用户A登录“mammut_project1-集群x”,则用户B登录“mammut_project2-集群x”,他们会看到相同的东西,他们属于同一个活动单元。

3)使用场景说明

3-1)前期准备工作

EasyDesign细分为2种人员,一种是管理员,一种是普通数仓开发。管理员可以操作页面右上角的“数仓配置”,包括“主题域配置”、“分层配置”、“字段级配置”和“表设计规则管理”。也可以在“基础字段”配置字典集中的字段。一般来说,这些设置需要在内部进行充分的讨论后再配置,一旦配置后,尽量不做改动。目前只有项目组的负责人有该权限。

3-2)典型场景

场景1:数仓团队新接入了一块新的业务,并有运营需要看某些指标 做法:

a)项目组负责人评估后,在数仓配置中创建主题域

b)域负责人评估这块业务,规划子主题(一般也也叫业务过程),在主题域下新建子主题,并维护主题域或子主题的介绍

c)域负责人设计dwd明细表,并评估是否需要新增维度和度量,需要则在对应的页面新增

d)在“表设计工单管理”中创建子主题下的dwd明细表,提交审核,通过

e)基于运营提出的指标,设计dws或ads汇总表,并评估是否需要设计维度和指标,需要则在对应的页面新增(指标的维护在指标系统)

f)在“表设计工单管理”中创建子主题下的dws明细表,提交审核,通过

g)将dws或ads汇总表做成有数报表

辅助说明:上述场景中,涉及了主题域的管理,维度、度量、指标的管理,表设计工单的创建、审核等。通常主题域在一开始创建后,不太会轻易去动,但是子主题可能随着业务的发展,域负责人会做一些小的调整。维度和度量,一般可直接由数仓开发来设置,指标则在指标系统维护,一般有数据产品经理或分析师等来维护,也可由数仓开发维护。表设计工单中,数仓开发会选择域和分层。其中对于表的分层的功能,数仓团队的负责人需要和内部做好宣讲,明确怎么样的表可以放到什么分层。