点击上方蓝字关注我
如今的信息时代,每天会产生大量的数据,这使得各种软件用到了不同的数据库存储,也需要在不同的存储间进行海量数据的同步、集成处理,一款好用且高效的工具是必备的。之前分享了国产数据库的同步工具、数据同步中间件等。
使用数据库同步中间件DBSyncer实现不同数据库的数据同步
今天继续分享另一款数据同步集成工具SeaTunnel。
1. SeaTunnel简介
SeaTunnel是Apache软件基金会孵化的数据集成平台,用于数据的提取(Extract)、加载(Load)和简单转换(Transform)。Transform 模块仅限于轻量级的数据处理,以保持整个流程的高效性。这种模块化设计和灵活的引擎支持,使得 SeaTunnel 能够适应各种数据集成场景,同时降低开发和运维成本。
SeaTunnel之处多种数据库、大数据存储间的转换
也支持事件数据、binlog等抽取这种

2. 部署
2.1 环境准备
jdk
运行环境需要用到JAVA,因此需要提前安装jdk,版本JDK8以上应该都可以。
maven(非必需)
因部署时很多包从国外的maven仓库下载,速度比较慢,因此建议修改maven仓库,从阿里云下载。
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个安装包。
后端下载
前端下载
下载后上传至部署的目标机器即可。
2.3 开始后端部署
解压下载的二进制安装包
# 进入目录seatunnel(提前创建)cd seatunnel# 解压 tar -zxvf apache-seatunnel-2.3.8-bin.tar.gz
修改安装脚本
安装脚本在bin目录下的install-plugin.sh文件
将${SEATUNNEL_HOME}/mvnw 改为mvn ,这样可以从阿里云进行下载
修改后如下
运行安装脚本
执行 sh install-plugin.sh即可进行安装
sh install-plugin.sh
可以看到从阿里云进行下载
一系列的包下载完毕即可
然后将connectors下的jar包拷贝到lib下
启动一个测试任务验证
在config目录下有个模板任务配置
可以进行测试,例如
./bin/seatunnel.sh --config ./config/v2.batch.config.template -e local
运行结果如下图所示:
启动后端服务
nohup sh seatunnel-cluster.sh &
然后查看日志
至此后端服务即完成。
2.4 前端部署
解压安装包
cd seatunneltar -zxvf apache-seatunnel-web-1.0.2-bin.tar.gz
执行初始化SQ脚本
对于的初始化脚本在script目录下
可以直接执行seatunnel_server_mysql.sql脚本。也可以修改seatunnel_server_env.sh里的数据库服务器配置(对应信息就是准备工作中的数据库)
然后执行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)
完成后可以看到对应的表
修改配置文件
修改config目录下的application.yml文件,将对应的数据库配置信息进行修改
复制后端的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文件,然后进行下载
直接拷贝如下:
另外,因为我是用的数据库是MySQL8.0.40版本,驱动要求相对高,因此手动上传一个高版本驱动值libs目录下。
启动前端服务
因启动脚本中需要用到SEATUNNEL_HOME路径,因此先在环境变量中进行配置
然后执行脚本启动(注意,必须在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
至此启动成功。可以通过http://ip:8801来访问
这样前后端就部署完成了。
进入后即可进行任务配置
3. 配置数据源
创建mysql数据源
创建Clickhouse数据源
和创建mysql数据源一样,创建clickhouse数据源,命名ck1
完成后可以看到数据源列表
4. 小结
本次SeaTunnel部署的是单节点,也可以部署多节点的集群来提升性能。 另外,后续也将进行不同数据库之间的同步、ETL等相关操作。
往期精彩回顾
2. mysql8.0新增用户及加密规则修改的那些事
3. 比hive快10倍的大数据查询利器-- presto
4. 监控利器出鞘:Prometheus+Grafana监控MySQL、Redis数据库
5. PostgreSQL主从复制--物理复制
6. MySQL传统点位复制在线转为GTID模式复制
扫码关注