随着国内ERP软件的不断普及,大量的公司已经积累了很多的数据。如何从数据中提取、挖掘对业务发展有价值的信息,为企业业务提供决策依据,推动精益化化的企业管理。商业分析师通常会使用各种数据分析工具,例如平常大家经常用的数据分析工具Excel、Tableau和PowerBI等。OLAP引擎技术就经常被用于对接这类数据分析工具,向这些数据分析工具提供数据支撑。
一、为什么SSAS如此流行?
传统的OLAP引擎有很多,Oracle、SAP、IBM和Microsoft均有自己研发的OLAP引擎技术,据小黎子了解的OLAP引擎技术,Microsoft SQL Server Analysis Services(SSAS)也是世界上应用最广泛的OLAP引擎之一,众多各位耳熟能详的大型企业均是SSAS的深度用户。SSAS的成功与它的一些功能特性密不可分:
与Excel深度集成
Excel作为全世界最广泛使用的商业分析工具,SSAS能与Excel深度集成。用户可以使用Excel对接SSAS多维数据集,灵活快捷的对数据进行切片、筛选、上卷和下钻等操作,深入分析数据,直到他找到所需的商业洞察。
支持MDX语言
SSAS可以使用MDX(多维表达式)支持高级的商业智能需求,例如常用的YTD、QTD和MTD等计算指标均能轻松支持。并且MDX相比SQL能够更简单且更广泛的支持各种商业智能需求。
能与主流的BI集成
例如PowerBI、Tableau等,都可以与SSAS轻松集成,SSAS接收前端BI发送的查询需求,在自身引擎中计算,将聚合后的值返回前端BI,以提升前端BI的查询体验。
二、SSAS面临的问题
虽然微软的SSAS具备许多优秀的功能特性,使其成为许多商业智能方案的理想选择,但身处大数据时代,它面临着越来越多的挑战问题。并且随着数据量爆炸式的增长,这些挑战显得更加重要。
数据量及维度数量的限制
通常情况下SSAS使用的是MOLAP模式,MOLAP将OLAP分析所用到的多维数据物理上存储为多维数组的形式,形成“立方体”的结构。这种方式在较小数据量时,性能优势较大。但当面对大型数据集时,由此产生的维度爆炸问题,将使MOLAP架构难以维持。因此面对海量数据时该方案会存在瓶颈。
扩展受限制
若现有的SSAS处理能力无法满足需求,需要增强其处理能力时,用户就必须为运行SSAS的服务器增加更多硬件设施来满足需求。同时如果需要存储更多的数据,则需要扩展本地存储。
三、SSAS面临问题的解决方案
进入数字化转型时代,数据爆炸式增长,SSAS的弊端日渐明显,越来越多的企业开始寻找替代SSAS的技术。在Hadoop 技术日臻完善的今天,一个理想的BI/OLAP分析架构应该保留所有SSAS分析功能,并且能够利用 Hadoop技术的横向可扩展性解决 SSAS 面临的所有痛点,这样的OLAP on Hadoop分析架构应该能够做到:
提供了横向扩展能力
Hadoop分布式文件系统(HDFS)的一大特点就是可以通过向集群增加服务器来扩展存储和处理能力,一个理想的OLAP on Hadoop方案,也继承了这一强大的特性。这种方案极大的提升了系统的扩展性,降低了扩展系统能力的难度。
打破了数据量和维度数量的上限如上文提及,由于Hadoop具备横向扩展的能力,数据存储已不在成为瓶颈,只要集群足够,数据量已不再存在上限。由于SSAS需要按照多维数据集中的所有维度进行聚合,所以不可避免的存在维度爆炸的问题,而理想的OLAP技术应允许用户自定义聚合维度,有效的避免维度爆炸的问题,打破了维度数量的上限。
更高的性价比OLAP on Hadoop的方案,构建集群并不需要高配置的一体机,硬件成本大大降低。这种特性在收费基于集群和时间的云平台上尤为明显,用户可在需要大量资源时扩大集群,在空闲时缩小集群,释放多余资源,做到最大程度的资源和费用的节约。
四、总结
本文让我们清晰的看到SSAS具备的很多优点,让其成为了广泛流行的OLAP引擎,但是它也存在着扩展能力有限,承载数据量有限等各种问题。虽然微软SSAS无法突破数据量及维度数量的限制,但是在很多的中小企业是够用的。因此数据量是引擎选型很重要的一个参考点,因为随着数据量的增加,对引擎的处理能力和查询响应提出了更大的挑战,对于不同量级的数据分别有不同的引擎可供选择,如下图所示:
最终使用哪种OLAP引擎其实还是靠用户需要处理的数据量来决定。毕竟面对少量数据一个微软SSAS就可以解决的事情,何必要花那么大的代价去买hadoop技术方案咧。我们需要做的就是学习好这些技术,以更合理的视角给客户提供更优质的技术方案。