数仓分层是结合对业务场景、实际数据、使用系统的综合分析,对数据模型进行的整体架构设计及层级划分。用于将不同用途的数据,归类划分至不同的分层,便于您更好地组织、管理、维护数据。本文为您介绍如何创建并管理数仓分层。
背景信息
数据仓库是所有数据的集合,包括日志信息、数据库数据、文本数据、外部数据等都集成在数据仓库中。数仓分层、数据域、业务过程、数据集市、主题域等要素,共同确定了您此次建模的逻辑数仓架构。其中,数据域及业务过程位于公共层,用于公共层数据模型的构建。数据集市及主题域位于应用层,用于面向具体业务应用的模型构建。
数仓分层保障了数据在进入数据仓库之前都经过清洗和过滤,使原始数据不再杂乱无章,优化了查询过程,有效的提高了数据获取、统计和分析的效率。同时,数仓分层实现了各种不同维度数据的关联,使多维分析更加方便,为从多角度、多层次地数据分析和决策制定提供便捷。
规划数仓分层
数仓分层需要结合业务场景、数据场景、系统场景进行综合考虑设计,您可以根据实际业务需求,规划您数据模型的分层。
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层对原始数据的操作具体如下:
将原始的结构化数据增量或全量同步至数据仓库中。
将原始的非结构化数据(例如,日志信息)进行结构化处理,并存储至MaxCompute。
根据实际业务需求,记录原始数据的历史变化或对原始数据进行简单的清洗。
ODS层的数据表,命名必须以
ods
开头,并且生命周期为366天。明细数据层 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层使用维度构建数据模型。可基于实际业务,存放逻辑模型的维度表;或存放概念模型的维度定义,通过定义维度,确定维度主键,添加维度属性,关联不同维度等操作,构建整个企业的一致性数据分析维表,帮助您降低数据计算口径和算法不统一的风险。
对于创建的分层,您可以选择平铺展示或层级结构展示,如下图所示。
展示方式 | 描述 |
平铺展示 | 不区分层级结构,所有分层统一平铺放置。 |
层级结构展示 | DataWorks为您提供了贴源层、公共层、应用层、其他等分层归属,您可以将创建的数据分层挂载至不同的分层归属。
|
分层归属一旦设置(包括新建时配置及编辑修改配置)则无法变更,请您合理规划层级归属。
创建数仓分层
系统已默认为您创建了五个分层(ODS层、DIM层、DWD层、DWS层、ADS层),可满足绝大部分的场景和需求,如您存在部分需要个性化处理的场景,可参见如下步骤创建新的数仓分层。
个性化处理的场景示例:抽象出TMP(临时表)层,在创建表时严格将表归属到对应分层,对每个分层设定一些标准和校验规则,譬如命名规范、生命周期设置等。
进入数仓分层。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据建模。
在智能数据建模页面的顶部菜单栏,单击数仓规划,默认进入数仓分层页面。
创建分层。
单击新建分层,在新建数仓分层对话框配置分层的基本信息。
参数
描述
英文缩写
数仓分层的英文缩写,唯一标识数仓分层。
英文名
数仓分层的英文名称。
中文名
数仓分层的中文名称。
负责人
创建数仓分层的负责人。默认为当前登录账号。
分层归属
该参数与模型类型配合使用。用于将创建的分层划分至不同层级,并关联对应的模型类型。
贴源层:主要用于数据库、日志、消息等基础数据的引入。
公共层:主要完成公共数据的加工与整合,建立统一的维度,构建可复用面向分析和统计的明细事实表,以及汇总公共粒度的指标。
应用层:基于实际应用需求,获取公共层加工整合后的数据,进行持续的个性化数据建设及改造。
其他:用于存放存量创建的系统默认层级及用户自定义的层级。
系统默认层级:您需提交给技术支持人员,帮助您修改该类层级的分层归属。
用户自定义的层级:您需通过编辑操作,修改层级的分层归属。
说明如果位于其他层级的数据分层未修改层级归属,则后续创建模型表时无法挂载相应表至该层级。
说明分层归属一旦设置(包括新建时配置及编辑修改配置)则无法变更,请您合理规划层级归属。
模型类型
该参数与分层归属配合使用。用于将对应的模型类型挂载至不同的分层归属。
贴源表:只能挂载至贴源层。
明细表:只能挂载至公共层。
应用表:只能挂载至应用层。
汇总表:只能挂载至公共层。
维度表、维度以及维度表、维度(即维度表和维度的组合):可挂载至公共层及应用层。
说明模型类型一旦设置则无法变更,请您合理规划模型类型。
已创建的数仓分层中,若中英文名称中包含关键词
dim
、DIM
、Dim
、维度
,则DataWorks默认将其模型类型变更为维度、维度表。
备注
数仓分层的备注信息。您可输入目标数仓分层的功能描述,方便您快速了解每个分层的功能作用,将对应业务数据存放至合适的分层。
最大长度为2048字符。
单击确认,完成创建。
后续步骤
数仓分层创建完成后,您需创建数仓分层检查器,用于规范数仓分层中表的命名规范,详情请参见配置及使用数仓分层检查器。