在用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. gradle dependencies 查找jar导入OR解决jar冲突

    在gradle项目中,使用gradle dependencies先查询jar包的导入关系.然后找到导入的jar加入到项目中来.解决jar冲突等问题. 类似格式如下: annotationProcess ...

  2. SM4Utils加解密demo

    SM4Utils加解密demo package com.example.core.mydemo.sm4; import cn.org.bjca.utils.SM4Utils; public class ...

  3. gitlab角色与权限

    用户在项目中的角色 Guest:访客.可以创建issue.发表评论,不能读写版本库.(就是看不了代码-) Reporter:Git项目测试人员.可以克隆代码,不能提交.QA.PM可以赋予这个权限. D ...

  4. Nuxt3 的生命周期和钩子函数(一)

    title: Nuxt3 的生命周期和钩子函数(一) date: 2024/6/25 updated: 2024/6/25 author: cmdragon excerpt: 摘要:本文是关于Nuxt ...

  5. Linux 驱动:LED子系统

    Linux 驱动:LED子系统 背景 在调试aw9523的时候,为了实现客户要的一个效果.需要修改驱动,但是大概看了一下驱动,但是因为不太熟悉LED子系统,所以有点云里雾里. 参考: https:// ...

  6. 三屏异显案例分享,基于全国产RK3568J工业平台!

    在工业领域中,能否更灵活.更高效地在主屏幕进行主要任务,并在其他副屏幕上进行其他次要任务(例如查看参考资料.监控其他应用程序),一直都是许多工业领域客户面临的刚需,而"多屏异显"功 ...

  7. 2024年,AI驱动测试管理工具会有哪些发展前景呢?

    随着人工智能技术的日新月异,2024年的测试管理工具将迎来全新的发展机遇.AI赋能将助力测试管理工具实现前所未有的智能化升级,为软件研发团队带来革命性的变革. 一.什么是AI? 人工智能(AI)是一种 ...

  8. UG 2406 python 二次开发环境配置

    UG 2406 python 二次开发环境配置 项目地址 https://gitee.com/unm001/nx2406.git 安装python 安装 python 3.10.11 D:\prog\ ...

  9. Linux Mint操作系统安装

    1,Linux 发行版 什么是Linux 发行版呢?这要从Linux 来源说起.Unix操作系统后期,开始收费和商业闭源了.一个叫Richard  Stallman 的人就发起 GNU 计划,想模仿U ...

  10. VUE商城项目 - 项目优化上线 - 手稿