当前位置: 首页 > Web前端 > JavaScript

在GoogleKubernetesCluster上使用HANA表达式数据库服务

时间:2023-03-27 00:42:18 JavaScript

我们知道Cluster是GoogleKubernetesEngine(简称GKE)的基础,代表容器化应用的Kubernetes对象都运行在集群之上。GoogleKubernetesEngine(GKE)提供了一个托管环境,开发人员可以在其中使用Google基础架构部署、管理和扩展容器化应用程序。GKE环境由多个ComputeEngine实例组成,这些实例组合起来形成一个GoogleKubernetes集群。SAPHANAExpression是SAPHANA的简化版本,旨在运行在笔记本电脑和其他主机上,包括云托管的虚拟机,当然,它也支持在本文刚刚描述的GoogleKubernetes集群上运行。该版本除了支持SAPHANA传统的内存数据库功能外,还提供bring-your-own-language等多种技术栈,支持微服务、预测分析和机器学习算法,以及用于构建洞察力的地理数据驱动应用空间处理等特性。本文将详细介绍如何在GoogleKubernetes集群上部署和使用HANA表达式数据库服务。在GoogleCloudPlatform上创建GoogleKubernetesCluster实例登录GoogleCloudPlatform控制台:点击控制台左上角的Hamburger菜单新建一个KubernetesCluster:维护Cluster名称,选择合适的版本,然后点击Customize进行自定义:指定Cluster的CPU和内存参数,选择Ubuntu作为操作系统。Cluster的大小设置为1,Cluster创建并部署成功后,点击Connect按钮进行连接。连接成功后,就可以使用CloudShell来操作集群了:CloudShell提供了一个命令行来与Cluster进行交互。在GoogleKubernetes集群上部署HANA表达式数据库服务使用以下命令创建一个秘密来获取Docker镜像:kubectlcreatesecretdocker-registrydocker-secret--docker-server=https://index.docker.io/v1/--docker-username=xxx--docker-password=yyyyyy--docker-email=jerry@gmail.com创建yaml格式的部署配置文件(DeploymentConfigurationFile)并保存为hxe.yaml文件:kind:ConfigMapapiVersion:v1metadata:creationTimestamp:2022-06-25T19:14:38Zname:hxe-passdata:password.json:|+{"master_password":"JERRYHana1"}---kind:PersistentVolumeapiVersion:v1metadata:name:persistent-vol-hxe标签:类型:localspec:storageClassName:手动容量:存储:150GiaccessModes:-ReadWriteOncehostPath:路径:“/data/hxe_pv”---种类:PersistentVolumeClaimapiVersion:v1metadata:名称:hxe-pvcspec:storageClassName:手动accessModes:-ReadsourceWriteOncererequests:storage:50Gi---apiVersion:apps/v1kind:部署mentmetadata:名称:hxe标签:名称:hxespec:选择器:matchLabels:运行:hxe应用程序:hxe角色:主层:后端副本:1模板:元数据:标签:运行:hxe应用程序:hxe角色:主层:后端规范:initContainers:-名称:安装图像:busybox命令:['sh','-c','chown12000:79/hana/mounts']volumeMounts:-名称:hxe-datamountPath:/hana/mountsvolumes:-名称:hxe-datapersistentVolumeClaim:claimName:hxe-pvc-名称:hxe-configconfigMap:名称:hxe-passimagePullSecrets:-名称:docker-secret容器:-名称:hxe-container图像:“store/saplabs/hanaexpress:2.00.030.00.20180403.2"端口:-容器端口:39013名称:端口1-容器端口:39015名称:port2-容器端口:39017名称:端口3-容器端口:8090名称:端口4-容器端口:39041名称:端口5-容器端口:59013名称:端口6参数:[“--agree-to-sap-license”,“--dont-check-system","--passwords-url","file:///hana/hxeconfig/password.json"]volumeMounts:-name:hxe-datamountPath:/hana/mounts-name:hxe-configmountPath:/hana/hxeconfig-名称:sqlpad-container图像:“sqlpad/sqlpad”端口:-容器端口:3000---apiVersion:v1kind:服务元数据:名称:hxe-connect标签:app:hxespec:类型:LoadBalancer端口:-端口:39013目标端口:39013名称:端口1-端口:39015目标端口:39015名称:端口2-端口:39017目标端口:39017名称:端口3-端口:39041目标端口:39041名称:port5选择器:app:hxe---apiVersion:v1kind:Servicemetadata:name:sqlpadlabels:app:hxespec:type:LoadBalancerports:-port:3000targetPort:3000protocol:TCPname:sqlpad选择器:app:hxe这个yaml文件HANAExpression的一个Docker镜像定义在:store/saplabs/hanaexpress:2.00.030.00.20180403.2使用如下命令行将这个Docker镜像部署到Kubernetes集群:kubectlcreate-fhxe.yamlkubectldescribepods等待部署到完成成功:执行命令Runkubectlgetpods,确保pod状态为Running,然后进入Pod容器:kubectlexec-it<>bash现在可以使用SQL命令行连接到在Pod中运行的HANA表达式实例:hdbsql-i90-dsystemdb-uSYSTEM-pHXEHana1向数据库添加文档存储支持:alterdatabaseHXEadd'docstore';从SQLPAD服务获取外部IP地址:kubectlgetservices得到这个外部可访问的IP地址后,访问它的3000端口,就可以在浏览器中登录SQLPAD了:点击SignIn创建一个Administration账号。使用Connections菜单连接到HANAExpression实例中的数据库表:从kubectlgetservices命令行结果列表中找到hxe-connect,复制其ExternalIP地址:新建一个数据库连接,并维护刚刚复制的ExternalIP向下地址、数据库用户名和密码、Tenant等登录信息:建立数据库连接后,可以新建一个Query,并对其进行读写操作创建一个名为quotes的文档存储,并插入一些测试数据:createcollectionquotes;--创建文档存储集合并插入JSON值insertintoquotesvalues({"FROM":'HOMER',"QUOTE":'I想和你分享一些东西:让你度过一生的三个小句子。第一:为我掩护。第二:哦,好主意,老板!第三:当我来到这里时就像那样。',"MOES_BAR":'Point(-86.88030636.508361)',"QUOTE_ID":1});插入引号值({"FROM":'HOMER',"QUOTE":'等一下。巴特的老师被命名为Krabappel?哦,我一直叫她Crandall。为什么没有人告诉我?哦,我一直在把自己当成白痴!',"QUOTE_ID":2,"MOES_BAR":'Point(-87??.18270837.213414)'});insertintoquotesvalues({"FROM":'HOMER',"QUOTE":'哦不!我做了什么?我砸开了我的小b你的存钱罐,为了什么?区区几分钱,连买一瓶啤酒都不够。稍等一下,让我数数并确保……甚至没有关闭。',"MOES_BAR":'Point(-122.40069037.784366)',"QUOTE_ID":3});创建列表并启用模糊搜索支持:创建列表quote_analysis(idinteger,homer_quotetextFASTPREPROCESSONFUZZYSEARCHINDEXON,lon_latnvarchar(200));将文档存储集合的数据复制到上面的Column表中:insertintoquote_analysiswithdoc_storeas(selectquote_id,quotefromquotes)selectdoc_store.quote_idasid,doc_store.quoteashomer_quote,'Point(-122.67636648.535;doc_from)查询相似度最低的词等待:selectid,score()assimilarity,lon_lat,TO_VARCHAR(HOMER_QUOTE)fromquote_analysiswherecontains(HOMER_QUOTE,'wait',fuzzy(0.5,'textsearch=compare'))orderbysimilarityascsummary至此,我们完成了在GoogleKubernetesCluster中运行HANAExpressionDatabaseService的操作步骤从整个过程中不难感受到,将包含HANAExpression的Docker镜像部署在GoogleKubernetesCluster上,运行在Pod中,实现了HANAExpression服务开箱即用,避免了繁琐本地部署模式下的HANA表达式。安装和配置步骤。