暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据同步集成工具SeaTunnel

数据库干货铺 2024-12-13
102
点击上方蓝字关注我

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

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

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

使用数据库同步中间件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 seatunnel
              tar -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 -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 11
                Server version: 8.0.40 Source distribution
                Copyright (c) 20002024, Oracle and/or its affiliates.
                Oracle is a registered trademark of Oracle Corporation and/or its
                affiliates. Other names may be trademarks of their respective
                owners.
                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 changed
                mysql> 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/conf
                  cp /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/bin
                    seatunnel started


                    复制

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

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

                    进入后即可进行任务配置 


                    3. 配置数据源

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




                    • 创建Clickhouse数据源


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

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

                    4. 小结

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

                    往期精彩回顾

                    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数据备份及还原(二)

                    扫码关注     
                        

                    文章转载自数据库干货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                    评论