尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

SeaTunnel部署及其Demo

SeaTunnel部署及其Demo
📅 发布时间:2026/6/17 19:17:08

SeaTunnel部署及其Demo

SeaTunnel部署及其Demo

image

环境、安装下载(国内镜像下载)

  • 环境准备:确保你的系统已安装 Java 8 或 11,并正确设置了 JAVA_HOME 环境变量。

  • 下载,解压

https://mirrors.tuna.tsinghua.edu.cn/apache/seatunnel/2.3.12/apache-seatunnel-2.3.12-bin.tar.gztar -zxvf apache-seatunnel-2.3.12-bin.tar.gz
  • 下载插件(根据需要下载)
安装连接器插件:从2.2.0-beta版本开始,二进制包默认不包含连接器,需要手动安装。进入解压后的SeaTunnel目录,执行安装脚本:如果需要指定连接器版本(例如2.3.8),则执行 sh bin/install-plugin.sh 2.3.8。你通常不需要全部连接器。可以编辑 config/plugin_config 文件,按格式(例如下方)指定所需插件。要让示例应用运行,通常需要 connector-fake 和 connector-console。连接器插件的作用
连接器插件 = 数据源驱动程序每个插件让 SeaTunnel 能够连接特定的数据源MySQL 插件:连接 MySQL 数据库Oracle 插件:连接 Oracle 数据库Console 插件:输出到控制台Fake 插件:生成测试数据
  • 修改 config/plugin_config,只保留你需要的:(也可以不改,全部下载)
--connectors-v2--
connector-jdbc-mysql
connector-jdbc-oracle
connector-console  # 这个建议保留,用于调试输出
--end--
  • 安装插件,执行命令
# 进入 SeaTunnel 目录
sh bin/install-plugin.sh

image

使用

  • mysql官方文档
    https://seatunnel.apache.org/docs/2.3.3/connector-v2/source/Mysql
    https://seatunnel.apache.org/docs/2.3.3/connector-v2/sink/Mysql

  • 使用mysql的话,需要拷贝jar包到seatunnel安装包/lib 下
    1、https://seatunnel.apache.org/docs/2.3.3/connector-v2/source/Mysql
    2、https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.33/mysql-connector-java-8.0.33.jar

image

  • 增加测试数据
-- mysql建表
CREATE TABLE `t_8_100w`  (`id` bigint NOT NULL COMMENT '主键',`name` varchar(2000) NULL COMMENT '名字',`sex` int null COMMENT '性别:1男;2女',`decimal_f` decimal(32, 6) NULL COMMENT '大数字',`phone_number` varchar(20) DEFAULT '13456780000' COMMENT '电话',`age` varchar(255) NULL COMMENT '字符串年龄转数字',`create_time` timestamp DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',`description` longtext NULL COMMENT '大文本',`address` varchar(2000) NULL COMMENT '空地址转默认值:未知',PRIMARY KEY (`id`)
);-- 新增存储过程
DELIMITER $$
CREATE PROCEDURE InsertMultipleRows_Batch(IN start_id INT,        -- 起始IDIN end_id INT,          -- 结束IDIN batch_size INT       -- 批次大小
)
BEGINDECLARE i INT DEFAULT start_id;DECLARE description_text LONGTEXT;DECLARE address_text VARCHAR(255);DECLARE sex_text INT;DECLARE total_to_insert INT;SET total_to_insert = end_id - start_id;-- 开始事务START TRANSACTION;WHILE i < end_id DO-- 生成精确的1KB文本SET description_text = REPEAT(CONCAT('DataX_Test_Text_', i, '_ABCDEFGHIJKLMN_'), 41);-- 根据i%2生成地址IF i % 2 = 0 THENSET address_text = CONCAT('地址', i);SET sex_text = 1;ELSESET address_text = NULL;SET sex_text = 2;END IF;-- 插入数据INSERT INTO t_8_100w (`id`, `name`, `sex`, `decimal_f`, `age`, `description`, `address`) VALUES (i, CONCAT('名字', i), sex_text,i + 0.000001, ROUND((RAND() * 12) + 18),description_text,address_text);SET i = i + 1;-- 每batch_size条提交一次IF i % batch_size = 0 OR i = end_id THENCOMMIT;IF i < end_id THENSTART TRANSACTION;END IF;-- 显示进度IF i % 50000 = 0 OR i = end_id THENSELECT CONCAT('批次 ', start_id, '-', end_id, ': 已插入 ', i - start_id, ' / ', total_to_insert, ' 条记录') AS progress;END IF;END IF;END WHILE;SELECT CONCAT('批次完成! ID范围: ', start_id, ' 到 ', end_id - 1, ' (共', total_to_insert, '条)') AS batch_complete;
END$$
DELIMITER ;-- 分别执行新增数据
-- 测试1万条
CALL InsertMultipleRows_Batch(0, 10000, 500);
-- 每10万条创建一次,分批执行
CALL InsertMultipleRows_Batch(10000, 100000, 1000);
CALL InsertMultipleRows_Batch(100000, 200000, 1000);
CALL InsertMultipleRows_Batch(200000, 300000, 1000);
CALL InsertMultipleRows_Batch(300000, 400000, 1000);
CALL InsertMultipleRows_Batch(400000, 500000, 1000);
CALL InsertMultipleRows_Batch(500000, 600000, 1000);
CALL InsertMultipleRows_Batch(600000, 700000, 1000);
CALL InsertMultipleRows_Batch(700000, 800000, 1000);
CALL InsertMultipleRows_Batch(800000, 900000, 1000);
CALL InsertMultipleRows_Batch(900000, 1000000, 1000);
  • 配置执行文件conf
    -- 2.3.x 新版本:必须使用 query,不再支持 table 参数
    image

  • DEMO1(直接把采集数据打印到控制面板)

# test2mysql.conf - 测试源数据
env {execution.parallelism = 2job.mode = "BATCH"
}source {Jdbc {url = "jdbc:mysql://ip:port/Cs1"driver = "com.mysql.cj.jdbc.Driver"user = "root"password = "******"query = "select * from t_sea_01"# 连接参数connection_check_timeout_sec = 300properties = {useUnicode = truecharacterEncoding = "utf8"serverTimezone = "Asia/Shanghai"}}
}sink {Console {}
}

执行命令

./data/seatunnel/apache-seatunnel-2.3.12/bin/seatunnel.sh --config ./data/seatunnel/myconf/test2mysql.conf -m local

查看结果
image
真背CPU啊(2核云服务器)
image

  • DEMO2(mysql2mysql的不同库)
-- 在mysql另一个数据库执行
CREATE TABLE `t_8_100w_import`  (`id` bigint NOT NULL COMMENT '主键',`name` varchar(2000) NULL COMMENT '名字',`sex` int null COMMENT '性别:1男;2女',`decimal_f` decimal(32, 6) NULL COMMENT '大数字',`phone_number` varchar(20) COMMENT '电话',`age` varchar(255) NULL COMMENT '字符串年龄转数字',`create_time` timestamp COMMENT '新增时间',`description` longtext NULL COMMENT '大文本',`address` varchar(2000) NULL COMMENT '空地址转默认值:未知',PRIMARY KEY (`id`)
);

执行命令

./data/seatunnel/apache-seatunnel-2.3.12/bin/seatunnel.sh --config ./data/seatunnel/myconf/mysql2mysql.conf -m local

参考

https://www.jb51.net/program/2850931un.htm
https://www.cnblogs.com/robots2/p/17939863

相关新闻

  • 400电话号如何选?
  • 初一数学
  • 前瞻思考,收获未来

最新新闻

  • args4j子命令实现指南:如何构建类似git的复杂命令行接口
  • c12测试策略终极指南:配置加载的单元测试与集成测试完全解析
  • Self-Replace案例研究:知名开源项目如何使用这个库实现无缝更新
  • 普陀装修指南:八家上海装修公司综合观察 - 资讯焦点
  • Arduino ESP32完整安装教程:从零开始构建物联网开发环境
  • 阿甘|张家界纯玩领队,8年只做一件事:带你好好玩张家界 - 资讯焦点

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号