重要链接: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 – 构建从HANA经ABAP到SAPUI5的端到端应用 #### 概述 本文档主要介绍了如何使用ABAP在SAP HANA平台上构建一个从数据库层(SAP HANA)到前端展示层(SAPUI5)的完整应用程序。此文档由Jens ...
首先,文件标题“HA400 ABAP Programming on SAP HANA.pdf”明确指出了本教材聚焦于在SAP HANA平台上进行ABAP编程的教学。ABAP(Advanced Business Application Programming)是SAP系统中用于开发应用的主要编程语言...
SAP HANA作为一种内存计算平台,提供了高性能的数据处理能力,而ABAP作为SAP的核心编程语言之一,则被广泛用于构建业务逻辑。结合使用HANA存储过程与ABAP程序,可以充分发挥SAP HANA的优势,实现高效的业务流程处理...
标题中的“HANA STUDIO ABAP DEVELOPMENT TOOL”是指SAP HANA Studio中的一个特定模块,专门用于ABAP(Advanced Business Application Programming)开发。SAP HANA Studio是SAP HANA平台的一个集成开发环境(IDE)...
HANA的核心特点之一是能够对大量数据进行快速的查询和处理。在使用HANA进行数据查询时,我们经常需要引入参数来动态地影响查询的结果。这些参数可以在查询执行前进行设置,也可以在执行过程中提示用户输入,以适应...
### ABAP for HANA:深度解析与核心技术 #### 引言 随着信息技术的快速发展,企业对数据处理的需求日益增加,特别是在大数据和实时分析领域。ABAP for HANA 的出现为解决这些问题提供了强大的工具。本文将从 ABAP ...
首先,"ABAP开发从入门到精通"这一主题涵盖了学习ABAP的基础到高级概念。对于初学者,入门阶段通常包括理解ABAP的基本语法,如数据类型、变量声明、控制结构(如IF语句和LOOP语句)、函数调用等。此外,还需要掌握...
文档中提到的《基于SAP Business Suite on HANA 的ABAP优化开发》(CD911_CN)一书,由Yonghui Wang和Song Fu编写,日期为2014年3月13日。这本书为SAP开发者提供了基于SAP Business Suite(SAP 商务套件)在HANA...
### EDW on HANA验证测试报告知识点解析 #### 一、测试背景与目的 - **测试背景**:随着业务需求的增长和技术的发展,企业对于数据处理的速度和效率提出了更高的要求。传统的关系型数据库如Oracle在面对大规模数据...
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 ...
SAP S/4HANA On-Premise和S4 HANA Cloud是SAP提供的两种不同部署方式的智能ERP解决方案,分别适用于不同需求的企业。S/4HANA On-Premise版本是一个基于SAP HANA内存数据库的ERP业务套件,允许企业在私有云或公有云上...
SAP BW on HANA是SAP公司提供的一款先进的数据仓库技术,它将SAP Business Warehouse(BW)产品与SAP HANA数据库结合,通过利用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 ...
### HA400 ABAP Programming for SAP HANA #### 一、课程介绍 HA400 ABAP编程针对SAP HANA是SAP提供的一项专业培训课程,旨在帮助学员掌握在SAP HANA环境下进行ABAP开发的核心技能。本课程不仅涵盖了理论知识,还...
4. **ABAP开发环境**: 使用SAP GUI或Web IDE for SAP HANA等工具进行ABAP开发,包括源代码编辑、调试、测试和部署。 5. **ABAP数据类型**: 包括内置数据类型(如CHAR, NUMC, INT, DEC等)和自定义数据类型(如...
SAP HANA 升级自开发程序修改案例 SAP HANA 升级是将 SAP R3 系统升级到 HANA 数据库的过程。在这个过程中,需要修改自开发程序以适应 HANA 数据库的特性。本文将介绍 SAP HANA 升级自开发程序修改的方法和案例代码...