##[宽表]解耦宽表体系

一位阿里人对数据模型建设的几点思考与总结 - nisjlvhudy的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/nisjlvhudy/article/details/47758749
数据平台在宽表设计中强调高内聚、低耦合的理念,在物理实现中,将业务关系大,源系统影响差异小的进行整合;业务关系小,源系统影响差异大的进行分而置之。

目前阿里巴巴数据仓库IDL层普遍采用了维度建模的思想,我们俗称的宽表也是维度建模思想的一个物理化方法。关于事实表,在kimball维度建模理论中就定义了事实表有三种类型:“We compare thethree fundamental types of fact tables: transaction, periodic snapshot, andaccumulating snapshot.”。事务型事实表(transaction)的典型代表就是我的浏览宽表;周期性快照(periodic snapshot)事实表的典型代表就是会员、offer静态信息表;而累计型快照的典型代表就是会员宽表中的各种行为统计表。


解耦宽表体系 - nisjlvhudy的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/nisjlvhudy/article/details/7337643

数据仓库应用中,宽表模型以结构简单,模型容易理解,数据访问效率等优势,被业界广泛采用。所谓宽表就是,基于某个实体分析对象而建立的一个逻辑数据体系,由实体的维度、描述信息、以及基于这个实体一系列度量组成。它是一个逻辑的概念,在物理实现中不可能就针对一个实体对象建立一个大宽表。因为这样,对于,刷新效率,容错能力,扩展能力都是一个很大的挑战,如何设计和组织宽表的体系结构呢?

其实,我们回到软件设计的基本思想-高内聚,低耦合。我们要从在业务、ETL刷新、指标属性、数据来源等角度,让高度内聚的属性、描述、度量放在一个表中。基本可以从两个维度矩阵进行切割:

第一:按实体属性可能涉及的业务范围进行划分

第二:按业务指标的历史周期属性进行划分,在历史周期上我们可以分为以下几类:

1、当前用户的基本属性和维度,数据相对静态,修改较少。统计的集合包括所有实体对象。

2、用户在统计日发生的行为度量指标。这类数据可以根据行为的增量数据就是,统计集合仅仅是当前统计日发生过行为的实体对象。

3、用户在最近一个周期内的度量指标累计,它由统计日发生的行为度量指标在历史上聚合而成。可以根据业务需要可以就是自然月,自然周。或是最近周、最近月移动聚合数据。它统计的集合是最近一段时间内发生过行为的实体对象。

4、根据用户历史行为而衍生出的度量维度以及用户当前存量类指标(比如余额,总的产品数,当前总的帐户数)比如第一行为的时间,最后一次行为的时间,统计的集合包括所有发生过一次行为的实体对象。

你可能感兴趣的:(##[宽表]解耦宽表体系)