SAP HANA并不是SAP公司突发奇想的一个产品,而是经过十几年不断发展,基于自身内存计算技术不断进化而来的一个产品。图2-7简要说明了SAP HANA的大致发展历程。
图2-7 SAP内存计算技术产品的进化
(1)TREX
TREX主要用于处理非结构化信息(例如,上传的文档、PDF、网页以及论坛中各种帖子等)的分类和搜索引擎,这个产品也一直作为SAP NetWeaver家族产品的一部分继续发挥作用,例如和NetWeaver平台中的KM(Knowledge Management,知识管理模块)结合起来,设定不同的搜索权限,又如应用全文检索或Fuzzy Search,快速检索企业内部所有有效信息。
TREX也是SAP公司内部默认的信息搜索引擎,从内部所有的系统SCN、社区论坛、会员中心、WIKI知识站点、内部的共享文件和公司门户中搜索信息,然后按照分级分类来返回结果。图2-8是TREX在SAP公司内部的应用示例。
图2-8 TREX作为SAP公司内部的搜索引擎
(2)MaxDB LiveCache
LiveCache是基于SAP MaxDB系统发展而来的内存计算技术,其基本原理也是将数据缓存在内存中,将数据以对象存储的方式处理,在内存中管理非常复杂的计算对象,例如SAP SCM/APO。
(3)BWA
SAP于2007年推出了BWA(BW Accelerator,简称为BW加速器、BWA、BIA等)。BWA采用TREX技术(索引、检索、压缩),用以处理结构化数据。BWA主要用于以下情景:①用户使用SAP NetWeaver BW产品(SAP数据库仓库,Business Warehouse)多年之后,由于海量数据增长而导致BW系统的底层数据库性能逐渐呈下降趋势,对前端用户的响应越来越慢;②通过增加新的硬件资源和调优也能提升一些性能,或者采用BW归档对数据库进行“瘦身”,但是效果却不明显,此时可以采用BWA来大幅提升BW系统性能。
SAP BWA是一个透明解决方案,将NetWeaver BI(BW)中的数据抽取到BWA中,这些数据会经过压缩和列存储的优化,然后加载到BWA的内存中,其工作原理如图2-9所示。
图2-9 BWA工作原理示意图
使用BWA可以整体提升BW的性能10~100倍,而且不改变任何前端的用户使用习惯,这其实是为原BW系统“减压”的一种方案。从技术架构上看,BWA也是基于内存计算技术和运行在PC服务器上的,而且部署极快,只需要做少量配置即可。当然SAP公司也并未止步于此,从以上的种种技术获得灵感,然后于2010年底推出SAP HANA这一革命性产品,因此我们看到了BW 7.3、Business One、SAP ERP等产品都将HANA作为其底层高性能数据库。
(4)SAP HANA,简化的架构,不简单的技术
图2-10 HANA核心技术组合
在内存计算方面,SAP公司一直都有着自己的原创点和技术专利,图2-10简要描述了SAP HANA的核心技术点,主要融合了内存计算、行+列存储、MPP以及计算引擎等各项技术于一身。
❏利用内存计算可以对海量数据实现瞬间统计分析;内存计算提供了更多的时间用于列式数据的更新,开创列存储高效率支持OLTP应用的先河。
❏行存储应用在系统级表更新;列存储方式大大增加了能够存储在内存中的数据容量,而且使查询可以做到更多的并发。两种存储方式各司其职,应用在不同的数据处理需求中。
❏内置了多种计算、分析、预测引擎,这使得SAP HANA可以轻松地处理不同类型的用户请求。
❏MPP架构优化了软件的架构,使数据计算的性能可以做到更大并发和资源的动态分配,同时让基于内存计算技术的HANA可以得到无限扩展。