网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
理想的聚集对数仓用户是不可见的,每当需要时才默默地提供支持。理想的聚集也是免维护的,可以自动地建立和维护,不需要ETL开发人员介入。
聚集的基础知识
由于多维数据集首先是一种高性能的数据结构,因此构建汇总多维数据集的聚集几乎没有意义,然而如果原始多维数据集被调整为获得高容量而不是高性能,这样做是有用的。
汇总基本数据
- 在基本模式中存储粒度数据
- 在聚集中存储预先汇总的数据
- 描述聚集模式最方便的方法是描述事实表的粒度,与之相反的是描述什么被汇总
- 聚集模式的事实和维度要与基本模式中的事实和维度表示一直,这样才能确保获得一致的结果
- 为了性能上获得好处,聚集模式并不需要被优化的查询的粒度完全一致。
- 单个聚集并不能为所有查询带来性能方面的好处,可以采用多个聚集以不同的方法对同一个基本模式进行汇总。每个聚集预先跨不同维度计算数据,而不是采用连续级别的汇总,这样可以最大化聚集表能支持查询的数量
- 总会有一些查询不能通过聚集获得优化,任何需要访问粒度的查询,都必须被定向到原始星型模式
使用聚集
聚集星型模式中事实和维度属性与基本星型模型中相关的事实和维度属性一致,对利用聚集的查询的重写工作包含替换表名和关键字列。
对于某个给定的查询,在选择星型模式时,要获得最理想的性能,就需要考虑采用在事实表中具有行数最少并且能够回答查询的聚集星型模式。
仅仅允许有经验的开发人员拥有访问聚集的权利。终端用户和没有经验的开发人员仅允许访问基本星型模式。
加载聚集
围绕性能的原则开展设计工作,从原始星型模式构建聚集模式是有意义的,如果发生类型1变化,将导致增量式维度聚集更加困难。
通过采用一致性的概念指导聚集设计,能够保证汇总获得一致的结果,并使重写查询的过程变得尽可能简单。有助于保持ETL过程的简单。
将聚集表的来源定义在基本星型模式上可以确保结构和内容的一致性。
ETL过程中采用的表加载示例
- 加载基本维度
- 加载一致性上钻
- 加载基本事实表
- 加载聚集事实表
类型1变化
当基本数据和聚集被顺序加载时,若发生类型1变化,则需要重新加载聚集,而不是对其进行增量更新。
- 基本模式被更新后,删除并重新建立聚集。这种方法通常要做的处理工作少,一些工具以此方式自定建立聚集表或者多维数据集
- 在聚集时不使用类型1属性,类型2变化不会引起类似的问题,因为不会改变先前记录事实的环境。
作为聚集的多维数据集
当采用多维数据集存储维度设计时,为获得高性能,其数据集已经警醒过优化,因此没有必要汇总多维数据集。
多数体系结构都采用混合使用星型模式和多维数据集的方式。星型模式易于拓展,而多维数据集易于获得高性能。最佳的方法是利用星型模式存储粒度数据,细节数据,而多维数据集包含高性能的获取结果。这一安排十许多数据仓库实现获得成功的基础,由于都具有维度特性,多维数据集和星型模式存在天然的亲和性。多数维度产品都被建立成为支持从基本星型模式构建和设计多维数据集的方式。
使聚集不可见
聚集模式与数据库索引类似,与索引一样,为使查询更加快捷,聚集模式需要占用一些额外的空间。在利用聚集时需要重写查询,需要加载和维护聚集,同时保持聚集于原始模式的同步。
聚集导航
聚集导航能力消除了再编写查询时,需要开发人员选择基本星型模式或是一个或多个聚集的需要。工具以不同的方式、以结构的不同部分提供此种能力。聚集导航还能够提供其他额外的好处。
用户很难选择使用哪个星型模式组合,所以一般不对终端用户开放聚集,但是,也因此用户构建报表时不能获得聚集所带来的的性能方面的好处。
聚集导航是通用的来描述选择基本星型模式还是一个或多个聚集的术语,完成这种服务的软件产品或功能通常被称为聚集导航。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
628)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!