在做数仓建设的时候我们需要根据业务需求建各种表,国内因为阿里做的比较早,基本上就跟随着阿里的这套方法论走下去了,所以能查到的凡是跟维度建模相关的资料都是以阿里的这套为基础来的。
其实阿里的这套数据管理体系、数据建模体系是基于Kimball来的。
这篇文章来说说在数仓中常见的集中表类型。
维度表(DIM)
维度是维度建模的基础和灵魂。在维度建模中,将度量称为”事实“,将环境描述为”维度“。维度表包含了事实表中指定属性的相关详细信息,常用的维度如日期维度、城市维度等。
结合业务的数据域的规划,提取出各业务数据域中进行数据分析时可能存在的维度,并将维度及其属性通过维度表的方式存储下来。例如,在进行电商业务数据分析时,可用的维度及其属性有:订单维度(属性包括订单ID、订单创建时间、买家ID、卖家ID等)、用户维度(性别、出生日期等)、商品维度(包括商品ID、商品名称、商品上架时间)等,此时您就可以将这些维度和属性创建为订单维度表、用户维度表、商品维度表等,将维度属性记录作为维度表的字段。后续您可将这些维度表部署到数仓中,通过ETL将实际维度数据按照维度表定义的方式进行存储,方便业务人员在后续的数据分析时进行取用。
明细表(DWD)
明细表用于存储大量能够体现业务活动状况的实际数据或详细数值,是数据聚合后依据某个维度生成的结果表。例如,分析产品销售情况,您可以创建销售明细表,用来存储产品维度(作为外键)、时间维度(作为外键)以及销售总量。
结合业务过程的规划,梳理分析各业务过程中可能产生的实际数据,将这些实际数据字段通过明细表的方式存储下来。例如下订单这一业务过程中,您可以创建下订单这一明细表,用于记录下单过程可能产生实际数据字段,例如订单ID、订单创建时间、商品ID、数量、金额等。后续您可将这些明细表部署到数仓中,通过ETL将真实的数据按照明细表的定义方式进行汇总存储,便于业务分析时取用。
汇总表
汇总表用于组织一个数据域下相同时间周期、相同维度的多个派生指标的统计数据,为后续的业务查询,OLAP分析,数据分发等提供基础。
汇总表是将一个数据域中的多个派生指标通过时间周期及关联维度整合在一起,关联的维度、时间周期和派生指标,用于生成汇总表中的统计字段,帮助您进行报表等分析展示。您可以使用汇总表呈现相同时间、相同维度下,多个派生指标所统计的业务情况。
应用表
应用表是面向具体业务场景时,用于组织相同时间周期、相同维度的多个原子指标、派生指标或统计粒度的统计数据,为后续的业务查询,OLAP分析,数据分发等提供基础。
应用表是将一个数据集市或主题域中的多个原子指标或派生指标,通过时间周期及关联维度整合在一起,关联的维度、时间周期、原子指标、派生指标,用于生成应用表中的统计字段,帮助您进行报表等分析展示。您可以使用应用表呈现相同时间、相同维度下,多个指标所统计的业务情况。