Beam适配GaussDB开源任务验证任务心得

举报
yd_239286208 发表于 2024/11/13 18:25:34 2024/11/13
【摘要】 Beam适配GaussDB开源验证任务心得首先先看下任务计划书 https://bbs.huaweicloud.com/blogs/437766 ,大概了解了下这个任务的主要工作是完成 Apache Beam连接GaussDB并且可以读可以写数据的验证工作。总体来讲不是很复杂,主要是需要花时间熟悉Beam的结构、环境搭建、扩展新功能和开发简单的界面展示效果。下面介绍下适配过程中的一些关键步骤...

Beam适配GaussDB开源验证任务心得

首先先看下任务计划书 https://bbs.huaweicloud.com/blogs/437766 ,大概了解了下这个任务的主要工作是完成 Apache Beam连接GaussDB并且可以读可以写数据的验证工作。总体来讲不是很复杂,主要是需要花时间熟悉Beam的结构、环境搭建、扩展新功能和开发简单的界面展示效果。下面介绍下适配过程中的一些关键步骤。

fork一下DEMO代码

fork 到这个组织下面了:

https://gitcode.com/xizhou_0313/opensource-demo-beam-241112/overview

开发过程

首先参考任务计划书给的参考资料: https://github.com/apache/beam/ 。 把官网提供的原代码看了下, 并把关键的类信息拷贝过来。 官网采用的是读取文件系统 需要改为GaussDB。 我采用了opengauss提供的 JDBC 驱动。

1.pom文件增加依赖(resource-service模块增加依赖)

    <dependency>
      <groupId>org.apache.beam</groupId>
      <artifactId>beam-sdks-java-core</artifactId>
      <version>2.59.0</version>
    </dependency>

    <dependency>
      <groupId>org.apache.beam</groupId>
      <artifactId>beam-runners-direct-java</artifactId>
      <version>2.59.0</version>
    </dependency>

    <dependency>
      <groupId>org.apache.beam</groupId>
      <artifactId>beam-sdks-java-io-jdbc</artifactId>
      <version>2.59.0</version>
    </dependency>

    <dependency>
      <groupId>org.opengauss</groupId>
      <artifactId>opengauss-jdbc</artifactId>
      <version>6.0.0</version>
    </dependency>

2.代码提交部署

 提价代码到对应的仓库后,按照https://gitcode.com/HuaweiCloudDeveloper/OpenSourceForHuaweiWiki/blob/main/zh_CN/docs/cicd-pipeline.md 在华为云部署示例项目。

如果有修改重新提交代码后,重新构建,然后在cce平台一次重新部署以下两个组件:

说明:代码开发详细见

https://gitcode.com/xizhou_0313/opensource-demo-beam-241112/overview

resource-server/src/main/java/org/apache/servicecomb/fence/resource/BeamAuthEndpoint.javaapis/resource-server-api/src/main/java/org/apache/servicecomb/fence/api/resource/BeamAuthService.java两个类

开发总结

由于本任务是一个JAVA验证项目,部署和运行都是没什么问题的,因此相关的部署验证问题都不再描述了。 通过该任务,可以证明使用 openGauss 的 JDBC 驱动,  是可以接入 GaussDB的。作为一个商业的数据库(类别 Oracle 和 SqlServer等),可以发现 GaussDB还有很多不完善的地方。 大概有如下2个关键点:

 1.GaussDB没有提供maven中央仓可获取的 JDBC 驱动。 因此对开源项目,只能使用 openGauss的驱动。总体看,虽然能够运行起来,还是给开发者不太可靠的感觉。 期望GaussDB能够更多支持开源社区的共建,提供稳定的,maven central可访问的JDBC驱动。

 2.opengauss不同版本的驱动类路径不同,比较混乱。

验收材料

交付件清单

(1)DEMO仓库地址:

       https://gitcode.com/xizhou_0313/opensource-demo-beam-241112/overview

(2)DEMO开发记录:

       https://gitcode.com/xizhou_0313/opensource-demo-beam-241112/commits/detail

(3) 博客的地址: 

     https://bbs.huaweicloud.com/blogs/439448


验收细则 评分说明 是否为验收必选项 结果(通过/不通过) 开发者举证
功能开发:完成与华为三大根技术生态(鲲鹏云、昇腾云、鸿蒙)适配的功能开发 完成GaussDB数据库适配功能验证。 参考资源清单和测试结果。
代码质量:适配华为三大根技术生态的代码质量经过工具检测达标 不涉及
提供相关文档,比如部署文档、使用文档、配置文档等 不涉及
合入到开源项目主仓:代码推送上游社区 不涉及
Deomo设计&开发:完成功能演示Demo的开发 举证提供DEMO仓库地址和DEMO开发提交记录。 参考(1)(2)
Demo部署&验证:完成功能演示DEMO基于华为云鲲鹏环境的部署和功能验证 提供DEMO部署验证结果的关键截图进行举证。提供DEMO运行环境和资源的规格清单。 参考资源清单和测试结果。
发布博客:发布博客介绍适配心得。 提供博客的地址。 参考(3)
制作单机版无高危开源镜像。 上架云商店。
单机版镜像上架时支持模板部署。
制作集群版无高危开源镜像 上架云商店。
集群版镜像上架时支持模板部署

资源清单

产品名称 产品类型 数据库引擎版本 内核引擎版本 实例类型 部署形态 备注
云数据库 GaussDB 基础版 V2.0-8.* 505.1.* 集中式 1主2备 推荐


产品名称 集群类型 集群版本 集群规模 备注
云容器引擎 CCE CCE Standard 集群 V1.29 50 推荐


产品名称 CPU架构 实例类型 公共镜像 镜像版本 备注
弹性云服务器 鲲鹏计算 鲲鹏通用计算增强型 Huawei Cloud EulerOS Huawei Cloud EulerOS 2.0 标准版 64位 ARM版(10GiB) 推荐

测试结果

  readWrite接口

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。