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

5分钟教你使用idea调试SeaTunnel自定义插件

SeaTunnel 2024-03-21
1342

在用Apache SeaTunnel研发SM2加密[1]组件过程中,笔者发现社区关于本地调试SeaTunnel文章过于简单,很多情况没有说明,于是根据自己遇到问题总结了这篇文档——SeaTunnel本地调试官方文档[2],希望对大家有所帮助!

使用的引擎为Flink[3](不需要下载,SeaTunnel中有加载依赖),输入输出方式为:mysql to mysql

一、工具说明

1.idea2023.3.2

2.MySQL8.0.36

3.jdk1.8

4.seatunnel 2.3.4-release

二、开发前准备

1.从github拉下来代码

github地址:https://github.com/apache/seatunnel/[4]

2.在控制台运行编译

编译指令为:

./mvnw clean install

Apache  SeaTunnel2.3.3版本的编译可以参考大飞哥的博客4.2.1[5]

3.创建数据库创建表

(注意,数据库不要使用mysql系统库(如:information_schema,mysql,performance_schema,sys),需要自己创建新的数据库,seatunnel会排除这些系统库,2.3.4新增,2.3.3没有这个判断)。

4.添加配置文件

在seatunnel-flink-connector-v2-example项目的resource/examples下添加需要运行的配置文件,并修改SeaTunnelApiExample.java指向的文件路径

test.json(seatunnel支持运行json和config格式的配置文件)

{ "env" : { "job.name" : "test" }, "source" : [ { "query" : "select t.id,t.name,t.depId,t.salary from seatunnel.t_employee t", "fetch_size" : 0, "url" : "jdbc:mysql://localhost:3306/seatunnel", "driver" : "com.mysql.cj.jdbc.Driver", "user" : "root", "password" : "123456", "plugin_name" : "Jdbc", "result_table_name" : "_seatunnel_table_jdbc_8" } ], "transform" : [ { "original_text" : "name", "plugin_name" : "Sm2Encrypt", "result_table_name" : "_seatunnel_table_sm2_9", "source_table_name" : "_seatunnel_table_jdbc_8" } ], "sink" : [ { "database" : "seatunnel", "table" : "t_employee", "support_upsert_by_query_primary_key_exist" : true, "generate_sink_sql" : true, "primary_keys" : [ "name" ], "max_retries" : 3, "batch_size" : 300, "is_exactly_once" : false, "url" : "jdbc:mysql://localhost:3306/seatunnel", "driver" : "com.mysql.cj.jdbc.Driver", "user" : "root", "password" : "123456", "plugin_name" : "Jdbc", "source_table_name" : "_seatunnel_table_sm2_9" } ] }

Sm2Encrypt是我自己研发的国密加密组件,自定义插件的代码可以参考SeaTunnel扩展Transform插件,自定义转换插件[6]

5.添加maven

seatunnel-flink-connector-v2-example项目添加下列pom依赖并刷新maven,没有这些依赖会报错,连接方式用到什么就要添加什么,我这里使用的是connector-jdbc。如果source或sink用到http连接就需要添加connect-http依赖,具体有哪些可以看seatunnel-connectors-v2项目下的包

org.apache.seatunnelconnector-jdbc${project.version}

因为使用的是mysql数据库,所以还需要引入mysql驱动

mysqlmysql-connector-java8.0.27

三、本地调试

1.debug运行

debug运行SeaTunnelApiExample.java下的主类,

就可以在需要调试的地方断点调试了

2.执行结果

参考资料
[1]

SM2加密: https://so.csdn.net/so/search?q=SM2%E5%8A%A0%E5%AF%86&spm=1001.2101.3001.7020

[2]

seatunnel本地调试官方文档: https://seatunnel.apache.org/zh-CN/docs/2.3.4/other-engine/flink

[3]

flink: https://so.csdn.net/so/search?q=flink&spm=1001.2101.3001.7020

[4]

https://github.com/apache/seatunnel/: https://github.com/apache/seatunnel/

[5]

大飞哥的博客4.2.1: https://blog.csdn.net/qq_34905631/article/details/135068301

[6]

SeaTunnel扩展Transform插件,自定义转换插件: https://blog.csdn.net/u010479989/article/details/132674921


新手入门

 SeaTunnel 让数据集成变得 So easy!  3 分钟入门指南
从 0 到 1 快速入门 Apache SeaTunnel 
初探 Apache SeaTunnel / 深入理解 Apache SeaTunnel

 MySQL 同步到 Hive / 从MySQL同步到StarRocks
通过 SeaTunnel 将数据写入 OSS-HDFS 
MySQL 到 Elasticsearch 实时同步解决方案

启动 SeaTunnel / 3 分钟部署 SeaTunnel Zeta 
 部署 Apache SeaTunnel 分布式集群
Apache SeaTunnel Web部署指南
基于Apache SeaTunnel构建CDC数据同步管道

最佳实践

 OPPO 清风 天翼云 马蜂窝
孩子王 哔哩哔哩 唯品会
众安保险

测试报告


 性能测试报告:SeaTunnel 批量同步数据比 GLUE 快 420%!
最新性能对比报告:SeaTunnel 是 Airbyte 30 倍!
比DataX快20%!SeaTunnel同步计算引擎性能测试全新发布
SeaTunnel 与 DataX 、Sqoop、Flume、Flink CDC 对比

Apache SeaTunnel





Apache SeaTunnel 是一个分布式、高性能、易扩展、用于海量数据(离线&实时)同步和转化的数据集成平台


仓库地址: 
https://github.com/apache/seatunnel

网址:
https://seatunnel.apache.org/

Apache SeaTunnel 下载地址:
https://seatunnel.apache.org/download
 
衷心欢迎更多人加入!

我们相信,在「Community Over Code」(社区大于代码)、「Open and Cooperation」(开放协作)、「Meritocracy」(精英管理)、以及「多样性与共识决策」等 The Apache Way 的指引下,我们将迎来更加多元化和包容的社区生态,共建开源精神带来的技术进步!

我们诚邀各位有志于让本土开源立足全球的伙伴加入 SeaTunnel 贡献者大家庭,一起共建开源!

提交问题和建议:
https://github.com/apache/seatunnel/issues

贡献代码:
https://github.com/apache/seatunnel/pulls

订阅社区开发邮件列表 : 
dev-subscribe@seatunnel.apache.org

开发邮件列表:
dev@seatunnel.apache.org

加入 Slack:
https://join.slack.com/t/apacheseatunnel/shared_invite/zt-1kcxzyrxz-lKcF3BAyzHEmpcc4OSaCjQ

关注 Twitter: 
https://twitter.com/ASFSeaTunnel

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

评论