技术开发 频道

第一次体验HANA ABAP:进化还是变革?

  HANA的ABAP规划图

  SAP在SCN上发布了关于HANA的ABAP规划图,下面我会描述一些最重要的特征:

  ·现有一些产品如BW已经做好以HANA为主要延续的准备了(BW7.3以及更高版本)。SAP基于HANA的商务套件将会使用NW7.4作为平台。

  ·如果现在HANA还不是你的产品的主要延续,那么你就需要使用并行脚本,运行数据复制到HANA中作为备选延续。根据SAP LT你可以定义一个实时或者定期复制的方案,你可以通过使用第二数据库从任何ABAP系统连接ADBC(或者原生SQL)来查询。

  ·用SAP HANA应用加速器你可以配置选择HANA作为第二延续而不需要做任何修正。可能会有一些限制如内核释放这种非侵入式的加速器:他只是提供给特殊的客户,你需要一个特殊的内核版本而且你需要检查者是否是可以用的。如果一个SAP标准程序希望数据库更新被写入数据库,那么下一个LUW可以读取到改变量,然后这个脚本就没有用了。因此SAP会帮助你找出这个脚本是不是可行的。

  ·SAP研发出自己的加速器(请允许我叫他们“纲领”加速器)和SAP CO-PA加速器一样它推动数据库的加速。这些加速器根据快速部署方案(RDS)进行部署。你可以根据客户具体的案例来开发自己的“纲领”加速器。

  ·利用AS ABAP7.4 你可以创建HANA优化的应用程序运行在一个利用HANA作为主要延续但是从商务套件复制程序的AS ABAP。

  那么HANA优化的应用到底好在哪里?开发应用会变得很简单:

  ·我们有更好的支持工具:你可以直接使用HANA视图作为数据库视图,调用存储过程变得容易。

  ·同样会有HANA优化的框架结构由一个HANA优化的ALV网格允许传呼,唯一可见的数据就是那些从数据库加载的。

  ·CTS可以直接把HANA 产品同ABAP代码一起传输。

  最主要的事情是我们可以开发HANA优化的应用并且对HANA的投资可以直接转化为价值。这些投资都是很安全的,因为只要他们是使用HANA作为主要延续的,我们可以配置这些应用到SAP商务套件中去,同时并行脚本也不再会是必须的了。

  还有另外一个原因关于HANA用一种并行的方式在优化脚本:如果你关于HANA遇到了问题或者SAP LT复制脚本,那些非HANA的代码还在那里并且是可以作为后备方案存在的。诚实得讲我不期望遇到这些问题,但是对客户来说管理这些工具还没有太多经验,这会成为一个优势:我们可以通过管理这些工具来获得经验可以犯一些错误但是系统还是有很高的可用性。

  但是为什么我们要建立HANA优化的应用程序的一个最主要的原因是, 他们有非常惊人的性能,因为他们可以直接从技术中获得收益:他们实时的给你接入数据,你可以浏览和实时计算大量数据,同样那你可以把他们实时可视化。

  关于优化HANA ABAP代码的规则

  我知道SAP现在正在这个话题上快速的发展,所以未来很多东西会发生改变,那么我来告诉你我是怎么看待这个问题的。

  ·许多发展的方针是不变的,举例来说避免选择太多的数据(太多行,太多列),组获取要好过选择..最后选择等等。

  ·首先选用开放的SQL并且如果有必要的话使用一些HANA专有的特征。

  ·学习SQL-和程序集理论化的SQL和UNION并使用JOINs。

  ·学习HANA专有的SQL特征和SQL代码,

  ·企业数据以及他们的模型对于一个成功的企业IT来说会是一种战略资产。避免把你的企业数据模型变成过于一般的数据模型。一般数据模型只能被在应用服务层进行评估,并不能从HANA得到收益。读一下我的博客,不要自作聪明,要变得聪明。

  ·把运算都放到数据库。

  ·从AJAX相似技术得到灵感,发展Paging-access到数据库图表,避免在主内存运行程序,只在必要的时候加载数据。

  ·改进你的BI/BO 和数据可视化技能,用仪表板来提高你的应用性能。当使用SAP UI5时,不要害怕去使用开源JAVA代码框架如D3。

  最后一个忠告:别以为你一直在做内存中的工作,因为作为ABAP开发员你知道如何运用内部表格。哪里有很多的不同,而且最重要的是HANA是一个有多核处理进程的优化平台。所以我建议你去熟悉HANA最基本的特征和程序语言,下面的链接可以作为一个比较好的起点:

  http://scn.sap.com/community/abap-for-hana

  http://scn.sap.com/community/abap/eclipse

  http://scn.sap.com/community/hana-in-memory

  关于BW on HANA的应用可以作为一个专门的话题创建一个博客,所以我就不在这里复述了。如果你想了解我们更多关于BW on HANA的应用,你应该去看一下Udo Patzelt在我们公司DSAG Jahreskongress时关于内存战略的讲话PPT。

  开拓者们的经验教训

  客户参与能帮我们很好的得到新的能力,但是这需要花费时间和很好的准备,有时你们用实验模型进行工作,所以在面对强大的功能和不稳定的产品时,你们习以为常认为是可以接受的。

  即使你认识到你们的原型并不涵盖所有的方面,我真的建议你们去保证你们所面对的方面会是你在真实生活中一直会面对的:用户界面结成尤其是在并行脚本时,部署和整合工具链,尤其在一些高级的脚本中(想想水晶报表的集成)。

  在做开拓者时,我开始思考关于商务智能的数据交换,发现关于那个主题有很多很有意思的方法,如数据科学和数据可视化工具是现在正在用的,而因此被叫做数据科学家。这本书从D3 开始显示数据科学家只能做一些JAVA脚本的程序运行,但是数据科学可不仅仅是创造一些简单的图形 。它意味着深入地洞察整个业务并且作为应用程序开发者我们会在未来把这个方面带入到SAP商务套件。

  在建立开拓者原型时,我选择D3的一个原因是为了学习更多的关于SAP UI5尤其是他的开放性上,然而实际上我选择用SAP BI工具来代替为运行数据创造一个面板,如果你想知道如何做的,你应该去看看VDL-可视化数据层,当然这个也是另一个博客的一个话题。

  挑战

  使用AS ABAP7,4创立一个HANA优化的应用是很简单的,但是如果建立一个以上呢?现在这变得有趣了:

  ·在HANA变为主要延续时,什么是最有效的做法能保证HANA优化应用可以顺利的被移植到SAP商务套件中去?

  ·我们有重复的代码-我们可以根据它们各自的结果去自动检测对方么?

  ·我们如何能把新的模式“代码到数据”建立的更有效获得更好的支持?

  SAP还在不断地提倡客户建议,我希望许多人能同SAP一起来为这些和其他的挑战找到解决方案。

  不过目前最大的挑战还是在知识的转移上,当我谈到DSAG Jahreskongress的问答环节我发现人们有很多很多的问题。我来举一个例子:有人问我,是否必须去使用Eclipse的ABAP还是仍然可以很好地应用老的SE80。答案很简单:你仍然可以使用SE80但是我推荐你去试用ABAP(因为很多新的功能可能只应用于Eclipse)

  为什么人们会问这样的问题?实际上它们不知道基于HANA的ABAP是进化或者革命。这是我希望我在这片博客里最希望能够讨论明白的地方。

  但是当你看这个网站:http://scn.sap.com/community/abap-for-hana 你会注意到两件事情,还没有太多的内容,已有的做出贡献的人是那些在解释如何使用SAP技术前很严谨的并且很有效的进行知识的传授的人。所以我希望这个能得到很快的改变,这个SCN将会变成关于ABAP和HANA信息交流的最有价值的地方。

  更多精彩尽在2013年4月18~4月20日第四届中国数据库技术大会,北京永泰福朋喜来登酒店。

  3月31日之前购票享8折优惠。


▲大会官网报名地址

1
相关文章