维度建模
维度建模
维度表
维度表用于确定您观察业务状况的视角,存储不同观察视角的维度描述。例如,分析产品销售情况,您可以选择按产品类别及时间两个维度进行分析,创建产品维度表及时间维度表。本文将为您介绍维度表的创建方法。
结合业务的数据域的规划,提取出各业务数据域中进行数据分析时可能存在的维度,并将维度及其属性通过维度表的方式存储下来。例如,在进行电商业务数据分析时,可用的维度及其属性有:订单维度(属性包括订单ID、订单创建时间、买家ID、卖家ID等)、用户维度(性别、出生日期等)、商品维度(包括商品ID、商品名称、商品上架时间)等,此时您就可以将这些维度和属性创建为订单维度表、用户维度表、商品维度表等,将维度属性记录作为维度表的字段。后续您可将这些维度表部署到数仓中,通过ETL将实际维度数据按照维度表定义的方式进行存储,方便业务人员在后续的数据分析时进行取用。
明细表
明细表用于存储大量能够体现业务活动状况的实际数据或详细数值,是数据聚合后依据某个维度生成的结果表。例如,分析产品销售情况,您可以创建销售明细表,用来存储产品维度(作为外键)、时间维度(作为外键)以及销售总量。
结合业务过程的规划,梳理分析各业务过程中可能产生的实际数据,将这些实际数据字段通过明细表的方式存储下来。例如下订单这一业务过程中,您可以创建下订单这一明细表,用于记录下单过程可能产生实际数据字段,例如订单ID、订单创建时间、商品ID、数量、金额等。后续您可将这些明细表部署到数仓中,通过ETL将真实的数据按照明细表的定义方式进行汇总存储,便于业务分析时取用。
汇总表
汇总表用于组织一个数据域下相同时间周期、相同维度的多个派生指标的统计数据,为后续的业务查询,OLAP分析,数据分发等提供基础。
您可以结合业务数据分析和数仓分层,将一些明细的事实数据和维度数据先进行汇总分析,创建汇总表,后续数据分析时直接取用汇总表中的数据即可,无需再取用明细表和维度表中的数据。
应用表
应用表是面向具体业务场景时,用于组织相同时间周期、相同维度的多个原子指标、派生指标或统计粒度的统计数据,为后续的业务查询,OLAP分析,数据分发等提供基础。
应用表是将一个数据集市或主题域中的多个原子指标或派生指标,通过时间周期及关联维度整合在一起,关联的维度、时间周期、原子指标、派生指标,用于生成应用表中的统计字段,帮助您进行报表等分析展示。您可以使用应用表呈现相同时间、相同维度下,多个指标所统计的业务情况。
存储策略
策略 | 代码 |
---|---|
每日增量 | di |
每日全量 | df |
每月增量 | mi |
每月全量 | mf |
小时增量 | hi |
小时全量累计 | hf |
实时增量 | ri |
实时全量 | rf |
15分钟全量 | qhf |
15分钟增量 | qhi |
小时当天累计 | hh |
小时月增量 | hm |
每周全量 | wf |
每周增量 | wi |
每季度全量 | qf |
每季度增量 | qi |
每年全量 | yf |
每年增量 | yi |