当前位置:网站首页>#云原生征文# 在 Google Kubernetes Cluster 上使用 HANA Expression Database Service
#云原生征文# 在 Google Kubernetes Cluster 上使用 HANA Expression Database Service
2022-06-26 09:33:00 【51CTO】
我们知道,Cluster 是 Google Kubernetes Engine (简称GKE)的基础,代表容器化应用程序的 Kubernetes 对象都在集群之上运行。
Google Kubernetes Engine (GKE) 提供了一个托管环境,开发人员可以使用 Google 基础架构在 GKE 中部署、管理和扩缩容器化应用。GKE 环境包括多个 Compute Engine 实例,这些实例组合在一起就形成了 Google Kubernetes Cluster.
SAP HANA Expression 是 SAP HANA 的简化版本,旨在在笔记本电脑和其他主机(包括云托管的虚拟机)上运行,当然也就支持在本文刚刚描述的 Google Kubernetes Cluster 上运行。这个版本除了支持 SAP HANA传统的内存数据库功能之外,还提供 bring-your-own-language 等多种技术栈,支持微服务、预测分析和机器学习算法,以及用于构建洞察驱动应用程序的地理空间处理等特性。

本文将详细介绍如何在 Google Kubernetes Cluster 上部署并使用 HANA Expression Database Service.
在 Google Cloud Platform 上创建 Google Kubernetes Cluster 实例
登录 Google Cloud Platform 控制台:

点击控制台左上角的 Hamburger 菜单,创建一个新的 Kubernetes Cluster:

维护 Cluster 的名称,选择恰当的版本,点击 Customize 进行定制化:
为 Cluster 指定 CPU 和内存参数,选定 Ubuntu 作为操作系统。Cluster 的尺寸设置为 1.
Cluster 创建完并成功部署后,点击 Connect 按钮进行连接。

连接成功之后,就可以使用 Cloud Shell 操作集群了:
Cloud Shell 提供了命令行的方式同 Cluster 进行交互。

在 Google Kubernetes Cluster 上部署 HANA Expression Database Service
使用以下命令创建一个 secret 以获取 Docker 镜像:
kubectl create secret docker-registry docker-secret --docker-server=https://index.docker.io/v1/ --docker-username=xxx --docker-password=yyyyyy [email protected]
创建一个 yaml 格式的部署配置文件(Deployment Configuration File), 另存成 hxe.yaml 文件:
这个 yaml 文件里定义了一个 HANA Expression 的 Docker 镜像:store/saplabs/hanaexpress:2.00.030.00.20180403.2
使用如下命令行将这个 Docker 镜像部署到 Kubernetes Cluster 上:
- kubectl create -f hxe.yaml
- kubectl describe pods
等待部署成功结束:

执行命令行 kubectl get pods,确保 pod 状态为 Running,然后进入 Pod 容器内部:
kubectl exec -it <<pod-name>> bash
此时就可以使用 SQL 命令行,连接运行在 Pod 里的 HANA Expression 实例了:
hdbsql -i 90 -d systemdb -u SYSTEM -p HXEHana1
给数据库添加 document store 的支持:alter database HXE add 'docstore';
从 SQLPAD service 获得 external IP 地址:
kubectl get services

有了这个外部可以访问的 IP 地址之后,访问其 3000 端口,就可以在浏览器里登录 SQLPAD 了:

点击 Sign In,创建一个 Administration account.

使用 Connections 菜单,连接 HANA Expression 实例里的数据库表:
从 kubectl get services 命令行结果列表里找到 hxe-connect,抄下其 External IP 地址:

新建一个数据库连接,维护刚刚抄下来的 External IP 地址,数据库用户名和密码,Tenant 等登录信息:

数据库连接建立连接之后,就可以新建一个 Query,对其进行读写操作。

创建一个名叫 quotes 的 document store, 并插入一些测试数据:
创建一个 Column 表,开启 Fuzzy Search 的支持:
将插入到 document store collection 的数据拷贝到上面的 Column 表里:
查询与 wait 相似度最低的词:
总结
至此,我们完成了在 Google Kubernetes Cluster 里操作 HANA Expression Database Service 的操作步骤。从整个过程不难感觉出,将包含 HANA Expression 的 Docker 镜像部署在 Google Kubernetes Cluster 并运行在 Pod 内,实现了 HANA Expression 服务的开箱即用,从而避免了 On-Premises 部署模式下 HANA Expression 繁琐的安装和配置步骤。
【本文正在参加云原生有奖征文活动】,活动链接: https://ost.51cto.com/posts/12598
边栏推荐
- 逻辑英语结构【重点】
- halcon 光度立体
- Halcon photometric stereoscopic
- Construction practice of bank intelligent analysis and decision-making platform
- 软件测试---如何选择合适的正交表
- My creation anniversary
- 爬虫相关文章收藏:pyppeteer 、Burpsuite
- LeetCode 0710.黑名单中的随机数 - 预处理实现O(1)取值
- [trajectory planning] testing of ruckig Library
- A concise tutorial for getting started with go generics
猜你喜欢

【CVPR 2021】Unsupervised Pre-training for Person Re-identification(UPT)

There is a strong demand for enterprise level data integration services. How to find a breakthrough for optimization?

Badge series 5: use of codecov

Industrial and enterprise patent matching data (hundreds of thousands of data) 1998-2014

Joint Noise-Tolerant Learning and Meta Camera Shift Adaptation for Unsupervised Person Re-ID

2021-11-22 运动规划杂记

Logview Pro can be used if the log is too large

测试须知——常见接口协议解析

Single sign on logic

Champions League data set (Messi doesn't cry - leaving Barcelona may reach another peak)
随机推荐
Redis 新手入门
PHP extracts TXT text to store the domain name in JSON data
Leetcode connected to rainwater series 42 (one dimension) 407 (2D)
pcl install
LeetCode 基本计算器 224. 227. follow up 394
[trajectory planning] testing of ruckig Library
Logview Pro can be used if the log is too large
[open5gs] open5gs installation configuration
测试须知——常见接口协议解析
How does flutter transfer parameters to the next page when switching pages?
jz2440---使用uboot烧录程序
Redis notes (15) - Pipeline (the client packages and sends batch commands to save network overhead)
Solve Django's if Version (1, 3, 3): raise improverlyconfigured ('mysqlclient 1.3.3 or new is required
Halcon photometric stereoscopic
Optimization of power assisted performance of QPM suspended window
SQL query duplicate record
深度学习(初识tensorflow2.版本)之三好学生成绩问题(1)
Wechat official account reported error 10003
Creation and use of XSync synchronization script (taking debian10 cluster as an example)
SQL modification of table structure