- 前言
- ⭐️ 环境&参考
- 参考文档
- 自定义插件
- 创建Java Maven项目
- 创建Java类
- 按照官方文档重写对应方法
- 打包
前言
使用Kettle 整合不同Mysql数据库数据,批量插入Clickhouse,会不定时出现java.net.SocketException: Broken pipe错误 。Clickhouse社区给出的答案是驱动问题。社区回答
- 开始尝试升级clickhouse驱动,看是否解决问题,GitHub驱动地址。
⭐️ 环境&参考
- Clickhouse 21.4.5.46
- Kettle 9.1.0
- clickhouse JDBC驱动 com.clickhouse 0.3.2-patch3
Kettle 官方自定义创建插件文档
喜欢吃燕麦粥的KeyL 大佬博客
自定义插件 创建Java Maven项目这里使用的还是kettle 8.1的包,9.1也可以使用,这里使用Clickhouse官方最新驱动
com.clickhouse
clickhouse-jdbc
0.3.2-patch3
创建Java类
@DatabaseMetaPlugin(type = "Clickhouse", typeDescription = "Clickhouse")
public class ClickhouseDatabaseMeta extends BaseDatabaseMeta implements DatabaseInterface {
private static final String STRICT_BIGNUMBER_INTERPRETATION = "STRICT_NUMBER_38_INTERPRETATION";
按照官方文档重写对应方法
- getURL方法
- 驱动修改getDriverClass
将所有依赖jar,打包成jar包。存放到新建clickhouse-plugins文件夹下。需要去Maven仓库把相关jar,和驱动放在 libswt /win64/下 。
插件下载地址



