[转载]大道至简!!!从SAP HANA作为SAP加速器的方式,看ERP on HANA的春天

I AM A ABAPER!

科技的进步,一定会使一些东西变得越来越精简!

大道至简!!!

文章很好!!!!!!!!!!!

--------------------------------------------------------------------------------------------------------------------------

转自:http://blog.sina.com.cn/s/blog_9154db5301019udr.html%20

说到HANA,SAP之神技也!呵呵,你要说我很疯癫,我就说你很2B,HANA除了作为一个高性能的实时数据平台之外,还有很多种用途(典型的手指图,5大类的应用),最近也有很多人听说HANA作为应用加速器的这个话题,这个东西是SAP AGS最初为那些Max Attention合同类型的大客户(比如两桶油公司,一头电公司这种大家伙)做SAP HANA项目快速原型法衍生(不需要修改ABAP代码,快速提升ABAP程序的性能)出来的方式,大家的问题如下:

这个东西是不是ERP on HANA的原型呢?不是!

这个东西是不是和CO-PA on HANA一个原理呢?原理相同,但是,但是,但是CO-PA on HANA的里面还包含了一些其他的增强和优化过的代码

将来是否ERP ON HANA是否仅仅的只是替换掉数据库这么简单呢?其实仅仅替换掉数据库也可以运行,SAP ERP抽象底层数据库的,MaxDB作为ERP的DB不也是跑的好好的吗?但是为了让ERP ON HANA跑的更好,更快,原先的ABAP系统代码和内核肯定会在将来做一些更新和优化,将ABAP-HANA做深度的集成和优化!

HANA作为SAP 应用的加速器的理解

关于HANA的应用,有很多种不同的应用,本文中介绍的HANA的其中一种应用,从名称来看,HANA作为SAP应用加速器,意味着原有SAP的系统的用户访问方式都不发生变化,但是在速度上可以有所提升,一句话,我还是用过去的ABAP代码写的SAP GUI的方式来做交易,但是速度比以前快了很多。

还是SAP NetWeaver Basis模块牛逼啊!

SAP 的ABAP的Kernel版本是一直在升级中的,而且ABAP一直也是从来都支持Second DataBase的,很早很早的Kernel版本开始就支持Second DB了,例如客户上了一个ERP,底层数据库是Sybase ASE/Oracle/DB2/SQL-Server/MaxDB,比如,我们可以说ERP on Oracle的方式,因为中间有一个抽象层,所以SAP的ERP系统根本就不在乎你底层是什么数据库,对上层的ABAP Stack来说,没什么太大区别。此时如果用户希望ABAP代码取得数据的来源是外部的Database系统,那么可以给ERP定义个一个第二数据库(Second Database),这就是所谓Second DB的说法和意思,之前的SAP ABAP Kernel大概可以支持4+种以上的数据库。

但是从NW 7.21 Kernel 的版本,SAP HANA就可以作为ERP的Second DB了,意味着从ERP中的ABAP代码中,不仅仅是访问ERP本地数据库,还可以访问HANA,利用HANA高性能的计算能力。

但是从NW 7.30 Kernel开始,SAP HANA将可以作为SAP ERP(Business Suite/ECC)的主要数据库,就是ERP on HANA的意思,这个全新的Kernel当前在BW 7.3 on HANA上面已经发布了,目前国内的一些客户早已用起来了(例如:农夫山泉,联想,大众车车公司),所以从不远的地方我们就可以很清楚的看到ERP ON HANA,太他妈正常了,当然年底很快很快发布第一个ERP on HANA的版本,这里我们就不多说,我们也不吹嘘,我们看SAP的实际行动啦!(SAP奥兰多蓝宝石大会-5月份宣布将在下面几个月发布ERP ON HANA的全球客户的Ramp-up项目

这对于Oracle的震撼不是一点点啊!绝对是震精四野的消息,各位ABAPer又要活血了,估计ERP将来的代码又得大改了。

”加速器“原理和限制点

既然是加速器,就是说这个加速器是提供速度上的性能提升,比如某个SAP事务代码运行效率较低,使用ABAP Program Tracing和分析之后,看看ABAP和DB的访问时间的所占比列,是否正常,如果ABAP程序没有太多提升的空间,可能会调整数据库表的索引等,但是这些毕竟是有限的,HANA来了,所以自然而然鬼点子就来了。

从下面这张图中,我们可以看到ERP的原有数据库表基本是-完整的复制到HANA的,然后原有的ABAP程序 仅仅只是在使用HANA去加速原有程序的READ部分(SELECT xxx FROM TABLE abc),原有的数据更新到ERP自己的数据库均不发生改变。就是说只加速读的部份,DEL/UPD/INS都不涉及。这种方式能够将HANA的对于数据的分析和计算应用到极致,在原有的基础提升10~20倍的速度,而且不用修改ABAP代码,喜欢用SAP GUI的客户们就继续使用吧,反正给你花里胡哨的BO你也不会喜欢的。

当然最好的是使用SLT的方式来同步两个DB之间的部分数据库的数据,可以保证准实时,属于不中断现有IT架构提升和保护系统投资的一种方式,让传统的ABAP也能利用到SAP HANA内存计算所带来的效能。

当然这种方式也是有局限性的,比如ERP-HANA之间的数据复制是有一定的实时间隔的,虽然SLT能够做到非常非常的准实时,所以如果一个业务关联的几个数据表之间的数据如果不一致(复制延时造成的),那么使用加速器的方式必须能够“处理“这种不一致所带来的问题,或者说即使有一定延时也没有任何关系,毕竟世界上不存在真真的实时,比如万分之一微秒等,运维性或者日常的报表应该会比较适合这种方式。

”加速器“不改代码和优化过的代码的区别

这个加速器有2中实现方式的

  • 不改代码,仅仅HANA作为ABAP的READ数据的数据库,提升一些性能,工作量极其小,因为代码一行不改,只是换个数据库访问,所以性能的提升是有限的,当然如果提升到秒级,也不错,也就够了。(懒人方式)
  • 优化代码,修改原有的ABAP代码,将原来的SELECT 出来的东西,内标LOOP套LOOP中的计算逻辑在HANA中实现,极大提升性能,这种方式相当于要对原有的程序代码做修改,要迁移部分计算逻辑和取数逻辑到HANA中,然后ABAP再去访问,这个工作量大一些,要改代码,但是回报也是相当不错的。(勤快人方式)

上图中,就是第二种方式,也就是所谓的优化代码的方式,我们现在所看到的BW 7.3这个版本,就是优化过的ABAP代码来访问ABAP的方式,将很多的计算逻辑下沉到HANA数据库层来做,主要是为了发挥IMDB的高性能,否则如果还是ABAP APP层来做,没啥意思。

什么什么on HANA,所隐含的东西?

我们现在看到很多XXX on HANA,例如SAP HANA官网上所列出的CO-PA on HANA Accelerator,还有BPC on HANA,XXX on HANA,Finiance on HANA,这种RDS(快速部署的解决方案)应用现在SAP发布了越来越多,什么意思!这其实是很大一盘棋啊!兄弟姐妹们,SAP ERP的代码和模块有多少,如果一行代码不改就ERP ON HANA,行吗?行,绝对没问题!

但是这样也就太没创意了,SAP要做的是一个全新的,能够真正利用到HANA高性能内存计算能力的ERP on HANA版本,而不是简单的把底层数据库换掉就OK了,SAP要做的是一步一步的不断提升ABAP,以及打造以HANA为基础平台的ABAP应用,怎么做呢?假设我们不知道SAP的战略方向吧!那我们就开始揣想吧!

  • ABAP现在可以访问HANA了,READ没问题对吧
  • BW 7.3 on HANA了,而且HANA作为数据库的存在,其实这里就是ABAP on HANA,我们可以这里理解对吧
  • 即将推出的SAP ERP on HANA第一版,但是这里的ERP on HANA应该不是所有模块的代码全都是针对HANA优化过的,但是应该很多目前应用的有问题或者有待提升的模块都会on HANA.

举个例子,我们现在又CO-PA on HANA对吧!我百分之百的相信ERP ON HANA的这个版本自动默认就包含了CO-PA on HANA的全部代码和功能,当然还有Finiance on HANA的部份!那么你会觉得这些RDS有什么作用和目的吗?

XXX on HANA的意思,就是在ERP on HANA未发布之前,将所有新开发的应用或者原有的一些应用基于HANA平台来做,如果此时用户买了HANA,那好,直接买!如果用户没有买HANA,没关系,后面的ERP ON HANA中,会直接把这些所有的XXX on HANA全部包进去,这样第一个ERP on HANA的版本中就会有很多模块的应用都是重新优化过的了,当然还有一些原有的代码,当然我相信这是SAP ERP on HANA的一个必经之路!

结尾和供参考资料

关于怎么ABAP read data from HANA,本文中没有提及,因为很方便,Google随便一查,文章到处都是,我就不费口舌了,只是从这个加速器的方式来揣测SAP是如何将整个庞大的ERP的全部或者一步一步的搬移到HANA上去的。

SAP会不断持续的加大投资和更加加大力度的发展ABAP的技术的研究,会将ABAP-HANA的融合提升到一个全新的高度(例如:自动生成HANA中一些数据接口,读写这个接口,就等于是更新HANA DB等),那些认为ABAP没用的人可以去金科路的豆腐摊买块豆腐撞死了,哈哈

时间: 2024-12-14 09:41:56

[转载]大道至简!!!从SAP HANA作为SAP加速器的方式,看ERP on HANA的春天的相关文章

《大道至简》阅读笔记1

<大道至简>阅读笔记1 不知不觉间看完了第一章,从这个章节里我看到了一些我们都明白可是却自己很难做到的道理. 书中从愚公移山的故事和编程相结合给出了编程的精义就是顺序.分支.循环,这些都是我们所熟悉的,也是老师在教学中耳提面命的,可是我们又有几个人能做到呢. 我们总是在找着各种各样的学不好学不会理由,“它太难了”,“我太笨了”,认真的想一想难道真的是它太难了或者是自己太笨了么?不,答案是否定的,追根究底是懒惰,是没能坚持.从根本上来说,不存在会不会写程序的问题,除了先天智障和后天懒惰者,这要你

再读大道至简第一章以及生活有感

开始上JAVA,在还没有老师授课前就接受了安装JDK的任务,虽然我在暑假前就已经安装完了JDK,以及ECLIPSE,也跟着学长学了一点点的东西,但是,一个暑假因为家里的关系,电脑都没开几次的我,真心都忘的差不多了……唉,先是JSE的界面出了问题,后来是cmd黑框无法运行.JSE的问题还好及时解决了,不然那个附带的小问题还真的没办法搞定. 上课,果然自己的亲导师是从<大道至简>开始授课的,虽然我之前看过了一遍,也大概知道了主要内容,但是,具体的问题我还真心的回答不上来.比如,愚公移山的分析,编程

大道至简第一章伪代码

一.愚公移山 Import.java.大道至简.*; Import.java.愚公移山.*; Punlic class yishan { Public static void main (string [] args) { While(山不平) { 叩石垦壤,箕?于渤海之尾: If(愚公不死) { 愚公与子孙一起移山: } Else { 子又生孙,孙又生子......子子孙孙,无穷匮也: } } System.print.ln("山已移完"): } } 二.会不会写程序 Public

《大道至简》第五章读后感

失败的过程也是过程,我觉得这句话很有深意,阅读完大道至简第五章,我又有了很深的感触. 首先是“做过程不是做工程”,过程是为了实现某种目的而经历的一些事情,过程有很多种,虽然经历了某种过程,但不一定能实现某种功能.做完过程的每一个阶段,并不等于做工程.做过程不是做工程的精义,也不是最终目的. 然后是“做过场”,做过场就好像是一种形式一样,做了没必要做的事情,就是浪费时间. 做工程的最终目的是实现客户的要求,工程只是一种实现的途径.最初做开发的前辈们,不用什么工程或者过程,也一样编出了程序,也一样解

大道至简第五章读后感

第五章 失败的过程也是过程 今天照样老师带领着我们阅读了大道至简第五章,阅读了<大道至简>的第五章,这章在前面的基础上又进了一步,有了技术和团队,加上有效的沟通,接下来就要接项目做工程. “虚有其表耳”,本章以<明皇实录>中的一句话来告诉我们一个深刻的道理:不要只求外表,只做形象工程,而是要透过表象,力求实质. 失败了不要紧,没有失败也就找不到自己的不足,也就不会发现自己的问题,更不用谈改进了.我们的前辈们就是在不断的失败中才总结出了“瀑布模型”“螺旋模型”等模型,方便了我们.但是

大道至简:软件工程实践者的思想——第一章感想(重写)

中华道家哲学.道在中国哲学中,是一个重要的概念,表示“终极真理”.此一概念,不单为哲学流派诸子百家所重视,也被宗教流派道教等所使用. 大道至简是指大道理(基本原理.方法和规律)是极其简单的,简单到一两句话就能说明白.所以这个大道至简可以适用任何行业. 对于编程序来说,很多人认为是一件很复杂的事,但是你慢慢读以前的故事,你就会发现,其实在是一件很简单的事,甚至可以说是不用废废脑力一件劳力活.在中国两千年前的寓言中,已经成就了一位工程名家:愚公.当你细心读这个故事的时候,你就会发现,在愚公的身上,浓

读《大道至简》有感

编程序从一开始到现在给我是“斩不断,理还乱”的感觉,有时候真的对着一个程序一点头绪都没有,不知该如何下手. 在两千年前的寓言故事<愚公移山>中,已在无形中成就了一名工程师:愚公.他在移山之前都有详细的计划,有目标,都有一个结构,还看透山不能增而子子孙孙无穷匮也的道理,总有一天在会把它移尽.阅读大道至简之前,我在语文课上读的<愚公移山>从来没想到过这个编程序问题,受语文老师的熏陶,我在高中毕业之前特喜欢阅读文言文.虽然一开始并不理解意思,更没有想过我会学计算机,想到愚公是个出色的工程

《大道至简》第一章读后感

经常听见有人抱怨编程太难,说自己不是学软件的料,那么他们真该好好看看<大道至简>这本书,相信他们看完这本书后会有很大收获. <大道至简>第一章引用了一个很简单的故事“愚公移山”,用这个故事很好的概述了我们在完成一个项目时所要进行的步骤.听上去“愚公移山”和编程简直是风马牛不相及,但是看过作者的叙述又有原来如此的感觉.其实编程并没有什么难懂的,就和我们日常生活一样,发现问题,分析问题,提出解决问题的方案,实施,和后续的验收.例如某天我们突然发现家里放不出水了,这就是发现问题,我们会观

读《大道至简》第一章有感

近期老师为我们推荐了一本书,叫做<大道至简>,书很薄,却精辟的讲述了软件工程专业对于编程这一实践过程的重要思想,我们总以为编程是怎样的有难度,却从来没有考虑过编程为什么难,他到底难在哪.事实是我们错了,我们不是不会技术,而是不会方法. 第一章主要讲述了编程的精义,作者利用愚公移山的故事,简洁明了的讲解了编程的实质含义,从愚公移山实施的各个方面与编程联系在一起,讲解了编程的过程.从开始的原因,到编程实现的目标,然后小组团队对这个编程项目的讨论,以及各个人员在不同项目上的安排,并且还有项目之外的协