【保姆级教程】使用 SeaTunnel 同步 Kafka 的数据到 ClickHouse

注意这里bin目录下的启动脚本选择,启动先最好先看一下flink-v环境变量文件seatunnel-env.sh的配置脚本选择(Flink版本不同,启动脚本不同),确保Flink的jobmannean和taskman都启动,然后再执行任务.

1.Apache  SeaTunnel依赖地址

2.SeaTunnel官网的Source/Sink模板

3.SeaTunnel的GitHub地址

在官网下载安装包之后,(注意:别下载apache-seatunnel-incubating-2.1.0-bin.tar.gz版本,依赖和功能都没有。)要使用apache-seatunnel-2.3.3-bin.tar.gz,但还需要配置环境和jar包,jar包需要联网。

从2.2.0-beta开始,二进制包默认不提供Connectors的依赖,因此在第一次使用它时,需要执行以下命令来安装连接器。当然,您也可以从Apache Maven Repository\[https://repo.maven.apache.org/maven2/org/apache/seatunnel/\]手动下载连接器,然后移动到Connectors/SeaTunnel目录)

sh bin/install-plugin.sh

如果需要指定connector的版本,以2.3.3版本为例,需要执行

sh bin/install-plugin.sh 2.3.3

也可以手动导入依赖

1.这个目录下放连接器

apache-seatunnel-2.3.3/connectors/seatunnel

1711527965634dffe102201f6e937ab5f601042dab7e4

2.这个目录下放MySQL和clickhouse连接驱动和SeaTunnel的Source包

17115279656177b7671937d9f4dd3c0a05871dfa8e5e6

/usr/local/mysql/module/seatunnel/apache-seatunnel-2.3.3/lib

3.这个目录下放配置文件

/usr/local/mysql/module/seatunnel/apache-seatunnel-2.3.3/config

17115279656667b03b64b9e2a1c09d863e2b0007daa02

注意这里有一个seatunnel-env.sh文件,是配置Flink或者Spark环境变量的文件需要配置

1711527965660dd2d84638f2d838cd45db2c55509f1a7

执行命令

17115279656534b20d754495baf306f112822a513427c 注意这里bin目录下的启动脚本选择,启动先最好先看一下flink -v、环境变量文件seatunnel-env.sh的配置、脚本选择(Flink版本不同,启动脚本不同),确保Flink的jobmanneantaskman都启动,然后再执行任务.

1711527965674164b5b954a72c86d77226f556cf24766

example08.conf配置文件中

env {        execution.parallelism = 1        job.mode = "STREAMING"        checkpoint.interval = 2000}这里使用flink一定要是STREAMING,不能是BATCH

具体配置格式参考上面的第2点——SeaTunnel官网的Source/Sink模板,最后注意执行任务可能需要几十分钟,但数据一定要等任务运行完毕后才能过去。

1711527966576247e76a0d1b090c25e899e90c90a56ad

 附件是Apache SeaTunnel2.3.3版本的完整目录,包含MySQL、clickhouse的连接驱动和配置文件,包括seatunnel-env.sh环境变量文件,根据数据同步链路和服务器参数改动 。

附件2是配置文件,从MySQL到ClickHouse,从MySQL到Kafka,从Kafka到ClickHouse。

执行一次命令同步一次。在数据同步过程中,确保目标表和源表都存在,并且源表内有数据是非常重要的,这样才能够在执行同步命令后在目标表中看到同步效果

java[root@172-xx-xxx-x bin]# ./start-seatunnel-flink-15-connector-v2.sh --config ../config/example07.conf

SeaTunnel配置中的env {j:ob.mode = "STREAMING"}的STREAMINGBATCH的区别

1711527966586a279b9003f6c6e2b1d656b3be3dea6c2

本文由 白鲸开源科技 提供发布支持!