基于阿里巴巴OneData方法论最佳实践,汇总数据层以分析的主题对象作为建模驱动,基于上层的应用和产品的指标需求构建公共粒度的汇总表。汇总数据层的一个表通常会对应一个统计粒度(维度或维度组合)及该粒度下若干派生指标。

汇总表设计原则

聚集是指针对原始明细粒度的数据进行汇总。DWS汇总数据层是面向分析对象的主题聚集建模。在本教程中,最终的分析目标为:最近一天某个类目(例如,厨具)商品在各省的销售总额、该类目销售额Top10的商品名称、各省用户购买力分布。因此,我们可以以最终交易成功的商品、类目、买家等角度对最近一天的数据进行汇总。数据聚集的注意事项如下:
  • 聚集是不跨越事实的。聚集是针对原始星形模型进行的汇总。为获取和查询与原始模型一致的结果,聚集的维度和度量必须与原始模型保持一致,因此聚集是不跨越事实的,所以原子指标只能基于一张事实表定义,但是支持原子指标组合为衍生原子指标。
  • 聚集会带来查询性能的提升,但聚集也会增加ETL维护的难度。当子类目对应的一级类目发生变更时,先前存在的、已经被汇总到聚集表中的数据需要被重新调整。

此外,进行DWS层设计时还需遵循数据公用性原则。数据公用性:需考虑汇总的聚集是否可以提供给第三方使用。您可以思考,基于某个维度的聚集是否经常用于数据分析中。如果答案是肯定的,就有必要把明细数据经过汇总沉淀到聚集表中。

汇总表规范

公共汇总表命名规范:dws_统计粒度。 举例如下:
  • dws_report(report汇总表)
  • dws_user(user汇总表)

创建汇总表

组成汇总表的统计指标有两种来源,具体如下:
  • 系统按照相同统计粒度,自动汇聚。派生指标提交后,系统会自动生成新的汇总表。派生指标组成部分如下图所示。
    派生指标定义
  • 通过非派生指标创建方式创建的普通物理表字段,根据同主键原则归一至相应的汇总表。
如果选择手动方式创建汇总表,基于Dataphin,具体步骤如下:
  1. 在Dataphin首页,单击顶部菜单栏的研发
  2. 选择开发 > 规范建模 > 汇总逻辑表
    汇总表页面
  3. 单击左侧功能区右上方的新建文件按钮。
    创建汇总表
  4. 在弹出的新建汇总逻辑表对话框中,选择统计粒度,单击进入下一步
    选择统计粒度
  5. 填写描述信息,单击提交。然后填写提交备注,单击确定并提交

  6. 如果是Dev-Prod模式进行生产开发隔离的开发,提交成功后,需要对汇总表进行发布,然后才可以在生产环境的汇总逻辑表页面找到已创建的汇总表。
    说明 汇总表详情请参见新建汇总逻辑表

查询派生表及汇总表

逻辑表运维包含两个模块,一个是逻辑表任务,用来从逻辑表视角切入,为用户展现逻辑表内部任务关系。另一个是逻辑表实例,用于查看已运行的逻辑表任务包含的节点实例及其状态。

  1. 在Dataphin首页,单击顶部菜单栏的研发 > 运维
  2. 单击左侧菜单栏中的逻辑表任务,进入逻辑表任务页面,如下图所示。

  3. 在逻辑表任务页面:左侧功能区主要用于搜索和展示逻辑表及其内部物理节点,右侧DAG图展示区,默认展示当前逻辑表内包含的所有节点和内部节点间的依赖关系,并在左下角动态展示缩略图。
    说明 详细内容请参见逻辑表任务
  4. 单击左侧菜单栏中的逻辑表实例,进入逻辑表任务页面,如下图所示。
    汇总表-运维1
  5. 在在逻辑表实例页面:左侧功能区主要用于搜索和展示逻辑表及其内部物理节点实例。右侧DAG图展示区,默认展示当前逻辑表包含的所有节点实例及其状态(如运行中、运行成功、运行失败),并在左下角动态展示缩略图。
    说明 详细内容请参见逻辑表实例