探索中国CIO人才现状 | 第四季调研报告
SAP HANA的业务运营实时分析
2013-12-29  作者:CIO 

  ERP系统是基于先进的企业管理理念上高度集成化的信息系统,将财务、物资、设备、销售、生产、计划等业务功能综合集成的经营管理工具,推广ERP系统,将统一规范业务流程,促进管理水平的提升。我公司在2008年开始启动SAPERP系统建设,先后实现了上市与未上市业务的上线及单轨运行,经过多年的运行,系统内已存储大量的财务账务性数据与生产过程性数据,系统运行效率明显降低,产生了系统查询性能优化需求。针对查询性能优化需求,业务部门与技术支持部门联合进行了系统运行情况调研,经过访谈调研,汇总问题集中体现在以下两个方面:1、自开发报表存在性能问题,物料凭证清单以及预留领料批料发料清单等报表查询速度缓慢,优化查询条件后查询返回时间需要几个小时,自开发设备清单显示查询速度过慢,目前在用设备2万台,使用IH08查询返回时间2分钟以内,而自开发报表查询返回时间在30分钟以上,优化查询条件后执行效率并未明显改观;2、月结、年结时性能问题突出,在系统处理业务量大的时间段,库存盘点明细表需运行近7个小时,工单状态监测完成情况统计表需运行1.5个小时,严重影响到业务的正常运行。查询效率问题已经成为困扰用户体验的突出问题。虽经前期系统硬件的升级与代码优化,但效果不甚明显,项目经理部最终决定采用SAPHANA技术,对系统进行优化,提高系统查询性能。


  一、SAPHANA介绍


  HANA是一个软硬件结合体,提供高性能的数据查询功能,用户可以直接对大量实时业务数据进行查询和分析,而不需要对业务数据进行建模、聚合等。HANA的内存数据库(SAPIn-MemoryDatabase,IMDB)是其重要组成部分,包括数据库服务器(In-MemoryDatabaseServer)、建模工具(Studio)和客户端工具(ODBO、JDBC、ODBC、SQLDBC等)。HANA的计算引擎(ComputingEngine)是其核心,负责解析并处理对大量数据的各类CRUDQ操作,支持SQL和MDX语句、SAP和non-SAP数据。比较显而易见的一点是,HANA计算引擎要快速处理用户复杂的查询请求,快速返回查询结果。SAPHANA在平台内部增添了更多核心基础内存计算技术以支持软件包,这些技术将带来不同以往的性能提升,并将显著加速客户业务流程。作为战略的一部分,通过将内存计算引入数据层,该平台现在拥有业务功能库和预测分析库,通过两者的协作帮助客户显著提高业务流程的性能。包括基于线性回归、季节性调整或其他业务决定因素进行的销售预测在内的业务功能,作为可重复使用的功能将可直接通过内存计算获取。商业客户还可利用先进的数据挖掘和统计算法,如决策树,来分析影响顾客购买决策的关键因素,无需部署额外的统计分析软件包,即可实时分析海量数据。


  HANA技术颠覆传统数据库运行方式,SAPHANA平台显著增强了SAPNetWeaverBusinessWarehouse(SAPNetWeaverBW)的查询性能并加快了其加载数据的速度。通过减少数据层,该平台可以帮助客户简化运营管理,优化IT结构,从而显著降低总体拥有成本(TCO)。


  二、SAPHANA实施方案


  针对不同查询操作的性能需求,对于自开发查询报表与部分标准程序,我们采用了两种实施方案:1、HANA应用加速器:通过ERP端升级内核进行简单配置,快速实施,全面提速;2、HANA报表建模:在HANA中对报表建立模型,取数及运算都在HANA中完成,以达到极致的运行速度。这两种实施方案针对不同级别的需求进行选择,其中HANA应用加速器的优势在于:应用层代码进行极少量调整,优化现有的ABAP,容易实施,只需要升级内核,投资小,对现有的系统实施风险小;HANA报表建模的优势在于:在HANA中为高管层分析报表和常用报表建立模型来达到极致的运行速度,可以连接到SAPBI产品和移动平台上。


  通过与前期调研结果进行分析,最终决定对统计的120张报表中,实施优化42个(自开发报表30个,SAP标准报表12个),SAP标准报表主要T-CODE为:MB52(仓库库存查询)、MB51(物料凭证查询)、ME25(预留清单库存查询)、IW39(显示PM订单)、CN41N(项目信息系统)、S_ALR_87013558(项目预算、实际、承诺、剩余计划查询)、S_ALR_87013542(项目成本范围查询)、FAGLB03(显示余额)、S_PL0_86000030(总账科目余额)等。根据需优化报表的使用频度、账务数据相关性、用户感知速度等指标,对42个报表中,采用加速器+优化ABAP方案实施36个,采用HANA报表建模方案实施6个。


  三、SAPHANA实施效果


  在系统完成开发后,测试人员在压力测试环境下对沙盒系统中运行效率进行测试,并使用T-CODE:STAD来获取查询性能数据,对于数据库响应数据与查询效率数据进行记录,下表是一个自开发报表和一个SAP标准报表的优化前后性能的对比:


  通过上表数据分析可以发现,使用SAPHANA无论是对于自开发报表还是SAP标准事务代码都带来明显的性能提升。对于Databaserequesttime(数据库响应时间)与ABAPRequestDatabasecalls(数据库请求次数)两个指标都有明显的提升,而对于显示处理时间等,HANA并未带来改善。


  在测试中,分别对Responsetime(整体响应时间)、DBtime(数据库时间)、Processingtime(处理器时间)进行记录,采用源数据库运行时间(S)/HANA应用加速器运行时间(S)=加速倍率算法,对加速效果进行评估。所实施的42张报表中,在同条件查询测试时,有显著性能改善的(加速倍率20以上)有35张,有一定改善效果的(加速倍率5-20)有4张,有改善效果的(加速倍率1-5)的有3张。经对结果进行分析,加速效果不显著的3张报表我们认为主要是由于数据库时间在响应时间中比率较低造成。通过测试,可以认为,采用SAPHANA可显著改善系统查询性能,对于查询操作具有显著的优化效果。


  结论


  SAPHANA为现有应用程序、运营系统或其他业务应用程序提供标准接口。这意味着SAPHANA不会因为连接到现有数据源而打乱现有系统架构,可利用HANA应用加速器或HANA报表建模技术,有效提高系统整体运行效率,作为一款完备的实时分析解决方案,SAPHANA可以帮助企业提升SAPERP系统的系统性能及用户体验。