Kettle连接Clickhouse 自定义插件
当前环境:
clickhouse 19.15.1.1 (19年的老版本ch ,还未更新过)
kettle 8.1.0.0-365 (因为8.1对parquet 支持较好,所以选了这个版本)
当前问题:kettle -8 目前提供的JDBC 没有clickhouse。 需要自己手写插件,集成到kettle 系统。
前期准备:搜到过类似新增JDBC的文章,包括:官网提供的自定义连接的方法 和 神通数据库的案例。
官网提示地址:https://help.pentaho.com/Documentation/8.1/Developer_Center/PDI/Extend/020
思路:即固定数据库连接,读取plugins目录下的jar 包。
0.创建maven 工程 编辑pom.xml
<modelVersion>4.0.0</modelVersion><parent><groupId>org.pentaho</groupId><artifactId>pentaho-ce-jar-parent-pom</artifactId><version>8.1.0.0-365</version></parent><groupId>com.xxxxr</groupId><artifactId>MyDev</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><name>MyDev</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><eula-wrap_create-dist-phase></eula-wrap_create-dist-phase><eula-wrap_assign-deps-to-properties-phase></eula-wrap_assign-deps-to-properties-phase><mockito.version>1.10.19</mockito.version><pentaho-metadata.version>8.1.0.0-365</pentaho-metadata.version><eula-wrap_create-izpack-installer-jar-phase></eula-wrap_create-izpack-installer-jar-phase><pdi.version>8.1.0.0-365</pdi.version><eula-wrap_attach-dist-phase></eula-wrap_attach-dist-phase><junit.version>4.12</junit.version></properties><dependencyManagement><dependencies><dependency><groupId>xerces</groupId><artifactId>xercesImpl</artifactId><version>2.8.1</version></dependency><dependency><groupId>net.jpountz.lz4</groupId><artifactId>lz4</artifactId><version>1.2.0</version></dependency><dependency><groupId>ru.yandex.clickhouse</groupId><artifactId>clickhouse-jdbc</artifactId><version>0.1.50</version></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>pentaho-kettle</groupId><artifactId>kettle-core</artifactId><version>${pdi.version}</version><scope>provided</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><dependency><groupId>net.jpountz.lz4</groupId><artifactId>lz4</artifactId><version>1.3.0</version></dependency><dependency><groupId>ru.yandex.clickhouse</groupId><artifactId>clickhouse-jdbc</artifactId><version>0.1.50</version></dependency></dependencies><build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><executions><execution><id>distro-assembly</id><phase>package</phase><goals><goal>single</goal></goals><configuration><appendAssemblyId>false</appendAssemblyId><descriptors><descriptor>src/main/assembly/assembly.xml</descriptor></descriptors></configuration></execution></executions></plugin></plugins></build>
1. Clickhouse 类继承一下接口
class ClickhouseDatabaseMeta extends BaseDatabaseMeta implements DatabaseInterface
2.Override其方法
包含 AccessTypeList、DefaultDatabasePort(对应客户端默认接口)、supportsAutoInc()、SQLQueryFields 等, 挑能用到的重写就可以
3. 添加assembly.xml
|
4.打jar包,并把所有依赖包打进去。上传jar到 plugins 下 新建clickhouse-plugins文件夹下。
同时 ,去 https://mvnrepository.com/ 下载一个 clickhouse-jdbc的 jar 包 。放在 libswt /win64/下 。 和以往kettle依赖 mysql driver ,mssql driver 一样的。 找不到下载源也可以去下载我上传的 driver
重启 kettle 。测试 ok
遇到的问题:
一、
错误连接数据库 [clickhouse] : org.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the database
Error connecting to database: (using class ru.yandex.clickhouse.ClickHouseDriver)
net/jpountz/lz4/LZ4Factory
Caused by: java.lang.NoClassDefFoundError: net/jpountz/lz4/LZ4Factory
Caused by: java.lang.ClassNotFoundException: net.jpountz.lz4.LZ4Factory
解决方法:添加pom依赖:
<dependency>
<groupId>net.jpountz.lz4</groupId>
<artifactId>lz4</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>ru.yandex.clickhouse</groupId>
<artifactId>clickhouse-jdbc</artifactId>
<version>0.1.50</version>
</dependency>
注意,若是依赖性的问题读不到。则把依赖添加的自己的plugins\pentaho-cassandra-plugin\lib下 ,或者 其他lib 类目录下。
不同版本依赖路径可能不一样。灵活一点。
二、
错误连接数据库 [c] : org.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the database
Error connecting to database: (using class ru.yandex.clickhouse.ClickHouseDriver)
Could not initialize class ru.yandex.clickhouse.response.ClickHouseLZ4Stream
jar包问题,打到一起解决了。
三、
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to 10.96.149.53:8123 [/10.96.149.53] failed: Connection refused: connect
Caused by: java.net.ConnectException: Connection refused: connect
server port 问题,确保server 可以远程访问即可
注意:
1.上传我的v2版本jar包至plugin/clickhouse-plugin
2.上传maven 的 driver v0.1.50 至 libswt/win64/
driver 版本 要和依赖一致。
3.重启kettle8。
若还有问题,请留言评论,共同探讨解决,互相学习。
具体kettle To Clickhouse JDBC(KettleJDBCClickhouse )、以及clickhouse-jdbc.jar (Driver)已上传至资源。请下载新版本v2
github 源码 : https://github.com/aaa8210/kettle2clickhouse
欢迎各位大神二次开发,积极献策。
Kettle连接Clickhouse 自定义插件相关推荐
- kettle快速连接clickhouse
文章目录 前言 一.构造连接字符串 二.添加jar包 三.Kettle创建DB连接 四.相关jar包下载 前言 因为kettle官方不支持clickhouse的驱动,所以需要自己自定义插件并生成jar ...
- JQuery自定义插件详解之Banner图滚动插件
前 言 JRedu JQuery是什么相信已经不需要详细介绍了.作为时下最火的JS库之一,JQuery将其"Write Less,Do More!"的口号发挥的极致.而帮助J ...
- kettle连接不上es7_kettle8.2连接ElasticSearch7
成品插件下载地址:https://download.csdn.net/download/wyazyf/11286050 一.下载 1.下载kettle8.2的发布版源码包,具体版本为8.2,地址:ht ...
- Cordova应用的JavaScript代码和自定义插件代码的调试
我之前写过三篇Cordova相关的技术文章.当我们使用Cordova将自己开发的前端应用打包安装到手机上后,可能会遇到需要调试Cordova应用的时候. 本文就介绍Cordova应用的调试步骤. 如果 ...
- foobar插件_如何为 caddy 添写自定义插件
如何为 caddy 添写自定义插件 项目地址:https://github.com/yhyddr/quicksilver/tree/master/gosample/caddy-plugin 前言 Ca ...
- Kettle连接人大金仓KingbaseES数据库
Kettle连接人大金仓KingbaseES数据库 1.驱动下载.在人大金仓官网–>通用型数据库–>接口驱动–> JDBC 驱动程序 X86(第一个驱动包)下载出来,直达链接(点此直 ...
- vue里面_Vue中如何使用自定义插件(plugin)
Vue中如何使用自定义插件(plugin) 1.在根目录src下创建一个libs文件夹,在libs文件夹下面创建一个myPlugins文件夹,用来存放我们的自定义插件,在myPlugins文件夹下面再 ...
- openstack页面自定义插件使用详解(django、ajax、post)(zTree为例)
2019独角兽企业重金招聘Python工程师标准>>> 感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如有转载,请保留源作者博客信息. Be ...
- Kettle连接HiveServer2配置和常见问题解决
Kettle连接HiveServer2配置和常见问题解决 参考文章: (1)Kettle连接HiveServer2配置和常见问题解决 (2)https://www.cnblogs.com/xieys- ...
最新文章
- PetShop 4.0 数据访问层之我所见
- 天谕手游与奥特曼联手,玩家看到有多么激动?
- 从 Nginx、Apache 工作原理看为什么 Nginx 比 Apache 高效!
- Java 字符串匹配的KMP算法
- 正确绑定键盘事件_事件为何重要以及如何正确处理
- iPhone应用可用性的试探性分析
- C类型和存储方式的语言变量
- 摩拜单车开锁实现原理剖析
- python 3.6 安装 win32 win32com模块
- JSPstudy恢复80端口
- CNZZ、51啦、量子恒道、谷歌网站流量统计比较
- 文献阅读-CSC-中文错别字-有关论文搜集-+CGED
- HIT软件构造 软件生命周期 配置管理
- 外卖行业现状分析_外卖行业生存现状分析:你还会点外卖吗?
- 【Burp Suite实战指南】【定期更新】
- 搭建一个springboot工程测试md5加密
- 企业管理中育人的一些心得
- Houdini学习笔记——【案例二】消散文字制作
- forwardRef 的详解及使用
- C罗8000W英镑到底是多少钱?!
热门文章
- pattern java怎么用_Pattern Java设计模式23种每个一个举例使用,名称直接对应英文,简单明了 Develop 238万源代码下载- www.pudn.com...
- 中国家庭收入调查数据(CHIP)
- vb与oracle数据库连接,vb.net 如何与oracle数据库连接
- httpclient JAR包下载地址
- qt中QPixmap和QImage使用
- 5GNR漫谈10:5G RF射频设计验证
- gdb gdbtui
- Word处理控件Aspose.Words功能演示:使用C#对PDF文件进行进一步修改和转换
- echarts图表插件炫光的分布地图动画特效
- Python-Django毕业设计安卓电影院售票管理APP论文(程序+LW)