“表设计工单管理”

该页面主要承载数仓团队新建和修改Hive表的功能,目前会通过工单形式完成。通过该模块,可实现线上化的规范建模。 页面包括“与我相关”和“全部”两个部分,用于展示创建表工单和修改表工单。“与我相关”会分为“未提交”、“待审批”、“被驳回”、“待我审批”和“已通过”5个页签,当前用户可在不同tab下查看和处理工单。

“表设计工单管理” - 图1 2021-06-30-20-01-23.png

1、创建建表工单

“创建建表工单”功能,主要用于通过工单完成表的设计。在设计过程中,完成如下四个部分的设置:

第一部分:表的分层、主题归属、归属库的设置; 第二部分:表名按照管理员设置的拼接规则来设置; 第三部分:表的字段名称、类型、描述、主键、字段标准化标签(维度、度量、指标)的设置; 第四部分:表的基础属性设置,比如是否核心表、是否Impala同步、表类型(内部表和外部表)、存储格式等。

1)表的分层、主题归属、归属库的设置

对于数仓开发人员而言,首先需要明确当前建表操作需要构建哪一分层的表,该表应当归属到哪个主题,应当在哪个库下建表。

目前,在设置表的主题归属模式上,不同分层的设置方式不同。“dim-维表”层,需通过选择“关联维度”来获取维度所属的主题域,并作为表的主题归属。对于非dim层,可通过直接选择一个或多个主题域下的子主题(不能直接归属到主题域)。

如下图为“创建建表工单”的第一步中,选择“dim-维表”层的样式:

“表设计工单管理” - 图3 2021-06-30-20-03-09.png

如下图为“创建建表工单”的第一步中,选择非“dim-维表”层的样式:

“表设计工单管理” - 图5 2021-06-30-20-03-14.png

在权限控制上,支持表分层、库、主题归属的选择控制。

对于表分层,支持仅某些角色可以选择某些表分层,比如“dwd-明细层”仅能“数仓开发”角色可选,“dws-汇总层”仅能“业务线数据开发”角色可选等。这些可有数仓管理员在“分层配置”页面的“选择控制”中配置。

对于库,支持设置某些分层仅能在某些库下建表,比如“dim-维表”仅能在“dim”库下建表,“dwd-明细层”和“dws-汇总层”仅能在“dw”库下建表。

对于主题归属,支持设置仅某些角色的人员能选择。对于主题域和子主题,都可设置对应的可选择的角色。具体可在“主题域配置”页面和“主题域”的具体子主题的编辑页面中,通过设置“主题选择控制”来实现。

在前面的“分层配置”小节中,有介绍“项目权限建表”功能。对于开启了“项目权限建表” 的分层,则数仓开发人员在选择“库”时,可选择数仓管理员设置的库(即时该用户没有建表权限)。最终,该工单会经有审批者完成审批。

2)表名配置

完成第一部分的设置后,会进行第二部分的表名配置。 对于每个分层,都允许数仓管理员在“表设计规则管理”页面配置表名拼接规则。配置后,当数仓开发进行“dwd-明细层”的表开发时,表的命名必须按照该层的表名拼接规则来进行,从而实现表命名规范的落地。

“表设计工单管理” - 图7 2021-06-30-20-04-57.png

3)表字段信息配置

在完成前面两项信息的配置之后,会支持表单模式、SQL模式和DML模式来生成表字段信息。

首先来说明最常规的表单模式。该模式下,用户需要设置字段名称、选择字段类型、设置描述、设置表主键、标准化标签等。其中字段的标准化标签,不同的分层可配置的标签不同,对于“dim-维表”、“map-桥阶层”仅可配置维度,“dwd-明细层”仅可配置维度和度量,“dws-汇总层”、“ads-应用层”和自定义分层仅可配置维度和指标。对于“dws-汇总层”、“ads-应用层”和自定义分层,还可为表添加间接关联指标,比如添加可通过表的已关联的指标计算得到的指标。除“dwd-明细层”中多个字段可配置到相同的维度外,其它层中所有的维度、度量、指标均只可关联一次。

如下图所示为表字段信息配置页面:

“表设计工单管理” - 图9 2021-06-30-20-05-47.png

针对可关联到“维度”和“指标”的字段,可通过先选择“维度”和“指标”的方式,来将对应的维度英文标识或指标标识填充到“字段名称”中,从而实现更快捷的字段名称的命名,也能将一些命名规范落地到表的设计中。如果字段名称已经设置,也可以通过“字段名称辅助设置”来替换已有的命名。

如下图所示为字段名称辅助设置的弹框:

“表设计工单管理” - 图11 2021-06-30-20-05-52.png

接着,来说一下SQL模式。在SQL模式下,目前支持Hive和Impala两种引擎,并提供了建表模板。完成DDL之后,通过“生成表结构”,会进入到上文提到的字段信息配置页面,页面配置项基本和表单模式下的一致。

“表设计工单管理” - 图13 2021-06-30-20-06-28.png

最后,说一下DML模式。对于DML模式,和前面两种的差异是,可以通过通过创建DML的方式来生成最终的输出表字段以及DML语句。审核通过后,就可以直接复制DML语句,在离线开发中创建任务使用。

对于DML模式,和前面两种的差异是,可以通过通过创建DML的方式来生成最终的输出表字段以及DML语句。审核通过后,就可以直接复制DML语句,在离线开发中创建任务使用。

如下图所示为通过“标准反复关联模式”来实现DML语句的构造:

“表设计工单管理” - 图15 2021-06-30-20-06-56.png

如下图所示为查看DML语句,该语句做少量修改后即可直接在离线开发中心使用。

“表设计工单管理” - 图17 2021-06-30-20-07-04.png

4)表的基础属性设置

最后,需要对表的基础属性做配置,该配置信息的默认设置数据来源于“表设计规则管理”中对每个分层的建表默认项设置。

“表设计工单管理” - 图19 2021-06-30-20-07-40.png

最终,通过完成上述4项内容的配置后,可将工单提交。如果工单的所属分层配置了“自动审批”,则系统会自动通过工单并开始建表。如果未设置“自动审批”,则所创建表的所属主题审批人会接收到创建表工单申请,审批者审批通过后,系统会自动进行建表。

完成建表后,表将会在“主题域”页面中对应的分层和主题下出现,同时,在“数据地图”产品的“数仓表导引”也面中,也会同步显示该表。

2、创建修改表工单

该功能用于对已有表进行更新,目前仅支持非分区字段的更行。对于已归属主题的表,新增的字段需要设置对应的标准化标签,并走工单审批流程。对于未归属主题的表,则系统会自动审批。 修改表时,用户仅能操作有修改权限的表,否则工单会审批失败。

“表设计工单管理” - 图21 2021-06-30-20-08-21.png

3、不合理命名表清单

表设计工单管理设置了一个“不合理命名表清单”模块,该模块会展示被各表分层抓取出来的、但是不符合表设计规则的表,该模块用于表名命名不规范的表治理,进行重命名、下线或忽略操作。

“表设计工单管理” - 图23 2021-06-30-20-08-35.png