维度是维度建模的基础和灵魂。在维度建模中,将度量称为”事实“,将环境描述为”维度“。维度表包含了事实表中指定属性的相关详细信息,常用的维度如日期维度、城市维度等。本文为您介绍如何创建维度表。
前提条件
公共层主要完成公共数据的加工与整合,建立整体统一的维度表。应用层基于实际应用需求,获取公共层加工整合后的数据,面向具体业务建立业务层面的维度表,进行持续的个性化数据建设及改造。您可根据需求选择创建公共层或应用层维度表,不同数仓分层创建维度表的准备工作如下表。
数仓分层 | 准备事项 | 参考链接 |
公共层 | 已在公共层创建数仓分层。用于确定维度表所属的层级。 | |
已创建数据域,用于确定维度表所统计的业务数据视角。 | ||
应用层 | 已在应用层创建数仓分层。用于确定维度表所属的层级。 | |
已创建数据集市,用于确定维度表所统计的特定应用场景或产品的数据类别。 |
背景信息
结合业务的数据域的规划,提取出各业务数据域中进行数据分析时可能存在的维度,并将维度及其属性通过维度表的方式存储下来。例如,在进行电商业务数据分析时,可用的维度及其属性有:订单维度(属性包括订单ID、订单创建时间、买家ID、卖家ID等)、用户维度(性别、出生日期等)、商品维度(包括商品ID、商品名称、商品上架时间)等,此时您就可以将这些维度和属性创建为订单维度表、用户维度表、商品维度表等,将维度属性记录作为维度表的字段。后续您可将这些维度表部署到数仓中,通过ETL将实际维度数据按照维度表定义的方式进行存储,方便业务人员在后续的数据分析时进行取用。
如上图所示:
创建维度表时:
可以关联本维度表是用于分析哪个业务分类、哪个数据域,便于后续直接查看具体某一数据域或数据集市下,有哪些维度表。
可以指定维度表后续在数据建模分析使用时,维度表的数据存储于数仓中的哪个数据分层,一般情况下维度表可存储于公共维度层(DIM层)。
维度表创建后,您可以将维度的属性添加为维度表的字段,并对维度表进行关联和分区的设置,使用统一的数据标准来进行字段设置,保障全数据域中的维度数据的属性是一致的。
维度表配置完成后:
可物化至存储引擎,后续在计算引擎中使用维度表进行数据分析。
在进行数据派生指标和汇总表的设计创建时,可直接关联使用维度表中的维度。
创建维度表
进入智能数据建模页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据建模。
在智能数据建模页面的顶部菜单栏,单击维度建模,进入维度建模页面。
创建维度表。
在维度建模页面,鼠标悬停至图标,单击 。
配置维度表的基本信息。
您可根据需求,选择维度表所挂载的层级、数据域、业务分类、数据集市等信息,选择后,后续可进入相应对象的列表查看所创建的维度表。本文以创建公共层维度表示例。主要参数说明如下。
参数项
描述
数据域
维度表所属的数据域。
业务分类
维度表所属的业务分类。
存储策略
维度表基于什么策略(即存储数据的时间周期及数据量范围)存储数据。
维度
维度表关联的维度,用于配置维度表分析数据的视角。
说明创建维度,详情请参见创建概念模型:维度。
表名规则
通过已配置的检查器规范维度表的命名规则。选择检查器后,该维度表的表名需按照检查器定义的规则配置。
说明配置检查器,详情请参见配置及使用数仓分层检查器。
表名
维度表的名称。若您配置了表名规则,则维度表的表名需遵循规则要求。
表中文名
维度表的显示名称。
生命周期
维度表保留的时间周期。最大可保留36000天。
负责人
当前维度表的责任人。默认为创建维度表的用户。
描述
维度表的描述信息。
配置完成后,单击保存,维度表创建成功。
在维度建模左侧目录树相应的数据域或业务分类下,可查找并统一管理维度表。
添加表字段
模型创建成功后,您需要为模型添加表字段。
您也可以通过FML语句创建字段、关联关系及分区,操作方法请参见代码模式建模。
您可以通过快捷模式或代码模式为表添加字段,其中快捷模式支持从表/视图导入,即从计算引擎已存在的物理表或视图导入字段,即在查找已有表/视图下拉列表搜索并选择已存在的物理表或视图进行字段导入。
当前仅支持从MaxCompute、Hologres、EMR Hive引擎的表或视图导入。
快捷模式:从表/视图导入
单击快捷模式下,从表/视图导入后的展开。
在查找已有表/视图的输入框中输入相应名称,即可选择对应的表或视图,并在已引用的表后选择导入表或视图的全部字段或部分字段。
说明输入名称时支持模糊匹配,即输入关键字便可搜索到所有名称中包含关键字的表或视图。
仅支持搜索生产环境的表,不支持搜索开发环境的表。
图标表示导入全部字段。
图标表示导入部分字段。
当选择导入部分字段时,在弹出的窗口中,会为您展示所选表的字段,您可选择需要添加至模型的字段,完成后单击界面下方的导入。
说明如果已导入字段中存在字段显示名为空的字段,您可根据界面提示将字段描述填充为字段显示名。
代码模式
代码模式为您提供代码输入的操作方式,单击代码模式后,弹窗中会根据已配置的模型信息自动生成建模语言,您可以在此基础上修改模型信息,完成后单击下方的确定。
设置表字段信息
完成上述操作后,模型所需字段即已被添加至该模型中,此时您可以根据业务需求设置模型各字段的关联字段、冗余字段、关联粒度/指标。
设置字段属性。
字段属性默认展示字段名称、类型、字段显示名、描述、主键、非空、度量单位、操作等基础属性。您可以在展示已添加字段的右上方单击字段显示设置,选择需要展示出来的字段属性,并根据需要进行修改。
设置字段的关联字段标准、关联标准代码。
用于为已添加的字段选择关联的字段标准和标准代码,规范字段的取值内容及范围。
关联字段标准:统一规范管理含义相同但字段名称不同的数据,定义字段的取值范围、度量单位等内容。
关联标准代码:设置某一字段标准可选择数据的内容以及范围。
设置字段的冗余字段。
传统维度建模星型模型中,维度存储在维度表中,通过事实表的外键获取维度,目的是为了减少存储消耗。而在DataWorks智能建模的维度模型设计中,为了提高下游的查询效率,降低获取数据的复杂性,减少关联表的数量,通常可将一些高频使用的字段作为冗余字段(例如,用户ID、常用的分析维度)。
示例一:“订单创建明细表”可冗余“收货地址维度表”中的“收货地址”维度,包含“收货人地址、收货人手机号”等维度属性。
示例二:“商品维度表”可冗余“商品信息表”中的“采购信息、品牌信息”等属性。
在已添加字段的操作列,单击冗余字段,即可设置字段的关联字段。
完成设置后单击左上角的保存。
后续步骤
维度表创建完成后,您仍需为表配置字段管理、关联关系、分区设置等内容,并将该表发布至对应环境,详情请参见发布模型至引擎。