Beam适配GaussDB开源任务验证任务心得
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.java和apis/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
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接口
- 点赞
- 收藏
- 关注作者
评论(0)