数仓分层是结合对业务场景、实际数据、使用系统的综合分析,对数据模型进行的整体架构设计及物理层的详细划分。用于将不同用途的数据,归类划分至不同的分层,便于您更好地组织、管理、维护数据。本文为您介绍如何创建并管理数仓分层。

背景信息

数据仓库是所有数据的集合,包括日志信息、数据库数据、文本数据、外部数据等都集成在数据仓库中。数仓分层、数据域、业务过程、数据集市、主题域等要素,共同确定了您此次建模的逻辑数仓架构。其中,数据域及业务过程位于公共层,用于公共层数据模型的构建。数据集市及主题域位于应用层,用于面向具体业务应用的模型构建。

数仓分层保障了数据在进入数据仓库之前都经过清洗和过滤,使原始数据不再杂乱无章,优化了查询过程,有效的提高了数据获取、统计和分析的效率。同时,数仓分层实现了各种不同维度数据的关联,使多维分析更加方便,为从多角度、多层次地数据分析和决策制定提供便捷。

规划数仓分层

数仓分层需要结合业务场景、数据场景、系统场景进行综合考虑设计,您可以根据实际业务需求,规划您数据模型的分层。

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层中对用户的行为做一个初步的归类汇总,抽象出来一些通用的维度,假设维度为时间IPID,并根据这些维度统计出相关数据,比如用户每个时间段在不同登录IP购买的商品数。则在DWS层可以进一步添加一层轻度的汇总,可以让计算更加的高效。例如在此基础上计算仅7天、30天、90天的行为会节省很多时间。

  • 应用数据层 ADS(Application Data Service)

    ADS层用于存放数据产品个性化的统计指标数据,输出各种报表。例如,某电商企业,在6月9日至6月19日,杭州地域出售的各大球类商品的数量及排行情况。

  • 公共维度层 DIM(Dimension)

    DIM层使用维度构建数据模型。基于实际业务,通过定义维度,确定维度主键,添加维度属性,关联不同维度等操作,构建整个企业的一致性数据分析维表,帮助您降低数据计算口径和算法不统一的风险。

对于创建的分层,您可以选择平铺展示层级结构展示,如下图所示。数仓分层
展示方式 描述
平铺展示 不区分层级结构,所有分层统一平铺放置。
层级结构展示 DataWorks为您提供了贴源层公共层应用层其他等分层归属,您可以将创建的数据分层挂载至不同的分层归属。
  • 贴源层:主要用于数据库、日志、消息等基础数据的引入。该层级只能挂载贴源表
  • 公共层:主要完成公共数据的加工与整合,建立统一的维度,构建可复用面向分析和统计的明细事实表,以及汇总公共粒度的指标。该层级可挂载明细表维度表汇总表
  • 应用层:基于实际应用需求,获取公共层加工整合后的数据,进行持续的个性化数据建设及改造。该层级可以挂载应用表维度表
  • 其他:用于存放存量创建的系统默认层级及用户自定义的层级。
    • 系统默认层级:您需要提交技术支持人员,帮助您修改该类层级的分层归属
    • 用户自定义的层级:您需要通过编辑操作,修改层级的分层归属
    说明 如果位于其他层级的数据分层未修改层级归属,则后续创建模型表时无法挂载相应表至该层级。
说明 分层归属一旦设置(包括新建时配置及编辑修改配置)则无法变更,请您合理规划层级归属。

创建数仓分层

系统已默认为您创建了五个分层(ODS层、DIM层、DWD层、DWS层、ADS层)可以满足绝大部分的场景和需求,如您存在部分需要个性化处理的场景,可参见如下步骤创建新的数仓分层。

个性化处理的场景示例:抽象出TMP(临时表)层,在创建表的时候严格的将表归属到对应的分层中,对每个分层设定一些标准和校验规则,譬如命名规范、生命周期设置等。

  1. 进入数据建模
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表
    3. 选择工作空间所在地域后,单击相应工作空间后的数据开发
    4. 单击左上方的图标图标,选择全部产品 > 数据建模 > 数仓规划,默认进入数仓分层页面。
  2. 创建分层。
    1. 单击新建分层,在新建数仓分层对话框配置分层的基本信息。新建数仓分层
      参数 描述
      英文缩写 数仓分层的英文缩写,唯一标识数仓分层。

      英文缩写由英文字母、数字、下划线(_)组成,并且以英文字母开头,最大长度为128字符。

      英文名 数仓分层的英文名称。

      英文名称由英文字母、数字、下划线(_)、and(&)组成,并且以英文字母或数字开头,最大长度为2048字符。

      中文名 数仓分层的中文名称。

      中文名称由中文、英文字母、数字、下划线(_)、and(&)、英文括号组成,并且由中文、英文字母或数字开头,最大长度为2048字符。

      负责人 创建数仓分层的负责人。默认为当前登录账号。
      分层归属 该参数与模型类型配合使用。用于将创建的分层划分至不同的层级,并关联对应的模型类型。
      • 贴源层:主要用于数据库、日志、消息等基础数据的引入。该层级只能挂载贴源表
      • 公共层:主要完成公共数据的加工与整合,建立统一的维度,构建可复用面向分析和统计的明细事实表,以及汇总公共粒度的指标。该层级可挂载明细表维度表汇总表
      • 应用层:基于实际应用需求,获取公共层加工整合后的数据,进行持续的个性化数据建设及改造。该层级可以挂载应用表维度表
      • 其他:用于存放存量创建的系统默认层级及用户自定义的层级。
        • 系统默认层级:您需要提交技术支持人员,帮助您修改该类层级的分层归属
        • 用户自定义的层级:您需要通过编辑操作,修改层级的分层归属
        说明 如果位于其他层级的数据分层未修改层级归属,则后续创建模型表时无法挂载相应表至该层级。
      说明 分层归属一旦设置(包括新建时配置及编辑修改配置)则无法变更,请您合理规划层级归属。
      模型类型 该参数与分层归属配合使用。用于将对应的模型类型挂载至不同的分层归属。
      • 贴源表:只能挂载至贴源层
      • 明细表:只能挂载至公共层
      • 维度表:可以挂载至公共层应用层
      • 汇总表:只能挂载至公共层
      • 应用表:只能挂载至应用层
      说明 模型类型一旦设置则无法变更,请您合理规划模型类型。
      备注 数仓分层的备注信息。您可以输入目标数仓分层的功能描述,方便您快速了解每个分层的功能作用,将对应业务数据存放至合适的分层。

      最大长度为2058字符。

  3. 单击确认,完成创建。

后续步骤

数仓分层创建完成后,您需要创建数仓分层检查器,用于规范数仓分层中表的命名规范,详情请参见配置及使用数仓分层检查器