当前环境:

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

<assemblyxmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"><id>bin</id><formats><format>zip</format></formats><fileSets><fileSet><directory>${project.build.directory}</directory><outputDirectory>/</outputDirectory><includes><include>*.jar</include></includes></fileSet></fileSets><dependencySets><dependencySet><outputDirectory>lib/</outputDirectory><useProjectArtifact>false</useProjectArtifact></dependencySet></dependencySets>
</assembly>

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 自定义插件相关推荐

  1. kettle快速连接clickhouse

    文章目录 前言 一.构造连接字符串 二.添加jar包 三.Kettle创建DB连接 四.相关jar包下载 前言 因为kettle官方不支持clickhouse的驱动,所以需要自己自定义插件并生成jar ...

  2. JQuery自定义插件详解之Banner图滚动插件

      前  言 JRedu JQuery是什么相信已经不需要详细介绍了.作为时下最火的JS库之一,JQuery将其"Write Less,Do More!"的口号发挥的极致.而帮助J ...

  3. kettle连接不上es7_kettle8.2连接ElasticSearch7

    成品插件下载地址:https://download.csdn.net/download/wyazyf/11286050 一.下载 1.下载kettle8.2的发布版源码包,具体版本为8.2,地址:ht ...

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

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

  5. foobar插件_如何为 caddy 添写自定义插件

    如何为 caddy 添写自定义插件 项目地址:https://github.com/yhyddr/quicksilver/tree/master/gosample/caddy-plugin 前言 Ca ...

  6. Kettle连接人大金仓KingbaseES数据库

    Kettle连接人大金仓KingbaseES数据库 1.驱动下载.在人大金仓官网–>通用型数据库–>接口驱动–> JDBC 驱动程序 X86(第一个驱动包)下载出来,直达链接(点此直 ...

  7. vue里面_Vue中如何使用自定义插件(plugin)

    Vue中如何使用自定义插件(plugin) 1.在根目录src下创建一个libs文件夹,在libs文件夹下面创建一个myPlugins文件夹,用来存放我们的自定义插件,在myPlugins文件夹下面再 ...

  8. openstack页面自定义插件使用详解(django、ajax、post)(zTree为例)

    2019独角兽企业重金招聘Python工程师标准>>> 感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如有转载,请保留源作者博客信息. Be ...

  9. Kettle连接HiveServer2配置和常见问题解决

    Kettle连接HiveServer2配置和常见问题解决 参考文章: (1)Kettle连接HiveServer2配置和常见问题解决 (2)https://www.cnblogs.com/xieys- ...

最新文章

  1. PetShop 4.0 数据访问层之我所见
  2. 天谕手游与奥特曼联手,玩家看到有多么激动?
  3. 从 Nginx、Apache 工作原理看为什么 Nginx 比 Apache 高效!
  4. Java 字符串匹配的KMP算法
  5. 正确绑定键盘事件_事件为何重要以及如何正确处理
  6. iPhone应用可用性的试探性分析
  7. C类型和存储方式的语言变量
  8. 摩拜单车开锁实现原理剖析
  9. python 3.6 安装 win32 win32com模块
  10. JSPstudy恢复80端口
  11. CNZZ、51啦、量子恒道、谷歌网站流量统计比较
  12. 文献阅读-CSC-中文错别字-有关论文搜集-+CGED
  13. HIT软件构造 软件生命周期 配置管理
  14. 外卖行业现状分析_外卖行业生存现状分析:你还会点外卖吗?
  15. 【Burp Suite实战指南】【定期更新】
  16. 搭建一个springboot工程测试md5加密
  17. 企业管理中育人的一些心得
  18. Houdini学习笔记——【案例二】消散文字制作
  19. forwardRef 的详解及使用
  20. C罗8000W英镑到底是多少钱?!

热门文章

  1. pattern java怎么用_Pattern Java设计模式23种每个一个举例使用,名称直接对应英文,简单明了 Develop 238万源代码下载- www.pudn.com...
  2. 中国家庭收入调查数据(CHIP)
  3. vb与oracle数据库连接,vb.net 如何与oracle数据库连接
  4. httpclient JAR包下载地址
  5. qt中QPixmap和QImage使用
  6. 5GNR漫谈10:5G RF射频设计验证
  7. gdb gdbtui
  8. Word处理控件Aspose.Words功能演示:使用C#对PDF文件进行进一步修改和转换
  9. echarts图表插件炫光的分布地图动画特效
  10. Python-Django毕业设计安卓电影院售票管理APP论文(程序+LW)