Apache Flink CDC 适配 GaussDB 验证任务心得

举报
xiaojiawei 发表于 2024/11/23 18:25:08 2024/11/23
【摘要】 Apache Flink CDC 是 Apache Flink 的一个组件或功能扩展,用于捕获数据库的变更数据。它能够实时感知数据库中的插入、更新和删除操作,并将这些变更数据以流的形式输出,以便进行后续的实时数据处理和同步操作。

背景介绍

开源for Huawei(参考:https://developer.huaweicloud.com/programs/opensource/contributing/)  通过和公司、高校、社区的开发者合作,完成鲲鹏、昇腾、欧拉、鸿蒙、高斯、云服务等与开源软件的适配开发,帮助繁荣Huawei的基础生态,同时让开源软件能够更加简单、高效的运行于华为云上。

1 软件介绍

Apache Flink 是一个计算框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。而 Apache Flink CDC 是 Apache Flink 的一个组件或功能扩展,用于捕获数据库的变更数据。它能够实时感知数据库中的插入、更新和删除操作,并将这些变更数据以流的形式输出,以便进行后续的实时数据处理和同步操作。

架构图


d6724a2acffc73aca06d3bf75b1e2d4c.png


适配思路

调用 鲲鹏EulerOS环境的ECS上的 Flink 任务, 实现 Mysql 和 云数据库GaussDB 的数据互通。

3 适配准备

准备两个弹性云服务器ECS,一个用于代码编写以及适配测试,另外一个用于鲲鹏EulerOS环境适配GaussDB测试。

3.1 ECS配置

适配测试:

  • 计费模式选择:按需计费
  • 区域:中国-香港
  • CPU架构:x86计算
  • CPU规格:xlarge.4
  • CPU规格:4vCPUs&&16GiB
  • 镜像类型:公共镜像
  • 镜像:Windows Server 2016 标准版 64位简体中文_40GB_香港

鲲鹏:

  • 计费模式选择:按需计费
  • 区域:华北-北京四
  • CPU架构:鲲鹏计算
  • CPU规格:xlarge.4
  • CPU规格:4vCPUs&&16GiB
  • 镜像类型:公共镜像
  • 镜像:Huawei Cloud EulerOS 2.0 标准版 64 ARM

3.2 ECS安全组配置

配置规则 → 入方向规则 → 一键放通常用端口

添加常用端口,目的:在适配测试的ECS可以ping通部署Flink-CDC的云服务器

3.3 Flink、Flink-CDC环境部署

参考:https://blog.csdn.net/u014494148/article/details/141949027?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-141949027-blog-130302584.235^v43^pc_blog_bottom_relevance_base1&spm=1001.2101.3001.4242.2&utm_relevant_index=4

4 Demo开发

  1. 在文件 pom.xml 中添加所需依赖,同时进行安装
  2. 根据官网参考文档,编写demo程序以及添加相关的数据库配置文件
  3. 在编程软件中输出jar包,并部署到Flink所在的ECS服务器中调用执行

demo 路径:https://gitcode.com/xiaojiawei/opensource-demo-flink-cdc-241123/overview

官网文档:https://nightlies.apache.org/flink/flink-cdc-docs-master/zh/docs/connectors/flink-sources/mysql-cdc/

5 适配过程中的问题

  • 在运行代码过程中,可能会因为依赖的版本不一致导致运行报错

         解决方法:确定依赖对应的版本,重新加载依赖

         可在页面 https://mvnrepository.com/ 查询具体依赖版本

  • 在可视化界面调用jar包时,报The program‘s entry point class ‘xxx‘ was not found in the jar file.的错误

         解决方法:运行填写类名时,要带上包名

  • 任务超时

         解决方法:检查代码是否编程错误,检查配置的数据库信息是否一致,检查测试的表是否包含主键

  • 运行yaml文件报Cannot find factory with identifier "mysql" in the classpath.

         解决方法:检查是否引入正确引用对应的jar包,并重新启动Flink服务

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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