数仓分层是结合对业务场景、实际数据、使用系统的综合分析,对数据模型进行的整体架构设计及层级划分。用于将不同用途的数据,归类划分至不同的分层,便于您更好地组织、管理、维护数据。
分层归属
DataWorks为您提供了贴源层、公共层、应用层等分层归属,您可以将不同功能作用的分层挂载至相应归属,通过层级化结构呈现输出。下图以默认的五层数据分层为例,数据分层规划完成后,后续的表数据存储可根据规划分别存储至不同的数据分层中。
贴源层:用于数据库、日志、消息等基础源数据的引入。源数据经过一系列ETL操作进入贴源层,该层级只能挂载贴源表。
公共层:用于加工、整合贴源层输入的公共数据,建立统一的指标维度,构建可复用面向分析和统计的明细事实数据和汇总数据,该层级可挂载明细表、维度表、汇总表。数据域/业务过程属于该层的范畴。
应用层:基于实际应用需求,获取公共层加工整合后的数据,面向具体应用场景或指定产品进行的个性化数据统计,该层级可以挂载应用表和维度表。数据集市/主题域属于该层的范畴。
定义数仓分层
内置分层
DataWorks默认为您创建数据引入层ODS(Operational Data Store)、公共维度层DIM(Dimension)、明细数据层DWD(Data Warehouse Detail)、汇总数据层DWS(Data Warehouse Summary)及应用数据层ADS(Application Data Service)等五层。
各个分层的功能介绍如下:
数据引入层 ODS(Operational Data Store)
ODS层用于接收并处理需要存储至数据仓库系统的原始数据,其数据表的结构与原始数据所在的数据系统中的表结构一致,是数据仓库的数据准备区。ODS层对原始数据的操作具体如下:
将原始的结构化数据增量或全量同步至数据仓库中。
将原始的非结构化数据(例如,日志信息)进行结构化处理,并存储至数据仓库。
ODS层的数据表,命名必须以
ods
开头。
明细数据层 DWD(Data Warehouse Detail)
DWD层通过企业的业务活动事件构建数据模型。基于具体业务事件的特点,构建最细粒度的明细数据表。您可以结合企业的数据使用特点,将明细数据表的某些重要维度属性字段适当冗余,即宽表化处理。同时,也可以减少明细数据表及维度表的关联,提高明细表的易用性。
汇总数据层 DWS(Data Warehouse Summary)
DWS层通过分析的主题对象构建数据模型。基于上层的应用和产品的指标需求,构建公共粒度的汇总指标事实表。
例如,从ODS层中对用户的行为做一个初步的归类汇总,抽象出来一些通用的维度,假设维度为时间、IP、ID,并根据这些维度统计出相关数据,比如用户在不同登录IP下每个时间段购买的商品数。则在DWS层可以进一步添加一层轻度的汇总,可以让计算更加的高效。例如在此基础上计算仅7天、30天、90天的行为会节省很多时间。
应用数据层 ADS(Application Data Service)
ADS层用于存放数据产品个性化的统计指标数据,输出各种报表。例如,某电商企业,在6月9日至6月19日,杭州地域出售的各大球类商品的数量及排行情况。
公共维度层 DIM(Dimension)
DIM层使用维度构建数据模型。可基于实际业务,存放逻辑模型的维度表;或存放概念模型的维度定义,通过定义维度,确定维度主键,添加维度属性,关联不同维度等操作,构建整个企业的一致性数据分析维表,帮助您降低数据计算口径和算法不统一的风险。
自定义分层
进入数仓分层界面可以查看预置的数仓层级,并选择平铺展示或层级结构展示来调整页面结构。
若以上数仓分层不满足需求,可以通过新建分层进行自定义:
单击新建分层,在新建数仓分层表单配置分层的基本信息,关键参数如下:
参数
描述
分层归属
该参数与模型类型配合使用。用于将创建的分层划分至不同层级,并关联对应的模型类型。
说明分层归属一旦设置(包括新建时配置及编辑修改配置)则无法变更,请您合理规划层级归属。
模型类型
该参数与分层归属配合使用。用于将对应的模型类型挂载至不同的分层归属。
贴源层:只能挂载贴源表
公共层:可以挂载明细表、汇总表、维度表、维度,其中维度表和维度可以选择单独挂载或者同时挂载。
应用层:可以挂载应用表、维度表、维度,其中维度表和维度可以选择单独挂载或者同时挂载。
说明模型类型一旦设置则无法变更,请您合理规划模型类型。
备注
数仓分层的备注信息。输入分层功能描述,快速理解作用并确保数据存放到正确分层。
删除分层。若分层中已存在数据表,需先删除所有表,方可删除该分层。
配置数仓分层检查器
数仓分层检查器通过制定模型与指标的命名规范,在创建时自动生成表名,使发布后的物理表名称直观体现业务信息,便于使用者快速理解。
单击已创建的分层,进入数仓分层详情页。
在检查器管理区域单击新增规则,选择规则类型:新增模型规则或新增指标规则。
检查器参数配置说明如下表。
新增模型规则
配置项
描述
规则名称
新建检查器的规则名称。
规则类型
模型规则:默认为表名(表英文名),在维度建模创建模型时,可通过选择对应的检查器自动生成表名。
规则定义
定义数据模型的命名规范。后续在维度建模中使用该规范检测分层中模型名称。
模型规则:
输入表的前缀信息,通过表前缀进行检测。例如,数仓分层要求表名称以
dim
开头,则可输入dim
。也可单击
图标,使用业务大类英文缩写、数据域英文缩写、数据集市英文缩写、主题域英文缩写等多种类别的来定义规则。可自由组合。
以下为系统推荐的命名规则:
公共维度层:dim_{业务分类}_{数据域}_{自定义内容}_{存储策略}
明细数据层:dwd_{业务分类}_{数据域}_{业务过程}_{自定义内容}_{存储策略}
汇总数据层:dws_{业务分类}_{数据域}_{自定义内容}_{时间周期}
应用数据层:ads_{业务分类}_{数据集市}_{主题域}_{自定义内容}_{时间周期}
描述
检查器的描述说明。
新增指标规则
配置项
描述
规则名称
新建检查器的规则名称。
规则类型
指标规则:可配置为中文名称或英文缩写,在创建指标时,根据指定的默认规则自动生成派生指标名称。
规则定义
定义指标的命名规范。后续可在数据指标中使用该规范检测分层中指标的名称。
指标规则:选择修饰词、原子指标、统计周期来定义规则。可自由组合顺序。
描述
检查器的描述说明。
设置默认检查器。
您可以在检查器列表的上方的默认规则中为模型或指标设置默认检查器,后续创建模型或指标时,若没有明确指定规则,默认使用该检查器为模型或指标自动生成表名和指标名。
强弱规则说明。
弱规则:命名检查器被设置为弱规则时,用户可忽略该规则定义表名,模型依旧可以创建成功。
强规则:命名检查器被设置为强规则时,用户在创建模型或指标时,必须要使用该规范创建模型或指标名称,否则无法保存模型或指标。
使用数仓分层
后续您可以在维度建模或数据指标中,选择对应的数仓分层后,创建逻辑模型或者各类指标。
使用检查器
在维度建模或数据指标中使用。
维度建模:
自动生成表名:用户创建逻辑模型时,在表名规则中可选择检查器,系统会自动根据检查器的规则生成表名的推荐填写内容。
检查表名是否符合规则:在创建和编辑表名时,若未选择检查器,用户在输入表名,并保存逻辑模型时,系统会自动根据检查器的规则检查输入的表名是否符合规范。
如有多个检查器,只需符合其中一个检查器,即可通过检查器的校验。
数据指标
自动生成指标名称:用户创建派生指标时,选择时间周期、修饰词和原子指标后,点击智能推荐,系统会自动根据默认规则生成中英文指标名称。
检查指标名称是否符合规范:在创建和编辑指标的英文缩写和中文名称,并保存指标时,系统会自动根据检查器的规则检查输入的名称是否符合规范。
如有多个检查器,只需符合其中一个检查器,即可通过检查器的校验。
直接触发检测并查看结果。
检查器配置完成后,单击触发检测,根据检查器的配置内容,检测当前分层中的数据模型命名是否符合规范。您可根据检测结果将不符合规范的模型进行相关处理操作。
说明暂不支持指标规则使用触发检测功能。
检测操作仅触发启用状态的检查器。
新建的检查器默认为启用状态。若您无需使用检查器,则可将其关闭,关闭后将不会触发该检查器执行检测任务。
检查结束后,单击查看结果,即可查看本次检测结果。
后续步骤
完成上述步骤后,您可以进入数据标准开始标准的定义,也可以进入维度建模和数据指标进行模型和指标的开发。
如您的数仓规模比较庞大,有较多团队协同开发,也可以将当前已规划好的数仓共享给其他工作空间来使用,配置方式详情参见:建模空间。