大数据维度的MDX模型中的性能如何优化?

0
目前我们有一个维度表(项目维表)。维度成员将近60万。
使用多维模型CUBE,查询时。尽管使用其它维度限制后,只有几百个项目被查询出来,但是效率非常慢,要2分钟。
但是同一个维表,要Tabular模型中。同样的结果集查询出来,不超过5秒。
请高手指教,如何优化多维模型的CUBE。(事实表与项目维采用的是简单的星型链接).
谢谢!
已邀请:
1

BIWORK - 热衷于微软BI技术,技术架构和解决方案! 2013-12-31 回答

大维度表一般确实不太好处理,像会员表维度成员特别多,查询时效率肯定会有影响。我的思路是通过添加层次结构来限制维度成员的个数,比如会员按地域划分,或者按消费水平划分,或者按入会时间等创建层次结构。

星形结构的话,会员维度和其它的维度比如地域可能是分开的,所以在设计会员维度的时候可能需要考虑将地域等信息设计成会员维度的维度属性,或者使用命名查询将会员维度信息和地域信息等关联形成一个完整的维度表,在这个基础之上来建立层次结构。

当然,用户可能不是这样考虑的,他们总是希望一次性要看到所有会员或者按所有会员查看一些度量值,但是这个实际上效率是非常低的。因此和用户也还有一个沟通的过程。

Tabular Model 在2012版本已经推出了,但是目前好像用的还很少,因为据我了解像父子模式,多对多模式在 Tabular Model 设计过程中都不支持了。Tabular Model 支持内存存储,所以会很耗内存,但是效率上可能要更高一些。
0

superboyli520 - 微软BI技术达人 2014-01-08 回答

能不能举个案例。大维度表设计的。

第二个 Tabular Model 有两种存储模式,并非只有内存存储模式。
0

superboyli520 - 微软BI技术达人 2014-01-08 回答

楼上的问题应该是这样,你的维度生成CUBE本身就已经很大了,查询时间会很长,即使你没有复杂的计算。

但是你用Tabular model速度快的原因,你的查询简单而且,Tabular model 是查询时运算,在你的业务逻辑很简单的情况 下,它有优势是正常的。

Tabular model 有自己的查询优化技术。

如果进行复杂业务技术,可能Cube的优势 会出来。

合理设计分区,聚合,优化维度。是有效的手段。

要回复问题请先登录注册