重要链接:http://scn.sap.com/docs/DOC-35518
ABAP on SCN: http://scn.sap.com/community/abap
ADT on SCN: http://scn.sap.com/community/abap/eclipse
当2011年HANA刚发布时,大家争先恐后讨论的,SAP努力澄清的,是BW会不会消失。后来当roadmap渐渐清晰时,觉得当时描绘的ERP on HANA简直遥不可及,而BW on HANA也只是谨慎地期待。可是到今天,suite on HANA(SoH)已经大概发布了有半年时间了,而且也已经GA了好几个月了。SAP描绘的one box可能真的会实现。既然business suite跑在HANA上了,以前用ABAP开发的首先要更新知识了。在前一篇blog中,我们安装了开发工具。这一篇,let’s get our hands dirty,开始做点东西出来吧。
如果仅仅是让OPEN-SQL支持HANA,我想SAP早就可以发布SoH了。但是要想体现HANA的价值,一定要有一些不一样的,新的东西出来,比如:
- 通过ABAP DDIC访问HANA视图
- 集成ABAP与HANA SQLScript
- 针对HANA的特殊语句,特别优化
在探讨里程碑NetWeaver 7.4之前,我们先回顾一下在这之前ABAP与HANA是如何结合的。
我们知道SAP通过DBI作为数据库访问的接口,为每一个数据库开发对应DBSL,抽象出OPEN-SQL作为数据库访问语句,然后通过DBSL转换成底层数据库特定的SQL方言。
在NW 7.4之前,我们就有两种方式访问HANA,而且是以前SAP就提供的技术:
- EXEC SQL
- ADBC类
它们都是用底层数据库的SQL直接与DB通讯的方法。Thomas的blog里面有介绍这两种方法的代码写出来是什么样子。
虽然我们都无数次地听到过SAP介绍基于HANA的应用开发范例:将耗费资源的逻辑下沉到数据库,减少应用服务器与DB之间的数据传递,但是可能很少有人去实际体验。在这个第二篇入门博客里,我做一个实验,我们一起来体验一下suite on HANA以后到底带来什么样的UX。
我们假设数据库有一张表,其中有一个时间字段,可以代表订单的交货时间(这里的假设是都是未交付订单,时间都在未来),那么我要计算所有订单交货时间据今天一共有多少天。我搜索的数据集为100万条记录。
在传统的ABAP开发里,由于通用性的要求,OPEN-SQL并不提供什么办法能让我们将这种计算推向DB层面。所以逻辑大概是:
SELECT
计算时间差.
汇总.
ENDSELECT
或者
SELECT.
LOOP 内表
计算时间差
汇总时间
ENDLOOP.
这里我要用到ABAP in Eclipse的一个功能来展示运算时间,叫做ABAP profiling
选择我们要运行的程序以后,便开始搜集相关的trace。运行结束后,我们可以双击trace打开如下一个结果:
好吧,我的示例代码写的不足够好,因为我选择了SELECT ENDSLECT的方式,导致DB时间占据了主要。如果我采取先放到内表的方式,可能更好一些。
这个结果并没有什么意外的,DB时间占去了几乎所有运行时间。不到11s的运行时间,可以忍受,但是考虑到如此简单地一个功能,可能就无法忍受了。
那么我们将逻辑推向HANA,利用HANA计算出时间差汇总数据(你可以用SQL语句也可以使用存储过程,up to you)。我们可以利用HANA的DAYS_BETWEEN和SUM直接算出汇总数据。Profiling的结果如下:
时间骤降到了1.68秒。如果再经过调优,时间会更短。
所以ABAP on HANA的开发是混合模式的,当我们考虑到开发效率和通用性的时候,使用OPEN-SQL,但是这只会利用到一小部分HANA的功能,比如你在OPEN-SQL里做聚合的时候;但是当遇到某些特殊场景要做性能优先考虑的时候,我们会混合ABAP和HANA的开发,短时间内相应结果,给用户一个最佳的体验。
后续的blog,要说说NW 7.4的比较酷的东西了,怎么更方便的从ABAP调用HANA对象。
相关推荐
ABAP on SAP HANA – Building an End-to-End App from HANA via ABAP to SAPUI5
ABAP调用hana存储过程
sap hana 标准教材 按照教材可以上学会HANA程序开发知识
CD911_CN-基于SAP Business Suite on HANA 的ABAP优化开发
支持STUDIO 2.3.4版本使用,直接下载后本地导入即可
this technology has been on the market for almost two years now. During this time, its use potential increased significantly: From an in-memory database for data marts, which supplements SAP ...
EDW on HANA验证测试报告V3 PPT
ABAP开发从入门到精通_高清自学版 SAP+ABAP开发从入门到精通 SAP开发自学必读 SAP SAP开发自学入门到精通完整版HANA开发
ABAP for hana
SAP HANA系统的查询语法有了许多更新,使用新语法能提高查询速度,特别是大数据的。本文档里面的内容放了大量的新语法,欢迎各位下载。
SAP BW 7.4 SP5 powered by SAP HANA and further Roadmap
HANA SQL Statement - HANA_ABAP_ApplicationLog_OrphanRecords
HANA的内存数据库(SAP In-Memory Database, IMDB)是其重要组成部分,包括数据库服务器(In-Memory Database Server)、建模工具(Studio)和客户端工具(ODBO、JDBC、ODBC、SQLDBC等)。HANA的计算引擎(Computing ...
ABAP Development for SAP HANA 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
S4 changes for VC configuration ...Not all types of object dependencies and syntax elements are supported for Variant Configuration on HANA. The following features are not supported:
HA400 ABAP programing for HANA
sap press doc 解压密码:abap_developer
BW ON HANA MODELING建模手册相关资料 关于SAP BW产品在HANA平台详细简介
在配置界面中填入Hostname: hana.91abap.com,Instance Number: 00 Description: kemiya 4.填完配置信息,Next按钮会变成可点击,点击Next按钮。到配置账户信息界面。 5.选择Authentication by database ...