从 openGauss 到 Byconity 数据同步:
使用 kafka 实现从 openGauss 到 Byconity 数据同步,主要分为以下几个步骤:
1、openGauss 通过 debezium 将数据变更事件写入 kafka 的消息队列中
2、kafka 扮演消息中间件的角色,负责接收、存储和分发消息
3、ByConity 从 kafka 读取消息,进行数据消费,将数据变更实时导入至 ByConity 中,保持数据的实时性
部署过程
一、 openGauss 环境部署
参照 openGauss 官网部署文档进行部署:
https://docs-opengauss.osinfra.cn/zh/docs/latest/docs/InstallationGuide/ 安装准备 _ 企业版 .html
二、openGauss对接kafka,实现数据变更实时推送至kafka
环境依赖: kafka , zookeeper community , confluent , debezium-connector-opengauss
原理: kafka connect 利用 debezium-connector-opengauss 插件,监控 openGauss 数据库的逻辑日志。并将数据写入到 kafka 中。
前置条件:
openGauss 开启逻辑复制功能:
( 1 )仅限初始用户和拥有 REPLICATION 权限的用户进行操作。
( 2 ) openGauss 的库与逻辑复制槽一一对应,当待迁移的库改变时,需要配置新的逻辑复制槽的名字;
openGauss 参数配置: wal_level=logical
部署过程:
下载组件:
1 、下载 kafka (以 kafka_2.13-3.6.1 为例)
wget -c https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -zxf kafka_2.13-3.6.1.tgz
2 、下载 confluent community
wget -c https://packages.confluent.io/archive/5.5/confluent-community-5.5.1-2.12.zip
unzip confluent-community-5.5.1-2.12.zip
3 、下载 debezium-connector-opengauss
wget -c https://opengauss.obs.cn-south-1.myhuaweicloud.com/latest/tools/replicate-openGauss2mysql-6.0.0.tar.gz
tar -zxvf replicate-openGauss2mysql-6.0.0.tar.gz
修改配置文件:
1、 Zookeeper
配置文件位置: /kafka_2.13-3.6.1/config/zookeeper.properties
zookeeper的默认端口号为2181,对应参数clientPort=2181。
若端口冲突,需要修改端口号,则同步修改以下文件对应参数:
kafka_2.13-3.6.1/config/zookeeper.properties------clientPort=2181
kafka_2.13-3.6.1/config/server.properties------zookeeper.connect=localhost:2181
confluent-5.5.1/etc/schema-registry/schema-registry.properties------kafkastore.connection.url=localhost:2181
2 、 kafka
配置文件位置: /kafka_2.13-3.6.1/config/server.properties
注意 topic 的分区数必须为 1 ,因此需设置参数 num.partitions=1 ,该参数默认值即为 1