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

举报
shugj 发表于 2024/12/05 17:24:52 2024/12/05
【摘要】 首先先看下任务计划书 ,大概了解了下这个任务的主要工作是通过flink读取Kafka写入GaussDB并且可以写入数据的验证工作。主要是需要花时间熟悉kafka和flink的架构、环境搭建、扩展新功能和开发简单的界面展示效果。下面介绍下适配过程中的一些关键步骤。开发过程首先参考任务计划书给的参考资料: https://kafka.apache.org/和 https://flink.apac...

首先先看下任务计划书 ,大概了解了下这个任务的主要工作是通过flink读取Kafka写入GaussDB并且可以写入数据的验证工作。主要是需要花时间熟悉kafka和flink的架构、环境搭建、扩展新功能和开发简单的界面展示效果。下面介绍下适配过程中的一些关键步骤。开发过程首先参考任务计划书给的参考资料: https://kafka.apache.org/https://flink.apache.org/ 。 把官网看了下。 官网上是支持很多...


A、环境部署:

1、linux上基本环境java

2、zookeeper、kafa 和flink的架构环境,通过apache官网下载zookeepe、kafka 和flink软件包,然后上传到ecs上部署安装

  • apache-zookeeper-3.7.2-bin.tar.gz
  • kafka_2.12-3.5.1.tgz
  • flink-1.18.1-bin-scala_2.12.tgz

zookeeper和kafka部署

建议:在配置kafka的server.properties文件时,建议zookeeper.connect=hostname:2181/kafka这种加一个指定kafka目录路径,kafka注册在zookeeper中文件会很好归类;搭建其他版本的kafka也能清晰查找,类似以下

遇到的问题:我配置这个版本的kafa需要开启listeners=PLAINTEXT://hostname:9092(当前服务器hostname),否则kafka生产者和消费者连接报错


flink部署

小结:flink部署相对简单,注意flink-conf.yaml绑定的ip


B、Flink程序开发

  1. 配置flink的专属依赖flink1.18.0版本
  2. GaussDB(For Mysql)的flink-connector-mysql-cdc依赖
  3. GaussDB可以使用opengauss-jdbc依赖

    这里用的是FlinkCDC读取GaussDB(For Mysql),写入到kafka的topic中;从topic读取写入GaussDB中,flink web上job如下

步骤一:flinkCDC读取GaussDB(For Mysql)

步骤二:查看GaussDB的t1_dest表

开发问题:

  1. idea上开发flink stream时会碰到依赖不兼容的,找对应版本
  2. 在flink 写入GaussDB表时,当update为避免主键冲突,需要先select判断是否有数据再insert或者update
  3. 之前写入kafka使用的是json序列化,所有读取kafka的时候需要json解析调试转成t1_dest表字段格式

开发总结

本任务适配中,环境搭建不复杂;主要是flink读取和写入GaussDB数据库的时候进行map算子转换过程中代码调试以及版本依赖花费较多时间。

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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