重要链接: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系统中用于开发应用的主要编程语言...
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 ...
标题中的“HANA STUDIO ABAP DEVELOPMENT TOOL”是指SAP HANA Studio中的一个特定模块,专门用于ABAP(Advanced Business Application Programming)开发。SAP HANA Studio是SAP HANA平台的一个集成开发环境(IDE)...
SAP HANA作为一种内存计算平台,提供了高性能的数据处理能力,而ABAP作为SAP的核心编程语言之一,则被广泛用于构建业务逻辑。结合使用HANA存储过程与ABAP程序,可以充分发挥SAP HANA的优势,实现高效的业务流程处理...
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在面对大规模数据...
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 升级自开发程序修改的方法和案例代码...