头图

这是 Jerry 2021 年的第 58 篇文章,也是汪子熙公众号总共第 335 篇原创文章。

我们在 SAP 官方网站 help.sap.com 输入关键字 SAP HANA 之后:

会看到很多搜索结果:

这么多和 HANA 相关的解决方案,Jerry 当然不可能每一种都接触过,这里只谈一谈我有过粗浅了解的几款。

SAP HANA Platform

这当然就是 SAP 的王牌产品了,SAP HANA 是一个现代的内存数据库和开发平台,支持本地部署或云端部署。SAP HANA 平台的数据库服务,能够以列的方式提供数据的存储和访问。SAP HANA 允许在同一个系统上进行在线事务处理 (OLTP) 和在线分析处理 (OLAP),而无需冗余数据存储或聚合。从其名称的 Platform 不难看出,SAP HANA 不仅仅是一个内存数据库,而且也是一个应用开发平台,其上可以开发应用程序、运行基于 SAP HANA 构建的自定义应用程序并进行生命周期管理。

SAP HANA Enterprise Cloud

https://www.sap.com/products/...

SAP 官网对 SAP HANA Enterprise Cloud 的定义,有三个关键词:

  • Cloud
  • Secure
  • Privately managed

SAP HANA 企业云是一个完全可扩展且安全的私有托管云解决方案,能够帮助企业在云环境中充分释放 SAP HANA 的全部价值,通过创新加速增长、推动数字化转型并快速交付业务成果。

SAP HANA Express Edition

SAP HANA Express Edition 是 SAP HANA 的一个简化版本,能够在符合硬件要求的个人电脑和其他主机,例如托管在云服务提供商上的虚拟主机里运行。

SAP HANA Express Edition 可以免费使用最高尺寸为 32GB 的内存数据库,也可以通过购买额外的 License 来扩展到 64GB,96GB 或 128GB 几个档次。

SAP HANA Express Edition 是开发人员极佳的学习 SAP HANA 原生开发技术的途径之一。尽管如此,并不是所有开发人员的电脑,都满足其安装和运行配置要求:

  • 至少 16GB 内存,推荐 24 GB
  • 推荐 120 GB 的硬盘空间
  • 至少双核 CPU,推荐 4 核

SAP HANA Cloud

如果开发人员的电脑配置达不到安装 SAP HANA Express Edition 的最低要求,可以选择本文介绍的 SAP HANA Cloud 的试用版。

SAP HANA Cloud 是一种基于 multi-cloud 的数据库即服务 (DBaaS, Database as-a-Service) 解决方案,使客户能够随时随地对数据进行存储,分层和访问。

SAP HANA Cloud 不仅保留了 SAP HANA 本地部署的所有功能,而且作为一个云原生平台,还具备自动软件更新,弹性伸缩,帮助企业降低 Total Cost of Ownership 等优势。SAP HANA Cloud 既可用作独立的数据库和开发平台解决方案,也能作为企业本地部署环境的扩展方案。

如今开发人员在 SAP 业务技术平台 (SAP Business Technology Platform,下文简称 SAP BTP) 上也可以免费体验 SAP HANA Cloud 的试用版了。

Jerry 之前的文章曾经介绍过 SAP BTP 上如何创建 ABAP, Kyma 和 Workflow 的服务实例:

从这些文章描述的步骤能够发现,在 SAP BTP 上的这些操作都是围绕 Services Subscriptions 进行的,具体步骤大同小异,这也降低了 SAP BTP 的学习成本。

目前 SAP HANA Cloud 可以在 cf-eu10 和 cf-us10 这两个 Regions 使用。

在上述两个 Regions 里选其一,创建一个新的 Subaccount,把 SAP HANA Cloud 添加到该子账户的 Entitlements 设置里,即可在 SAP BTP 上创建新的 SAP HANA Database 实例:

给新建的数据库实例命名,并维护 DBADMIN 用户的初始密码。

因为本文稍后会演示如何使用 Node.js 代码读取该数据库实例包含的数据库表数据,因此在允许连接设置里,选择“Allow all IP addresses”:

实例创建成功后,我们可以使用各种工具,监控其运行状态并进行各种开发。

其中一种开发方式,就是点开下图的“Open in SAP HANA Database Explorer”,打开这个在线开发工具。

在 SAP HANA Database Explorer 里,可以使用 SQL 语句创建新的数据库表,并插入数据:

当然对于海量数据,也可以通过从其他云存储服务提供商比如 Amazon,Azure 和阿里云或者本地 csv 文件的方式来导入。

如下图所示,我在名为 PLAIN 的 schema 下面的数据库表 REGIONS 里,创建了 4 条测试数据。稍后我会使用 Node.js 程序将这些数据读取出来。

除了使用 SAP HANA Database Explorer 操作 SAP HANA Cloud 之外,我们还可以使用 SAP Business Application Studio (下文简称 BAS)进行 HANA 相关的开发。

为此,我们必须先在 BAS 里创建一个类型为 SAP HANA Native Application 的 Dev Space:

因为 BAS 毕竟只是一个在线开发工具,编辑的全是 Design Time 的资源,这些资源最终需要部署到 SAP BTP 上的某个运行环境里去才能执行,比如 ABAP, CloudFoundry 或 Kyma 等等。

本文选择将 BAS 里的资源同 CloudFoundry 环境进行绑定。点击下图这个图标,将当前 Dev Space 绑定到 SAP BTP CloudFoundry 环境。

注意此时的面板显示:no targets, 因此我们需要指定一个 CloudFoundry endpoint:

点击加号图标,选择 CloudFoundry 对应 Region 的 API endpoint,按提示输入用户名和密码即可完成登录。

之后就能在 Business Application Studio 里看到之前在 SAP BTP Cockpit 里创建的 HANA Cloud 实例:

接下来我们可以基于模板创建一个新项目或者从 Github 上克隆一个项目到 BAS 里:

之后就能在 SAP BAS 里创建和 HANA 数据库相关的资源了,比如通过新建后缀为 .hdbtable 的文件来定义 HANA 数据库表。

点击 Deploy 图标,将 BAS 里创建的数据库表定义,部署到对应的 CloudFoundry 环境去。

部署成功之后,SAP BAS 里创建的 HANA 数据库表定义,就同步到 SAP HANA Database Explorer 里去了,并能够继续通过后者进行读写操作。

如果想使用编程语言比如 Node.js 访问 HANA Cloud 数据库表里的数据,首先从右键菜单里,选择 Copy SQL Endpoint, 得到该 HANA Cloud 数据库实例的 Endpoint:

然后命令行 npm install --save @sap/hana-client,安装基于 Node.js 的 HANA Client 工具库。

使用 Node.js 访问 SAP HANA Cloud 数据的一个例子的源代码如上图所示。

执行结果,能够成功打印出数据库表 REGION 里的内容。

这个 hana-client 库的使用方式类似 ADBC (ABAP Database Connectivity) 和 JDBC (Java Database Connectivity):

关于 ADBC 和 JDBC 的类比,参考我的 SAP 社区博客:

ADBC and JDBC

总结

本文首先介绍了几种名称包含 HANA 的 SAP 解决方案,接着分享了使用 SAP HANA Database Explorer 和 SAP Business Application Studio 在 HANA Cloud 实例中进行数据库开发的两种方式。最后,给出了使用 hana-client 读取 SAP HANA Cloud 数据库表内容的源代码。

感谢阅读。

Jerry 的 ABAP 专题

logo.png

logo1.png

更多Jerry的原创文章,尽在:"汪子熙":


注销
1k 声望1.6k 粉丝

invalid