《大数据环境下的多维分析技术--动态立方体的性能调优(四)》要点:
本文介绍了大数据环境下的多维分析技术--动态立方体的性能调优(四),希望对您有用。如果有疑问,可以联系我们。
通过前期的文章,我们知道,通过IBM Cognos的Dynamic Cubes(动态立方体,下同)技术可以实现TB级的多维分析.为了提升查询性能,动态立方体可以利用聚合感知能力,实现对聚合数据集的自动路由,从而实现对于复杂多维分析应用的性能提升.在Dynamic Cubes里,聚合数据集包含内存内部聚合与数据库内部聚合两种.本期文章我们来看看动态立方体如何使用数据库内部聚合来进行性能调优.
数据库内部聚合(Database aggregates)
对于关系数据库里的那些超大规模的多维数据集(由事实表与维表构成),为了提高特定的多维分析的查询性能,可以创建一些聚合表来存储高层汇总数据.在设计Dynamic Cube模型时,将数据库内部聚合指定到对应的聚合表,即可保证在查询这些维度和指标时,优先使用聚合表的数据,而不是直接到最细粒度的维表与事实内外去查询.这类聚合表,我们称之为数据库内部聚合.
要想使用数据库内部聚合.首先,由DBA或者数据库设计人员创建若干张聚合表.例如对于多维模型gosldw_sales(test),我们创建了一张聚合表AGGR_TIME_PROD_OM_FACT.如下图所示.
这张表里面包括了多维模型使用时可能经常用到的部分维度与度量,它并不是最细粒度的数据集.示例中,时间维度只到了季度层次,产品维度只到了产品类型层次.然后可以通过ETL办法,定期将底层多维模型数据集的数据汇总后插入到该聚合表中.以下SQL语句示例供参考(只表现数据处理逻辑,物理性能参数应由DBA负责确定):
然后,在Cube designer里将此聚合表放到动态立方体的模型设计当中,如下图所示.
最后,在发布此Dynamic Cube后,就可以使用到该数据库内部聚合来加速多维分析性能了.
数据库内部聚合建议
也许您现在会提出一个问题,既然数据库内部聚合能够提高多维分析查询性能,那我如何确定聚合表应该选择哪些维度、哪些指标来创建呢?这个问题Cognos已经帮您考虑到了.在我们前期的文章《大数据环境下的多维分析技术-动态立方体(Dynamic Cubes)的性能调优(二)》中提到,通过Dynamic Query Analyzer(简称DQA,下同)工具可以对动态立方体的查询性能进行评估并得到优化建议.这些优化建议里就包含对数据库内部聚合的优化建议.
在启动对应的动态立方体的工作负载记录后,运行DQA工具,可以分析出用户对于该动态立方体的查询偏好,从而得到数据库内部聚合的设计思路.如下图所示.DQA得出的建议有25条,每条建议都有说明从哪些维度查询哪些指标,以及占用的数据空间大小.
通过下图中的详细查询甚至可以得到对应聚合表的数据来源和建表脚本.
数据库内部聚合的性能监控
Cognos服务器还提供了对数据库内部聚合的监控功能.它通过一些特定的分析指标来持续分析动态立方体里数据库内部聚合的性能情况,来提示系统管理员如何持续优化数据库内部聚合的设计.通过Cognos administration界面可以查看到数据库内部聚合的性能情况,如下图所示.
由上图可以看出,我们的数据库内部聚合命中率为0,说明设计不合理.对于数据库内部聚合的设计,我们有以下最佳实践建议:
详情请咨询在线客服!
慧都控件|提供软件技术整体办理方案
云集全球三千余款优秀控件、软件产物,提供行业领先的咨询、培训与开发服务 企业QQ:800018081|电话:023-66090381
维易PHP培训学院每天发布《大数据环境下的多维分析技术--动态立方体的性能调优(四)》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/8687.html