数据同步集成工具SeaTunnel

点击上方蓝字关注我

3c3f9ab1ab0600936efe2af250cbb938.png

    如今的信息时代,每天会产生大量的数据,这使得各种软件用到了不同的数据库存储,也需要在不同的存储间进行海量数据的同步、集成处理,一款好用且高效的工具是必备的。之前分享了国产数据库的同步工具、数据同步中间件等。

国产数据库达梦DM8迁移工具

国产数据库人大金仓Kingbase数据迁移工具

使用数据库同步中间件DBSyncer实现不同数据库的数据同步

今天继续分享另一款数据同步集成工具SeaTunnel。

1. SeaTunnel简介

SeaTunnel是Apache软件基金会孵化的数据集成平台,用于数据的提取(Extract)、加载(Load)和简单转换(Transform)。Transform 模块仅限于轻量级的数据处理,以保持整个流程的高效性。这种模块化设计和灵活的引擎支持,使得 SeaTunnel 能够适应各种数据集成场景,同时降低开发和运维成本。

SeaTunnel之处多种数据库、大数据存储间的转换

78e93a9a563bc2184c329391fe76b418.png

也支持事件数据、binlog等抽取这种

d7740a5107443c48541a370f823eecd0.png

08fd839e52d833d84f77e5b1ae2151a6.png  

2.  部署

2.1 环境准备

jdk

运行环境需要用到JAVA,因此需要提前安装jdk,版本JDK8以上应该都可以。

a19b69b2923441517bfdffb33f4cb8d0.png

maven(非必需)

因部署时很多包从国外的maven仓库下载,速度比较慢,因此建议修改maven仓库,从阿里云下载。

e1e3af66f3f3391d378445aec102ad22.png

MySQL

用于存储前端相关信息,可以先创建一个数据库,并创建数据库用户并赋权

mysql> create database seatunnel;Query OK, 1 row affected (0.00 sec)mysql> create user  seatunnel identified by 'Seatunnel_2024';Query OK, 0 rows affected (0.01 sec)mysql> grant all on seatunnel.*  to  seatunnel;Query OK, 0 rows affected (0.00 sec)

2.2 下载安装包

SeaTunnel的官网地址为 https://seatunnel.apache.org/

下载可以进入 https://seatunnel.apache.org/download 选择需要的版本进行下载。因SeaTunnel前后端分开的,因此需要下载后端及前端2个安装包。

  • 后端下载

9357a7eb1c09554ce25c6ce9ea31ae1e.png

f71f70ef05252269358934a116ec847b.png

  • 前端下载

39cf0196e57f3974d7c3a7bf2fc7d2f8.png

21b8d9d92ca8e407b5325fd1a693dd7b.png

下载后上传至部署的目标机器即可。

2.3  开始后端部署

解压下载的二进制安装包

# 进入目录seatunnel(提前创建)cd seatunnel# 解压 tar -zxvf  apache-seatunnel-2.3.8-bin.tar.gz
  • 修改安装脚本

安装脚本在bin目录下的install-plugin.sh文件

9e208b47430b73589321a31ccf843c9d.png

将${SEATUNNEL_HOME}/mvnw 改为mvn ,这样可以从阿里云进行下载

e6c8796439308875cf3893684d71bb52.png

修改后如下

86052d54bfcbb4ab789331e8fd283c6f.png

  • 运行安装脚本

执行 sh install-plugin.sh即可进行安装

sh install-plugin.sh

可以看到从阿里云进行下载

f3fe9d34ee428130155d37bb84e48b5a.png

一系列的包下载完毕即可

c750f2c6205abb6193fc726157fe9524.png

然后将connectors下的jar包拷贝到lib下

b1ddd7b170cd0d343a8a22b4eb27a6de.png

  • 启动一个测试任务验证

在config目录下有个模板任务配置

62fce7c8ed30bacd34df6e5cd8500095.png

可以进行测试,例如

./bin/seatunnel.sh --config ./config/v2.batch.config.template -e local

运行结果如下图所示:

8a77a47c0763dbfc62dc9a7b786fa169.png

cb381237054f0bb3f659d425732b2423.png

  • 启动后端服务

nohup  sh seatunnel-cluster.sh &

然后查看日志

8fa5915c7496f9e4f026ca27c864fda4.png

至此后端服务即完成。

2.4  前端部署

  • 解压安装包

cd seatunneltar -zxvf apache-seatunnel-web-1.0.2-bin.tar.gz
  • 执行初始化SQ脚本

对于的初始化脚本在script目录下

fc67a9a437c992ba00ea0aaeb453b956.png

可以直接执行seatunnel_server_mysql.sql脚本。也可以修改seatunnel_server_env.sh里的数据库服务器配置(对应信息就是准备工作中的数据库)

86a59532472099968e7c21a9c7a141b5.png

然后执行init_sql.sh脚本。此处我直接连接数据库执行脚本处理。

# /usr/local/mysql/bin/mysql -h 192.168.56.129 -useatunnel -p'Seatunnel_2024' mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 11Server version: 8.0.40 Source distributionCopyright (c) 2000, 2024, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || performance_schema || seatunnel          |+--------------------+3 rows in set (0.01 sec)mysql> use Seatunnel;Database changedmysql> source seatunnel_server_mysql.sql;Query OK, 1 row affected, 1 warning (0.00 sec)

04d6d63036768925420c7f388611ecfc.png

完成后可以看到对应的表

daf21c5f8a5e5e76e917bc0d0dac1ff8.png

  • 修改配置文件

修改config目录下的application.yml文件,将对应的数据库配置信息进行修改

fcb3c07931db59bba1b3118305a3de93.png

  • 复制后端的client及 plugin配置文件

将后端的client及 plugin配置文件复制进前端配置文件目录下

cd /usr/local/seatunnel/apache-seatunnel-web-1.0.2-bin/confcp /usr/local/seatunnel/apache-seatunnel-2.3.8/config/hazelcast-client.yaml  .cp /usr/local/seatunnel/apache-seatunnel-2.3.8/connectors/plugin-mapping.properties  .
  • 下载数据源驱动

可以直接拷贝后端已下载的jar包,也可以在bin目录下的download_datasource.sh文件,然后进行下载

f6a09dd94b6806e72542742fbbca2290.png

直接拷贝如下:

39964911816956cf6edaef81accdc8d6.png

另外,因为我是用的数据库是MySQL8.0.40版本,驱动要求相对高,因此手动上传一个高版本驱动值libs目录下。

  • 启动前端服务

因启动脚本中需要用到SEATUNNEL_HOME路径,因此先在环境变量中进行配置

f24cd1b7f046c57c5a8d8f64f341208f.png

然后执行脚本启动(注意,必须在bin目录的父节点执行,否则页面无法打开)

[root@tt bin]# sh bin/seatunnel-backend-daemon.sh  start starting seatunnel...Load connectors from /usr/local/seatunnel/apache-seatunnel-web-1.0.2-bin/usr/local/seatunnel/apache-seatunnel-web-1.0.2-bin/binseatunnel started

c7fa7d74c855656a69c04bf705f1bf5f.png

至此启动成功。可以通过http://ip:8801来访问

69b1d8b678422029c2ab86dcd8bb73a3.png

这样前后端就部署完成了。

进入后即可进行任务配置 

51298c1bd6cea391ec78708ffc731a50.png

3. 配置数据源

  • 创建mysql数据源

创建一个mysql数据源,命名为mysql1

24dae7a4a34be3f724b5ea1699a4b8b6.png

704aa44696feaa625b29a59b9fd2fb82.png

a96b4ec225b472f52b41ba16d56950e2.png

baea626213e7d9dd578fdc5a4e54052a.png

  • 创建Clickhouse数据源

和创建mysql数据源一样,创建clickhouse数据源,命名ck1

1bb9b3e0f375d96c686135d85f87b787.png

完成后可以看到数据源列表

7520ef95f65c9e7669ebe22be5e2afdb.png

4. 小结

本次SeaTunnel部署的是单节点,也可以部署多节点的集群来提升性能。 另外,后续也将进行不同数据库之间的同步、ETL等相关操作。

70d0198fec6bbf0ab07c145e5d5969b0.png

往期精彩回顾

1.  MySQL高可用之MHA集群部署

2.  mysql8.0新增用户及加密规则修改的那些事

3.  比hive快10倍的大数据查询利器-- presto

4.  监控利器出鞘:Prometheus+Grafana监控MySQL、Redis数据库

5.  PostgreSQL主从复制--物理复制

6.  MySQL传统点位复制在线转为GTID模式复制

7.  MySQL敏感数据加密及解密

8.  MySQL数据备份及还原(一)

9.  MySQL数据备份及还原(二)

593cc16f93824a3e149f8f3e1d4b1d31.png

扫码关注     

d4d459799086d47b5a725bb2fb941945.jpeg

bbafe315777ccd56f2eaa5c44b56be79.png

e8cc73efee7ca7caf019f641160bc49d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值