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 原生应用。
相关文章
|
27天前
|
开发者 数据处理 数据管理
SAP HANA 的不同类型
SAP HANA 的不同类型
38 9
SAP HANA 的不同类型
|
27天前
|
SQL Android开发
创建 SAP ABAP CDS View 保存失败 - Dependencies DDL source - View Entity not written
创建 SAP ABAP CDS View 保存失败 - Dependencies DDL source - View Entity not written
8 0
创建 SAP ABAP CDS View 保存失败 - Dependencies DDL source - View Entity not written
|
27天前
|
SQL 数据库 索引
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
20 1
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
|
27天前
|
数据库 存储 监控
什么是 SAP HANA 内存数据库 的 Delta Storage
什么是 SAP HANA 内存数据库 的 Delta Storage
17 0
什么是 SAP HANA 内存数据库 的 Delta Storage
|
23天前
|
存储
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
21 0
|
23天前
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
16 1
|
23天前
|
人工智能
Suno AI 生成 SAP ABAP 顾问之歌
Suno AI 生成 SAP ABAP 顾问之歌
19 1
|
23天前
|
存储 安全 数据库
SAP ABAP 中数据类型 xstring 的使用介绍
SAP ABAP 中数据类型 xstring 的使用介绍
20 0
|
23天前
|
Java BI API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
15 0
|
27天前
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
16 1
什么是 SAP ABAP 里的 Subscreen