中间表设计探讨2013年9月吴建芹2没有一成不变的方案,结合项目的需求和数据特点选择一个最适合的架构。汇总层设计核心思想3汇总层设计的目标是什么?高效访问、维护便利、节省空间、提升系统加载性能是需要考虑的几个因素中间表是否要支持所有应用?是否所有应用都需要设计汇总表?计算指标在中间层、汇总层还是BI工具中实现?汇总层设计目标探讨数据架构4汇总层基础层指标集市中间表基础层数据模型应用展现驾驶舱固定报表OLAP分析专题分析报表报送高度汇总表5通用性:结构设计以通用性为主要目标,使用范围广泛的信息优先考虑,并且尽量只纳入通用性较强的信息;稳定性:尽量只纳入统计口径比较稳定的属性,尤其是日频度的中间表,以减少变更维护;存储空间:根据中间表的存储频度和最细粒度,预估存储一年数据所需的空间,并结合系统空间状况判断设计的粒度和频度;性能提升程度:有些小业务数据使用不是很广泛,但计算时非常消耗性能,亦可考虑提炼一层中间表,以提升性能;业务逻辑复杂程度:有些小业务数据使用不是很广泛,但计算逻辑非常复杂,亦可考虑提炼一层中间表,以方便使用并统一口径;维护便利性:在精简、方便使用和维护便利性之间权衡,建议满足使用的情况下尽量以精简且便于维护为主,减少使用和维护陷阱。比如与其它加载日期相关的同比、累计指标等尽量不设计在中间表中;可适当冗余:使用范围特别广泛的维度及属性可适当冗余到各个相关表中,以减少关联,但尽量从同一个中间表统计,比如证券类别。中间表设计原则6结构设计以贴近需求为主要目标,可进行适当冗余;分析访问性能要求:公司领导等高优先级用户的需求,以及对访问速度要求较高的近生产类需求,可多设计汇总表,以保障访问速度;尽量少:非高优先级用户及非高访问速度要求的需求,在性能满足要求的情况下尽量减少汇总表,以减少各种变更带来的调整工作量(比如统计口径、表样变化、脚本错误等);通用性:可在公用性方面再做一层提炼,多个需求可以共用一个高度汇总表;尽量从中间表出,以保持统计口径一致;计算指标尽量在数据库中实现,以方便检查口径及元数据搜索维护;维护便利性:在方便使用和维护便利性之间权衡,尽量避免使用和维护陷阱。比如涨幅、同比、年累计等数据不是一定要存储到汇总表。高度汇总表设计原则71、简单浏览所有需求,了解需求的特点,记录以下信息:需求名称、统计频度、类型(综合,单业务)、涉及业务2、了解主要数据源的特点,包括:数据量,存储形式、分区3、选择涉及业务较多的综合性需求逐个进行分析,整理记录以下信息并同时逐步提炼中间表,设计中间表的具体字段时可以先把需求中相关字段的出现频率和统计口径初步查询一下,作为必要性参考。需求信息:需求名称、需求类型、统计频度、输出字段、字段类型(指标/维度/属性)、数据来源(初步,可能会多次返工)、统计口径(主要用以区别同名不同义指标)、备注;中间表结构信息:表名、字段名、字段定义及说明(日期类字段需要定义频度,维度类字段需要定义具体的取值,指标及属性类字段有必要的话说明含义及统计口径)、备注、引用次数(分析需求时可大概统计一下);指标信息:指标名称、统计频度、相关维度、维度取值、统计口径、备注、引用次数(分析过程中用到的字段,分析需求时先把所有的指标列举一下,统计引用次数,最后根据次数多少决定是否要单独设立一个指标)、来源基础表/中间表:分析统计口径时大概记录一下,以便后续开发。工作方法182、按照第一步的方法把所有需求梳理一遍,中间表的设计是随着需求分析的结果逐步累积并逐渐完善的。说明:1、此方法适用于对需求特点、数据源特点、中间表设计和相关业务比较有经验的高级人员,通过几个主要综合性大需求可以初步设计出中间表的框架,后续返工的概率比较低,效率高。2、梳理过程中可能会出现修改已有中间表设计的情况,修改后还需要更新所有需求和指标的数据来源;工作方法191.分析所有需求,整理记录以下需求信息(可分工做)需求信息:需求名称、需求类型、统计频度、输出字段、字段类型(指标/维度/属性)、相关业务、统计口径(主要用以区别同名不同义指标)、备注;对于指标类字段,还需要单独记录:指标名称、频度、相关维度、维度取值、引用次数。2.统计各个业务及该业务下指标、维度、属性出现的频度,按照使用频度从高到低并结合之前的原则逐个分析是否需要设计中间表,以及指标是否需要加入到指标库、指标库的存储结构;工作方法210中间表整体设计表名中间表描述粒度存储周期存储时间范围实现形式:快照表、历史表等备注中间表详细结构设计表名字段名字段定义及说明:日期类字段需要定义频度,维度类字段需要定义具体的取值,指标及属性类字段有必要的话说明含义及统计口径;备注:关于该字段的其它特殊说明信息;引用次数:分析需求时可大概统计一下;工作产出—中间表结构11指标库设计指标名称统计频度:列出该指标需要统计哪些频度的数据;相关维度:该指标需要统计的维度;维度取值:需统计维度的具体取值;统计口径:对有必要的统计口径进行说明;备注:关于该字段的其它特殊说明信息;引用次数:这是分析过程中用到的字段,分析需求时先把所有的指标列举一下,统计引用次数,最后根据次数多少决定是否要单独设立一个指标;来源基础表/中间表:分析统计口径时大概记录一下,以便后续开发。中间表设计工作产出Thankyou©Pactera.Confidential.AllRightsReserved.