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

使用的引擎为Flink(不需要下载,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/

2.在控制台运行编译

编译指令为:

./mvnw clean install

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

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插件,自定义转换插件

5.添加maven

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

org.apache.seatunnel
connector-jdbc
${project.version}

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

mysql
mysql-connector-java
8.0.27

三、本地调试

1.debug运行

debug运行SeaTunnelApiExample.java下的主类,

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

2.执行结果

本文由 白鲸开源 提供发布支持!

5分钟教你使用idea调试SeaTunnel自定义插件的更多相关文章

  1. 超详细手把手教你cordova开发使用指南+自定义插件,jsbridge

    Cordova是什么 使用前端技术 开发跨平台web App的工具 底层原理:HTML+CSS搭建页面, JS和原生交互 交互原理:Cordova插件 环境配置 安卓开发基础环境搭建的文章可以参考一下 ...

  2. Cordova应用的JavaScript代码和自定义插件代码的调试

    我之前写过三篇Cordova相关的技术文章.当我们使用Cordova将自己开发的前端应用打包安装到手机上后,可能会遇到需要调试Cordova应用的时候. 本文就介绍Cordova应用的调试步骤. 如果 ...

  3. 10分钟 教你学会Linux/Unix下的vi文本编辑器

    10分钟 教你学会Linux/Unix下的vi文本编辑器 vi编辑器是Unix/Linux系统管理员必须学会使用的编辑器.看了不少关于vi的资料,终于得到这个总结.不敢独享,和你们共享. 首先,记住v ...

  4. 3分钟教你做一个iphone手机浏览器

    3分钟教你做一个iphone手机浏览器 第一步:新建一个Single View工程: 第二步:新建好工程,关闭arc. 第三步:拖放一个Text Field 一个UIButton 和一个 UIWebV ...

  5. GC算法精解(五分钟教你终极算法---分代搜集算法)

    GC算法精解(五分钟教你终极算法---分代搜集算法) 引言 何为终极算法? 其实就是现在的JVM采用的算法,并非真正的终极.说不定若干年以后,还会有新的终极算法,而且几乎是一定会有,因为LZ相信高人们 ...

  6. 【python】10分钟教你用python打造贪吃蛇超详细教程

    10分钟教你用python打造贪吃蛇超详细教程 在家闲着没妹子约, 刚好最近又学了一下python,听说pygame挺好玩的.今天就在家研究一下, 弄了个贪吃蛇出来.希望大家喜欢. 先看程序效果: 0 ...

  7. 10分钟教你用Python打造天气机器人+关键字自动回复+定时发送

    01 前言 Hello,各位小伙伴.自上次我们介绍了Python实现天气预报的功能以后,那个小程序还有诸多不完善的地方,今天,我们再次来完善一下我们的小程序.比如我们想给机器人发“天气”等关键字,它就 ...

  8. 10分钟教你用Python打造微信天气预报机器人

    01 前言 最近武汉的天气越来越恶劣了.动不动就下雨,所以,拥有一款好的天气预报工具,对于我们大学生来说,还真是挺重要的了.好了,自己动手,丰衣足食,我们来用Python打造一个天气预报的微信机器人吧 ...

  9. 10分钟教你用Python玩转微信之好友性别比例统计分析

    01 前言+效果展示 想必,微信对于大家来说,是再熟悉不过的了.那么,大家想不想探索一下微信上的各种奥秘呢?今天,我们一起来简单分析一下微信上的好友性别比例吧~废话不多说,开始干活. 结果如下: 02 ...

  10. 10分钟教你用Python玩转微信之抓取好友个性签名制作词云

    01 前言+展示 各位小伙伴我又来啦.今天带大家玩点好玩的东西,用Python抓取我们的微信好友个性签名,然后制作词云.怎样,有趣吧~好了,下面开始干活.我知道你们还是想先看看效果的. 后台登录: 词 ...

随机推荐

  1. php des加密用java解析不了 改个模式 加个IV php密钥/IV要求都是8位

    php des加密用java解析不了 改个模式 加个IV  php密钥/IV要求都是8位 php des加密用java解析不了 Wrong IV length: must be 8 bytes lon ...

  2. java关于json的一些问题

    今天重写代码的时候,发现了一个异常:java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntim ...

  3. 原生js实现下拉框可输入

    js实现下拉框可输入 前言 众所周知,html默认的下拉框是无法输入值的,然后最新的办法是用datalist和输入框绑定,但是很多浏览器不支持.然后还有很多框架提供的下拉框都是可输入的.但是公司的项目 ...

  4. 开源一个RAG大模型本地知识库问答机器人

    弹指间,2009年大学毕业到现在2024年,已经15年过去了. 前2天,看到自己14年在博客园写的一个博客,哪个时候是工作之余创业 感兴趣的朋友可以看看我10年前发的一篇博客https://www.c ...

  5. linux 4.19 ip重组

    IP重组 ip重组这部分 4.19内核与3.10内核有些差别,4.9.134以后内核中不使用低水位和工作队列了,同时使用了rhashtable 替代了 hash bucket的概念,在3.10内核中使 ...

  6. 实测14us,Linux-RT实时性能及开发案例分享—基于全志T507-H国产平台

    本文带来的是基于全志T507-H(硬件平台:创龙科技TLT507-EVM评估板),Linux-RT内核的硬件GPIO输入和输出实时性测试及应用开发案例的分享.本次演示的开发环境如下: Windows开 ...

  7. Unable to start web server; nested exception is org.springframework.context.ApplicationContextException

    项目报错:Unable to start web server; nested exception is org.springframework.context.ApplicationContextE ...

  8. Solo 开发者周刊 (第 1 期):开源产品的探索之路

    产品推荐 如何着手将一个简单的想法转变为一个成熟的开源项目,以及如何在此过程中利用和贡献于开源社区.同时使其达到商业化的同时,保持原有的开源精神.这些是我们需要探索的. Spug 开源运维平台 Spu ...

  9. 2024-07-13:用go语言,给定一个从0开始的长度为n的整数数组nums和一个从0开始的长度为m的整数数组pattern,其中pattern数组仅包含整数-1、0和1。 一个子数组nums[i.

    2024-07-13:用go语言,给定一个从0开始的长度为n的整数数组nums和一个从0开始的长度为m的整数数组pattern,其中pattern数组仅包含整数-1.0和1. 一个子数组nums[i. ...

  10. OnlyOffice 部署与使用

    Onlyoffice为office类文档预览支持服务,该服务需在Linux系统上运行,需要用Docker容器技术. 以下步骤皆在Linux系统中操作. 一.OnlyOffice部署 1.安装Docke ...