技术开发 频道

内存计算工具:对比Exalytics与HANA

        【IT168 评论】自从去年OpenWorld上甲骨文推出BI Machine Exalytics以来,业界对于它与SAP HANA的对比就一直没有停息过。那么相比于其他厂商的类似产品,Exalytics的优势究竟在哪?作为一个Oracle长期的从业人员与合作伙伴,我承认会有一些偏见,但是从我自身的实际体验而言,我的确认为Exalytics在几个关键方面都有它独特的优势。

内存计算:对比Exalytics与HANA
▲Oracle Exalytics商务智能云服务器

  首先我假设读者对于Exalytics的一些基本组件和功能都比较熟悉,比如Oracle TimesTen for Exalytics、Oracle Essbase、OBIEE的仪表盘和分析功能等等。Exalytics是一个一体化的集成系统,它包含了一个Sun的服务器,其中有1 TB RAM和40个CPU核心,并将硬件与软件进行了优化的集成。如果你对Exalytics还不熟悉的话,可以参考TechTarget商务智能网站的Exalytics专题报道。

  在本文中,我将具体来介绍一下让Exalytics与众不同的特性,以及为什么我认为Exalytics在同类产品中属于非常好的。请注意本文仅代表个人观点。

  向后兼容性

  对Oracle比较熟悉的用户应该知道Oracle OLAP,它是甲骨文公司长期以来作为Oracle Express多维OLAP服务器的替代产品。由于甲骨文公司对Oracle OLAP使用了基于Java的方式,所以它打破了Oracle Express对于应用的API兼容性。于是他们花了好几年时间才最终开发出稳定的基于Java的Oracle OLAP分析工具。而在这段时间里,Oracle Express客户大量流失到微软和IBM Cognos那里。他们没有耐心等待甲骨文开发出一个功能完整并可以兼容原有工具的OLAP客户端。

  这对于甲骨文是一个惨痛的教训,他们从中学到新的产品一定要对之前客户所熟悉的BI、EPM、数据仓库工具兼容,而不是让客户等着你一项一项开发。在Exalytics中,甲骨文就是这样做的:Exalytics用户可以直接将现有的Oracle BI和Essbase应用直接建议到新的平台上,包括预打包的Oracle BI应用等,用户只需要对元数据进行简单的升级就可以让应用上线。

  此外,Exalytics还支持广泛的Oracle与非Oracle数据源,全部的Oracle BI、EPM和数据挖掘工具都可以在Exalytics平台上使用。对于BI来说,没有一个产品能够满足所有需求,而Exalytics能够支持多种Oracle BI工具,这使得用户可以针对不同的场景来使用不同的工具,而无需将目光放在某些特定的产品上。甲骨文最新发布的 v 1.1工具包甚至还支持Oracle Endeca Information Discovery工具,用户还可以在Exalytics上对非结构化数据进行分析。

  很明显,对于BI数据集分析来说,内存技术要优于传统的从硬盘调数据。但是这里有一个问题,那就是迟早你的内存使用会达到一个瓶颈。许多厂商都在寻找解决这一问题的方法,有些厂商会让你在内存中对整个数据集进行分析,限定不能够对其中的子集进行分析。

  Exalytics解决这一问题的方法是,对经常用到的数据存到内存里,其他更广泛的数据集则通常存储到一个基于Oracle Exadata的数据仓库中,并使用InfiniBand技术进行高速的互连。甲骨文将这一方法称为“内存自匹配数据集市”,其中用到一个功能叫做Summary Advisor,它用来分析查询负载并自动拷贝数据热点到内存缓存中,并把那些不涉及查询的数据筛选出来。使用这个方法,用户可以对更大的数据集进行查询,这些数据的大小将远远超过1 TB内存的容量,同时Exalytics还提供了自动化的解决方案,使得管理员无需进行过多配置即可运行BI分析应用。

  真正的“一体化”集成系统

  针对目前的经济形势,越来越多的企业希望通过像“苹果式”的一体化解决方案来降低总体拥有成本(TCO),而这部分成本一方面体现在降低软硬件集成复杂度,另一方面则体现在人力资源方面。

  Oracle Exalytics可以说是一个真正的一体化解决方案,它集成了Sun硬件和Oracle软件,并对其进行了优化、打包和配置,从而得到一个单一的系统。它减少了安装和维护BI系统的成本消耗,并确保所有组件都能正常工作,甚至是在经历升级之后。Exalytics属于Oracle白金服务的一部分,用户还可以享受来自甲骨文技术支持团队7*24小时的维护服务。关于Oracle白金服务,请参考本文。

  对于单一厂商锁定的话题,目前业界褒贬不一,但是我认为Oracle集成系统的优势在于,从底层操作系统到前端应用,都是针对硬件进行过优化配置的。举例来说,第一版发布的Oracle BI Exalytics软件对预估1 TB RAM和40 CPU核的硬件进行了最优的性能调整,其他硬件是无法达到这一效果的。而随着时间的推移,甲骨文还会不断完善Exalytics的BI工具特性,以便让集成系统发挥到最极致的性能。

  内存分析对于BI用户来说是一个令人兴奋的技术,但是能够真正用好的人却并不多。通常来讲,在使用内存技术来处理大型数据集时,用户往往要进行一些取舍。更困难的是,使用开放平台你要对硬件进行一系列配置才能达到优化的效果。

  在我看来,甲骨文使用了非常好的的方式来提供内存分析技术,这个方式就是简化部署并标准化到一个单一的一体化的解决方案。另外,Exalytics还结合了内存和硬盘分析技术来应对海量数据集的分析,同时对原有BI工具提供了兼容,这样客户就能够在最短的时间内使用新平台来获得价值。

${PageNumber}

  Oracle Exalytics和SAP HANA有三个共同点:1、都使用内存数据库技术;2、都是软硬件集成化设备;3、都用来处理分析工作负载。除上述的几点之外,两个产品其实并没有可比性。


▲内存分析设备SAP HANA

  人们对于SAP HANA到底是一个什么样的产品可能还不太清楚,所以在本文的开始我就先来介绍一下HANA。首先,SAP HANA是一个交易型关系数据库管理系统(RDBMS),遵循ACID原则,它使用记录点和日志来将信息存储到硬盘当中。HANA支持灾难恢复和容错,针对大型工作负载它拥有适度的扩展性(16 TB压缩数据),提供了对主流硬件厂商的认证支持,其中包括思科、戴尔、富士通、惠普、IBM、日立以及NEC等。

  虽然是关系型数据库管理系统,但是SAP HANA同其他的任何一个RDBMS都有所不同。首先,HANA是完全基于内存的:当开始运行的时候,它会将数据加载到RAM当中。它包含了行式和列式两种数据存储方式,也就是说它能够应对OLTP和OLAP两种工作负载。而所有的OLAP功能都是虚拟的,你无须复制数据或者建立一个单独的系统来进行报表生成。它无需cache、聚合、索引或者物理cube,但如果你需要这些功能,HANA也是提供支持的。

  因为HANA只对数据存储一次,你可以使用工具来实时地将数据导入它来应对交易处理,比如SAP Landscape Transformation、Data Services或者Event Stream Processing。此外,HANA还拥有一系列的常驻内存功能,包括支持OLAP,NetWeaver BW的planning engines和一个预测分析库(PAL),通过PAL你可以对数十亿行数据进行实时的统计分析。

  Oracle Exalytics怎么样?

  EMC公司技术总监Rob Klopp曾经写过一篇他对Oracle Exalytics看法的文章,我很同意他的观点。Oracle Exalytics是一个智能的一体机。它对于目前的Oracle数据库和Exadata是一个很好的补充,它包含了一系列技术,如TimesTen内存数据库、Essbase OLAP引擎,Oracle BI Foundation前端工具等。

  它能够自动地将一部分Oracle数据库的数据复制到它的“智能缓存”,这个智能缓存实际上就是一个聚合引擎。然后你的BI查询就在Exalytics或者Oracle数据库中运行。因此如果想加速现有Oracle数据库的查询性能,那Exalytics绝对是一个不错的解决方案。

  Exalytics的限制

  Oracle Exalytics的限制因素有很多,因为它其实只是一个大的缓存设备。举例来说:

  ·在多节点上,它无法横向扩展一个聚合,尽管它支持多个设备,但是每个设备上还是需要有一个聚合;

  ·TimesTen数据库只支持批量加载而不支持增量加载;

  ·Exalytics不能作为数据库使用,因为它只是一个缓存设备;

  ·层次结构中存在限制;

  ·运算必须是递增的,因此你无法在保障性能的情况下做平均值或者“count distinct”运算;

  ·Exalytics是只读的;

  如果Exalytics和HANA没有可比性,那么?

  答案是没有。我相信市面上没有和SAP HANA相同的产品,它的功能和特性与其他产品都有所不同。然而,客户最喜欢做的就是比较,而且通常拿SAP HANA和Oracle Exadata来作比较。

  因为尽管它们的硬件和架构都不同,但是用途比较相似。它们都是用来进行高性能的混和工作负载处理,而对于交易数据存储和运营数据存储来说,HANA和Exadata都是很有趣的解决方案。

  但是目前来看,我的建议是,如果你使用了Oracle的产品,并且想要对Oracle数据库中添加一个智能缓存的话,那么应该选择Exalytics。而如果你想要一个新的数据库,并想要超过原有Oracle性能10倍或者100倍,那么SAP HANA绝对是首选。

  原文链接:http://www.searchbi.com.cn/showcontent_67118.htm

0
相关文章