用户: 密码:
忘记密码? [国内]13520525527 [海外]13911267931
报告 会议 观点 动态专题 调查 电子杂志
计世资讯 >> 关注
当前位置:首页 >> 观点 >> 大数据 >> 中石化EDW系统跨越分析性能瓶颈——内存计算技术与SAP HANA

中石化EDW系统跨越分析性能瓶颈——内存计算技术与...

  • 发表日期:2015年02月作者:中国石油化工股份有限公司信息管理部应用处 马永林
关键词:内存计算 性能 效益 SAP HANA 中国石化

摘要:随着企业的业务扩展和数据量不断增大,分析、处理这些数据所遇到的性能问题逐渐暴露出来,这也是在目前海量数据或大数据背景下的一个越来越明显的趋势,很多应用系统的核心...

分析师观点正文

 

        1.      内存计算技术综述

  内存计算(In-Memory Computing),实质上就是CPU直接从内存而非硬盘上读取数据,并对数据进行计算、分析。此项技术是对传统数据处理方式的一种加速,是实现商务智能中海量数据分析和实施数据分析的关键应用技术。内存计算非常适合处理海量的数据,以及需要实时获得结果的数据。比如可以将一个企业近十年几乎所有的财务、营销、市场等各方面的数据一次性地保存在内存里,并在此基础上进行数据的分析。当企业需要做快速的账务分析,或要对市场进行分析时,内存计算就能够快速的按照需求完成[3]

 内存计算的应用类型包括商务智能数据分析、数据挖掘加速器、模拟分析预测应用、在线交易处理(OLTP)和在线分析处理(OLAP)应用、利于海量及实时数据计算等。内存相对于磁盘,其读写速度要快很多倍。对于商业智能应用而言,由于数据库一般都较大,少则几个GB,多则成百上千个GB,内存计算技术的出现,更好的支撑了商务智能技术的迅速发展。如在财务分析、业绩分析、库存分析、经济订购批量分析等企业经营关键指标分析实现技术应用。此技术能在金融、制造、服务、交通运输、国防等行业和部门内实现广泛应用。内存计算还可以模拟一些数据分析的结果,实现对市场未来发展的预测。内存计算这种高速分析工具的应用,可以帮助用户在事情没发生前假设各种场景,然后进行分析,以预测将要发生的事情。将能应用于需求性建模、航空天气预测、零售商品销量预测、产品定价策略等OLTP系统需要对发生的业务进行实时记录,因此要处理的是大量简单、小规模、同时发生的交易;而OLAP系统是对OLTP提供的数据进行分析,以支持业务决策,因此处理的交易数量相对较少,但更为复杂。

   内存计算技术具有良好的应用前景,在海量及实时数据计算方面,能够较大地提高企业单位时间内数据处理的能力与业务响应速度;内存计算将交易型与分析型数据库合并,使企业的数据资源更加合理的利用,提高单位硬件产品利用率,节省更多的硬件资金投入。

  2.      内存计算技术与SAP HANA

 SAP HANAHigh-Performance Analytic Appliance)是 SAP 公司于 2011 年推出的基于内存计算技术,面向企业分析性应用的产品。HANA 产品主要包括内存计算引擎和 HANA 建模工具两部分。它支持从 SAP 商务套件中同步更新业务数据,或者从 SAP BWSAP 商务智能产品)和其他第三方数据源中批量导入数据,在 HANA 中进行运算后,提供给 SAP BI 客户端或者其他第三方展现工具进行分析和展现。

 HANA能让企业根据不断变化的大量详细信息来分析业务运营情况,用户几乎可以实时的浏览和分析来自任意数据源的业务交易数据。在发生业务时,这些交易数据将会被同步到HANA的内存数据库中,用户可以使用非常灵活的视图,并以思维般的高速度显示这些分析的信息。若要整个企业的扩展性分析,将外部数据添加到分析模型中即可。

 HANA能简化现有企业的计算层,使得企业的业务应用可以从硬件的性能提升中直接受益,从而使客户能够实时分析几乎来自任何来源的大量数据,利用实时的内存技术帮助企业提高运营效率。

 

1.  SAP HANA架构图

 HANA同类型的产品还有OracleTimesTenTibco Microstrategy QlikTech IBM TM1 PowerPivot等。

              3.      内存计算技术在HANA的应用

 

1)      高效的并行处理机制

近年来IT业硬件的技术路线发生了明显的变化,单颗CPU的主频、计算能力提升并不明显,但是单台服务器配置更多的CPU,并且每个CPU包含更多的内核来提升并行计算和处理能力,这意味着软件系统必须提升并行处理能力,才能在新的硬件发展趋势下保证系统的性能能够持续提升。

         HANA的技术研发适中保持了与硬件供应商的紧密合作,整体的体系架构基于处理器平台支持多服务、多CPU的高效并行处理,使得HANA在应用层的架构设计上能将数据处理和运算拆分并部署到多个处理器。

         在系统部署架构层面,HANA可以部署到多台集群的硬件服务器,保证系统的高可用性及扩展性[2]

2)      基于内存的高效数据读取和处理

传统的应用系统中,数据被存储在数据库中,当用户通过前端界面发出指令后,应用层从数据库中读取数据在应用层进行逻辑运算,并将结果反馈给前端界面进行展现或进行下一步,在这个过程中,从数据库读取数据因传统磁盘I/O的性能限制而成为瓶颈,这一瓶颈在海量数据的读取中体现的尤为突出,基于数据仓库的报表分析就是一个最明显的例子。

         内存的读取与传统磁盘I/O的效率相差100万倍,所以当基于数据仓库进行报表分析时,如果从传统数据库中读取需要十分钟的话,SAP HANA只需要不到1秒的时间,在数据爆炸这一趋势下,HANA带给用户更高效、快捷的处理分析能力。

3)      高效的数据压缩优化内存利用

HANA的数据运行机制是将所有数据都放到内存中处理,虽然包括内存的价格日趋低廉,但相比磁盘而言,内存仍然是较贵的存储设备,因此数据的压缩可以帮助企业节省这一部分硬件的投资。

SAP HANA中采用了基于智能数据字典等高效的数据压缩机制,能够将数据压缩5-20倍,从而充分节约硬件投资[2]

4)      行存储和列存储的混合模式

我们都知道基于行存储的数据库虽然在业务处理场景即OLTP处理中能发挥很好的数据记录作用,但在支持数据分析应用即OLAP应用时显得低效和力不从心。

SAP HANA是目前行业中唯一同时支持行存储和列存储的内存数据库,所以能够对OLTP交易系统和OLAP分析系统同时提供高效的支持。

5)      虚拟建模减少数据冗余

在传统数据仓库系统中,数据从应用系统或其他数据源抽取并存储在数据仓库系统中常常不能直接使用,而是需要多层建模处理,需要有一个ETL的过程;每个模型中的数据都是从物理上单独存储的,这意味着基于同样的原始数据,需要额外硬件存储一次或者多次来建立数据模型,这给用户带来了额外的硬件和维护成本。

SAP HANA中,将源数据导入内存后,在HANA的建模有别于传统数据库,HANA的数据模型都是虚拟的,系统只保存这些数据模型内表的勾稽关系以及数据的运算逻辑,而不会将数据另外存储一份,只有当数据提交前端请求时,HANA才会根据虚拟的数据模型进行数据的计算并将结果提交给前端。这意味着HANA不会存在因为数据清洗而导致的冗余数据,从而大大节约硬件的投资和维护成本。

6)      在数据库层面进行数据密集型计算

SAP HANA提供了完善的数据库功能外,其内置的计算引擎可以将原来在应用层进行的运算转移到数据层面进行处理,这在数据密集运算的场景,能够优化应用层和数据库层之间的数据交互,从而从整体上提升系统的效率;例如通过写数据库存储过程,将应用层的逻辑计算下放到数据层;通过使用SAP HANA自带的PAL算法工具,将复杂的数据预测、挖掘逻辑使用系统设计语言执行,大大的提升了系统性能。

            4.      如何保证内存的持续计算和可用性

SAP HANA的存储架构:

众所周知内存的特性,当遇到异常情况甚至断电时,无法提供持续的存储和计算,为了解决这个问题,SAP HANA采用内存层+持久存储层架构。如上图所示,内存部分用来存储全部需要查询的数据(SQL DATA)以及未保存的LOG信息(UNDO LOG),HANA的模型数据、元数据也都存在于此,可以提供高性能的查询及操作,这里的写操作是异步执行的(DELTA MERGE)。而持久存储层用来保存所有的数据,也包括所有日志信息(REDO LOG),这里的写操作是提交时就执行的也就是同步写操作。

SAP HANA通过SAVE POINT动作来保证数据在两层之间的同步,通常默认情况这个SAVE POINT的间隔是5分钟执行一次[1]

       5.      如何保证数据写操作的性能

HANA所采用的行、列存储并用的机制,列存储的使用是HANA能够提供快速查询、分析的基础,作为数据库,HANA的目标是支持OLTP+OLAP,因此如果只考虑查询和分析的性能显然是不够的。

列存储的数据插入操作是一个短板,SAP HANA是如何处理这块短板呢?如何保证在查询的同时还能提供较好的插入性能?答案就是创新的DELTA MERGE机制。在SAP HANA中,对数据库的写操作通常都是在一个称为DELTA的区域来完成,但为了内存的消费以及读操作的性能,DELTA区域写入的数据必须传输到主(MAIN)存储区域,这个转换的过程就是DELTA MERGE机制,SAP HANA通过这个机制实现了内存中写数据的一个异步处理,能较好的平衡读/写操作的性能[1]

        6.      HANA在中国石化销售板块的尝试和应用

中国石化从2013年开始尝试SAP HANA系统在销售板块的应用,原因是随着业务数据量的极速增长和业务需求水平的不断提高,现有的EDW+BW模式不能完全的满足业务需求对系统性能、计算能力、响应速度提出的高要求,尝试SAP HANA是一个选择。

例如在油品销售领域,需要实时对油站的销售规模进行划分、对未来的销售情况进行预测等;在非油品(便利店)销售领域,针对目前已经积累的数十亿条业务数据进行有效的分析、挖掘,通过自定义价格区间,发现销售不同价格段商品的千人来客数据中的规律,尝试关联分析、聚类分析找到合适的促销搭配、通过利润、库存周转计算商品的加权得分等,这些业务要求通过现有的分析系统无法完全满足。

以非油品品类分析及决策支持系统为例,该系统结合SAP BW ON HANA系统和中国石化现有的EDW+BW框架结构,设计了石化特色的SAP HANA应用架构:

 

中国石化HANA应用基于SAP BW ON HANA;数据层结合了对SAP BWEDW)的数据抽取,也有从大数据平台HADOOP的集成;逻辑层主要依赖SAP HANA的预测分析算法库(PAL)以及自身数据库逻辑处理功能(存储过程),并且与现有的销售BW应用系统有成果的集成;展现层通过JAVA技术自开发,并实现了与现有经营管理门户(EP)在登录及权限方面的融合。

HANA内存计算的应用方面有以下功能:

决策支持:依靠快速计算及与HADOOP大数据集成,实现对总部和企业品类管理者在引进新品,淘汰商品,促销管理时提供运营层面的决策支持,优化便利店品类,提升商品周转率;

 

预测分析:使用PAL集成的预测算法,能够根据历史销售数据便捷、快速的预测便利店、省公司、品类在指定期间内的销售情况;

 

数据挖掘:以销售POS流水为基础数据,利用HANA计算引擎进行大规模数据的商品销售关联分析,门店聚类,商品加权计分等数据挖掘分析;

 

统计分析:利用HANA高性能查询、运算能力,快速准确的处理基于购物篮的常用统计分析,包括ABC分类统计分析,品类来客分析,PI指标排名等分析;

 

通过以上新技术、新功能的运用和建设,希望能为中国石化销售企业在商品引进、商品淘汰、促销活动等关键品类管理流程提供辅助决策支持;通过商品销售关联度、销售预测、门店聚类分析、商品加权计分等数据挖掘功能,支持企业在日常运营中发掘潜在商机、发现自身盈利点、改善经营策略;通过自助分析功能,提供数据分析师在数据探索、可视化分析方面灵活的应用工具;通过在项目实施过程中的与用户的互动,将零售行业中的业界分析思路和分析方法与用户共享。

 

        参考文献:

[1].   SAP,SAP_HANA_Administration_Guide,HANA Platform SPS08

[2].   潘明惠 徐莲荫等,SAP HANA 内存计算技术项目实战指南,清华大学出版社

[3].   数字化企业网,什么是内存计算,在线资料



合作伙伴

2010-2019 Copyright @ 北京时代计世资讯有限公司版权所有. 京ICP备18044172号-1 关于计世资讯| 团队介绍 | 研究领域 | 友情链接 | 招贤纳才 | 公司动态 | 媒体报道 | 联络我们