这是 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 的服务实例:
- ABAP 开发者上云的时候到了 – 当初大家能够收费应用 SAP 云平台 ABAP 环境的试用版了
- 一步步把 SAP UI5 利用部署到 SAP BTP Kyma 运行环境中去
- SAP 业务技术平台 (BTP) 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 专题
- Jerry 的 ABAP, Java 和 JavaScript 乱炖
- ABAP 开发人员将来应该学些什么
- Jerry 2017 年的五一小长假:8 种经典排序算法的 ABAP 实现
- Jerry 的 ABAP 原创技术文章合集
- 300 行 ABAP 代码实现一个最简略的区块链原型
- 应用 Java+SAP 云平台 +SAP Cloud Connector 调用 ABAP On-Premise 零碎里的函数
- 在 SAP 云平台的 CloudFoundry 环境下生产 ABAP On-Premise OData 服务
- ABAP vs Java,蛙泳 vs 自由泳
- 聊聊 C 语言和 ABAP
- 入手应用 ABAP Channel 开发一些小工具,晋升日常工作效率
- 我用 ABAP 做过的那些无聊的事件
- 不喜爱 SAP GUI?那试试用 Eclipse 进行 ABAP 开发吧
- 应用 Visual Studio Code 编写和激活 ABAP 代码
- 你的 ABAP 程序给佛祖开过光么?来试试 Jerry 这个小技巧
- 在 SAP 云平台 ABAP 编程环境上编写第一段 ABAP 程序
- SAP 官网公布的 ABAP 编程标准
- ABAP Code Inspector 那些暗藏的性能,您都晓得吗?
- 还在用 ABAP 进行 SAP 产品的二次开发?来理解下这种全新的二次开发理念吧
- ABAP Netweaver 体内的那些寄生式编程语言
- 从 SAP 社区上的一篇博客开始,聊聊 SAP 产品命名背地的那份情怀
- 云端的 ABAP Restful 服务开发
- 如何在 SAP 云平台 ABAP 编程环境里把 CDS view 裸露成 OData 服务
- 应用 abapGit 在 ABAP On-Premises 零碎和 SAP 云平台 ABAP 环境之间进行代码传输
- 30 分钟用 Restful ABAP Programming 模型开发一个反对增删改查的 Fiori 利用
- Jerry 带您理解 Restful ABAP Programming 模型系列之二:Action 和 Validation 的实现
- Jerry 带您理解 Restful ABAP Programming 模型系列之三:云端 ABAP 利用调试
- SAP 云平台上的 ABAP 编程环境里如何生产第三方服务
- ABAP 开发者上云的时候到了 – 当初大家能够收费应用 SAP 云平台 ABAP 环境的试用版了
- 学而不思则罔 – SAP 云平台 ABAP 编程环境的由来和实用场景
- SAP 云平台里的三叉戟利用
- 如何基于 Restful ABAP Programming 模型开发并部署一个反对增删改查的 Fiori 利用
- SAP 2019 TechEd Key Note 解读:云时代下 SAP 从业人员如何做二次开发?
- 有哪些 ABAP 关键字和语法,到了 ABAP 云环境上就没方法用了?
- ABAP 开发环境终于反对以驼峰命名法主动格式化 ABAP 变量名了
- 利用 ABAP 740 的新关键字 REDUCE 实现一个理论工作工作
- 一段让人瑟瑟发抖的 ABAP 代码
- 昨日万圣节 ABAP 怪兽级代码谜团,颁布答案啦
- 介绍一种在 ABAP 内核态进行内表高效拷贝的办法
- 应用 SAP Cloud Application Programming 模型开发 OData 的一个理论例子
- 当 ABAP 遇见普罗米修斯
- 应用 ABAP 绘制可伸缩矢量图
- ABAP 开发环境语法高亮的那些事儿
- SAP 谬误音讯调试之七种武器:让所有的谬误音讯都能被定位
- 应用 ABAP 操作 Excel 的几种办法
- SAP GUI 里的收藏夹事务码管理工具
- SAP GUI 和 Windows 注册表
- 有了 Debug 权限就能干坏事?小心了,你的一举一动尽在系统监控中
- ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX 这些东东是什么鬼
- 实现 ABAP 条件断点的三种形式
- 应用 SAT 跟踪监控从浏览器关上的 SAP 利用的性能和调用栈
- 一个 13 年 ABAP 老兵的倡议:理解这些基础知识,对 ABAP 开发有百利而无一害
- SAP ABAP Netweaver 容器化, 不可能实现的工作吗?
- SAP 产品加强技术回顾
- SAP API 开发方法大全
- 浅谈 Java 和 SAP ABAP 的动态代理和动静代理,以及 ABAP 面向切面编程的尝试
- SAP ABAP 应用服务器的 HTTP 响应状态码(Status Code)
- SAP ABAP 里存在 Java List 这种汇合工具类么?CL_OBJECT_COLLECTION 理解一下
- ABAP 面试题系列:写一组会呈现死锁 (Deadlock) 的 ABAP 程序
- SAP ABAP Netweaver 服务器的规范登录形式解说
- SAP ABAP 关键字语法图和 ABAP 代码主动生成工具 Code Composer
- SAP ABAP SM50 的另类用处 – ABAP 工作过程对数据库表读取操作的检测
- 对于 SAP ABAP 字符变量和字符串变量字符个数的一个知识点,和一个血案
- SAP ABAP 一组关键字 IS BOUND, IS NOT INITIAL 和 IS ASSIGNED 的用法辨析
- SAP ABAP 和 Java 里的弱援用 (WeakReference) 和软援用(SoftReference)
- SAP AMDP 介绍 – ABAP 托管的 HANA 数据库过程
- 给你的 ABAP 对象打上标签(Tag)
- 历史上的明天:编程语言中 null 援用的十亿美元谬误
- ABAP Development Tool 代码模板和其余一些实用技巧汇总
- SAP ABAP Development Tool 进步开发效率的十个小技巧
- 如何在 SAP BTP 平台 ABAP 编程环境里生产基于 SOAP 的 Web Service
- ABAP 真的会过期吗?聊聊 ABAP 的过来,当初和将来
更多 Jerry 的原创文章,尽在:” 汪子熙 ”: