什么是 SAP HANA Code-to-Data 编程模型

发布时间 2023-07-23 23:03:48作者: JerryWang_汪子熙

我以前在 SAP 中国研究院 HANA 应用开发团队工作时,我们团队应用开发遵循的编程范式,是 SAP倡导的code-to-data(代码到数据)编程模型,示意图如附图所示。
在这里插入图片描述

同传统 ERP 应用在应用服务器上执行业务逻辑不同,Code-to-data是一种在数据库服务器上执行计算的方法。

这种方法的特色思路是,将计算逻辑(代码)带到数据所在地进行执行,从而避免将大量数据(在 ERP 领域,数据规模通常是数GB甚至更多)从数据库移到应用服务器进行处理。

在非 HANA 数据库的传统数据处理模型中,当应用需要处理存储在数据库中的数据时,通常会将数据从数据库中取出,传输到应用服务器,然后在应用服务器上进行计算。这种模型通常被称为"data-to-code"(数据到代码)。这种模型的问题是,随着数据量的增长,数据从数据库到应用服务器的传输成为了一个瓶颈。

Code-to-Data 编程范式的一个优点是,能够充分利用 SAP 自研的 HANA 这款内存数据库强大的计算能力。我们可以通过电商领域的一个实例来说明。

假设我们正在开发一个电子商务应用,需要分析过去一年的销售数据。这些销售数据存储在 HANA 内存数据库中。

在传统的data-to-code模型中,我们的常规做法是,编写一个 SQL 语句来从数据库中获取销售数据,然后将数据传输到 ABAP 应用服务器。

然后编写 ABAP 应用程序,在 ABAP Application Server 上处理这些数据,主要包括过滤、排序、分组等内表操作。程序需要花费的时间,和读取到应用服务器的内表数据规模线性相关。

相反,在code-to-data模型中,我们将这些应用处理逻辑,编写为一个数据库查询或存储过程(Store Procedure),并将其发送到数据库服务器执行。数据库服务器将处理数据,并将结果返回给应用。这样,在应用服务器和数据库之间,只需要传输最终的结果,而不是原始的数据。这将显著减少数据传输的时间和网络带宽的使用。

新的编程范式需要新的编程语言的支持。在SAP HANA数据库中,这种code-to-data的编程模型得到了广泛应用。开发者可以使用 SQL Script(一种数据库编程语言)编写存储过程或函数,然后在 HANA 数据库上执行这些代码。