SAP ABAP CDS View 和 HANA CDS View 相同点和不同点辨析

简介: SAP ABAP CDS View 和 HANA CDS View 相同点和不同点辨析


SAP ABAP CDS View

SAP ABAP CDS View 是 SAP 实现 Code Push Down(也称 Code to Data) 的一种技术手段,即将部分取数逻辑,从应用服务器推送到数据库层,从而充分发挥 SAP HANA 强大的数据处理能力。

值得一提的是,虽然如上图所示,大多数时候 提到 CDS View 时,都伴随着 HANA 数据库,然而 CDS View 并未和 HANA 深度绑定;ABAP 7.40 SP05 加上 SAP 支持的数据库上,都能正常使用 ABAP CDS View.

SAP 旗舰级产品 SAP S/4HANA,是 CDS View 技术的重度使用者,在其前身 SAP ECC 四万多张核心数据库表的基础上,开发了分别位于 Basic,Composite 和 Comsumption 三层的 CDS View:

SAP S/4HANA 系统中 CDS View 总数,在 2005 这个版本里超过了四万个。虽然从总数上来看和 ECC 核心四万多张表持平,但 SAP S/4HANA 通过引入 CDS View,借助 Fiori Elements 框架,提供了对 OData 和 Fiori 界面的自动生成功能,同时消除了 ECC 中用于 Analytics 报表应用消费而创建的临时表和聚合表(Aggregation),使得 SAP S/4HANA 能通过单一系统,同时完成 OLTP 和 OLAP 应用的运行。

大学上《数据结构》专业课时,教材将程序定义为数据结构 + 算法。

而以前传统的 SAP ERP 产品,可以理解成海量的底层数据库表 + ABAP 代码的组合。即散落在各个数据库表内的业务数据,通过 OPEN SQL 或者 Function Module 从数据库层读取到 ABAP 应用层,存储在 ABAP 内表变量里,然后由各种 ABAP 关键字对这些内表变量进行处理,将结果展现在 UI 或者写回到数据库里。

如下图所示,使用了 CDS View 的 SAP S/4HANA,对于 SAP 标准开发而言,并不意味着减少了开发量——总的开发复杂度保持不变,只不过开发复杂度,在之前传统产品里主要集中在 ABAP 应用层,而在 SAP S/4HANA 里随着 Code Push Down,开发复杂度转移到了数据库层。

对于我个人来说,我其实更喜欢在 ABAP 应用层做开发,而非在 ABAP Development Tool 里编辑 CDS View. SAP S/4HANA 标准产品里这些动辄四五百行源代码起步的 CDS View,有不少都是我在 SAP 成都研究院的 SAP S/4HANA 开发团队的同事们负责开发的,对于同事们开发这些复杂度极高的视图的功力,我非常佩服。

下图是 SAP S/4HANA 2005 里各 Business Area 对应的 CDS View 数量排行表,可以看出 FIN 凭借其业务本身的复杂度而遥遥领先。

CDS View 源代码里大量的注解,用于 Fiori UI 以及 OData 服务的自动生成。我之前的微信公众号文章,也写过很多这种注解的工作原理:

SAP HANA CDS View

SAP HANA CDS View 在 SAP HANA XS(HANA Extended Application Services)数据库中存储的 DDL 文件里进行创建和维护。

HANA CDS View 为 SAP HANA 原生应用程序开发服务,它们与 SAP HANA 数据库深度绑定,只能与 HANA 数据库一起使用。

当从头开始开发一个新的 HANA 原生应用时,SAP 推荐使用所谓的 SAP HANA 2-tier Architecture. 在这个架构下,承载应用程序与控制流逻辑的 XS Services 已经位于 HANA 内,所以应用程序能获得相较传统三层架构更高的性能。

因此,从实现 Code Push Down 这个目的来看,SAP ABAP CDS View 和 HANA CDS View 殊途同归,二者都是致力于将部分逻辑,从传统的应用服务器下推到数据库层的技术手段之一。

二者的区别也很明显:

  1. ABAP CDS View 位于 ABAP 应用服务器中。使用 ABAP Development Tool 登录应用服务器,编写 CDS View 源代码。激活之后,会在应用服务器上生成并保存一个 Data Definition Entity(用于存储 CDS View 源代码)和一个 DDL SQL View(能用 SE11 打开,但是不能编辑)。

而 HANA CDS View 位于 HANA XS Services 内。

  1. ABAP CDS View 能在所有 SAP 支持的数据库上使用,前提是 ABAP 版本大于等于 7.40 SP05. 而 HANA CDS View 只能在 HANA 上使用。

  1. ABAP CDS View 的数据仍然采用 ABAP OPEN SQL,而 HANA CDS View 的数据读取采用 Native SQL 完成。
  2. ABAP CDS View 用于开发 ABAP 技术栈的应用程序,HANA CDS View 用于开发 HANA 原生应用。
相关文章
|
4天前
|
存储
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
21 0
|
4天前
|
存储 安全 数据库
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
19 3
|
4天前
|
数据库
什么是 SAP S/4HANA 的 Brown Field 迁移和 Green Field 迁移
什么是 SAP S/4HANA 的 Brown Field 迁移和 Green Field 迁移
8 1
|
4天前
|
前端开发 数据库 开发者
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
6 1
|
4天前
SAP ABAP OData 服务里需要指定 guid 类型的请求参数时,正确语法是什么?
SAP ABAP OData 服务里需要指定 guid 类型的请求参数时,正确语法是什么?
6 1
|
4天前
|
安全 API 数据库
SAP ABAP OData 中 Function import 的概念介绍
SAP ABAP OData 中 Function import 的概念介绍
13 2
|
4天前
|
SQL 监控 Oracle
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
11 0
|
4天前
|
存储 前端开发 Linux
在 SAP ABAP 系统里访问 FTP 服务器
在 SAP ABAP 系统里访问 FTP 服务器
9 0
|
4天前
|
SQL 负载均衡 监控
SAP ABAP DBSQL_SQL_ERROR 错误
SAP ABAP DBSQL_SQL_ERROR 错误
14 2
|
4天前
|
存储 前端开发 应用服务中间件
使用 SAP ABAP 执行 FTP 操作
使用 SAP ABAP 执行 FTP 操作
8 0
http://www.vxiaotou.com