![](https://img-blog.csdnimg.cn/55b46d749d6841f49e288d156203abe2.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
kettle
文章平均质量分 81
kettle源码、工具方面知识点
伟衙内
这个作者很懒,什么都没留下…
展开
-
记录Kettle连不上mysql8
【问题描述】在使用(Kettle) pdi-ce-8.2 连接MySQL 8.x及以上数据库时,发现即使按照默认的规则,将与MySQL 8.x数据库对应的jar包放到Kettle的\data-integration\lib目录下,并且正确的填写数据库连接信息后,仍然不能连接成功。在很早之前,我一直用的是Mysql 5的驱动包去连接数据库,今天发现突然连接不上了,想了一下,应该是我以前升级mysql后的原因,换了mysql8的驱动后依旧没个卵用。此时看特征列表,发现驱动和URL都正常,连接也可以了!...原创 2022-08-31 10:02:36 · 1169 阅读 · 1 评论 -
RowListener
目录前言代码说明 TableInputRowAdapter TableOutputRowAdapter其他代码段后记完整交换代码前言 本次目的是监控数据,然后能操作数据,同时继承TableInput,TableInputMeta和TableOutput,TableOutputMeta类,能实现其中主要的方法--processRow()。 首先来看监控数据,也就是BaseStep类中的addRowListener(...原创 2021-11-25 15:10:26 · 596 阅读 · 0 评论 -
kettle调试查看源码数据
目录前言运行TableInput描述TableOutput描述前言在之前我写了如何通过java 脚本来修改数据,从而确定有一个processRow()方法,该方法中能获取到数据信息等,那么接下来就是需要运行一个简单的表交换来看数据是怎么流的。 首先写一个简单的tableInput->tableOutput的交换,这里代码就贴在最后,毕竟只是用mysql表交换,数据也不多,太简单了。 定义一个源表,放两条数据,然后新建一个u...原创 2021-11-24 17:19:05 · 1139 阅读 · 0 评论 -
Kettle-8.2.0.0.342全源码通过版本
pentaho-kettle-8.2.0.0-342源码: pentaho-kettle-8.2.0.0-342 的源码,自己调整或者即将调整的 - Gitee.comhttps://gitee.com/king_software/pentaho-kettle-8.2.0.0-342/tree/dev/ 如上所示地址是编译并运行通过的8.2.0.0-342版本的全源码,其中origin-2021-11-23分支是编译通过最原始的一个分支,为只读分支。 在i...原创 2021-11-23 16:56:35 · 1618 阅读 · 0 评论 -
Java脚本处理数据
目录一、 流程二、 代码一、 流程 在继承kettle的类之前,先去看spoon中有一个脚本的组件,可以使用java代码或者js等处理数据, 当把这个流程配置起来的时候,是如下所示, 当双击这个main时,会出现一个方法,这就是处理行数据的方法, 其中有参考示例,设置值的示例,如下图所示, 当运行后结果如下图,确实,通过Java代码处理了数据,二、 代码 ...原创 2021-11-23 15:42:02 · 813 阅读 · 0 评论 -
给记录排序并去除重复记录
目录一、流程图二、 代码排序记录去除重复记录三、运行完整代码ktr文件一、流程图 如下图,本次重点是排序记录和去除重复记录两个节点说明。 排序记录界面配置如下,一般只需要填写字段列信息即可,其他信息使用默认的就行, 去除重复记录也是填写下面比较的字段即可,这里会比较id,name,age三个内容的值,如果一致那么就会去掉一条,当然也可以仅仅指定id,如果是相同的id那么也意味着相同记录。二、 代码...原创 2021-11-23 14:18:38 · 872 阅读 · 0 评论 -
字符串剪切,替换,操作案例
目录一、流程说明二、代码剪切替换操作三、问题项 问题:string can't convert to number 问题、少设置属性导致空指针 问题、节点连接错误四、运行完整代码ktr文件一、流程说明 三个步骤,先剪切,后替换,然后大小写转换,三个字符串的操作步骤。二、代码剪切/** * 剪切字符串 * @return */ private S...原创 2021-11-22 17:49:08 · 1106 阅读 · 0 评论 -
转换--连接字符串和计算器
一、流程 concat fields和计算器是转换里面的,本次以这两个为列讲述转换里面的东西,还是从ktr分析开始。 观察concat fields节点,其实就是将firstName和lastName连接起来,并赋值给name这个字段, 计算器就是定义新字段,选择计算方式,指定需要计算的列, 明白界面怎么配置后,就知道该设置哪些属性,该怎么看ktr文件,该怎么写代码,关于spoon工具的讲解,B站有很多。 ...原创 2021-11-22 15:21:00 · 385 阅读 · 1 评论 -
csv交换到excel
目录一、准备工作二、 分析ktr三、代码分析四、 问题项问题、没有设置bufferSize问题、没有设置ExcelOutputMeta的ExcelField五、运行完整代码完整ktr一、准备工作 准备一个csv文件,内容如下, 在spoon工具中配置如下交换,并保存为ktr文件,并实验交换是正常的。二、 分析ktr 通过上一篇得知应该看哪些元素,那么此处就忽略重复的了,简略描述下。...原创 2021-11-19 14:44:26 · 466 阅读 · 0 评论 -
通过ktr文件写交换代码
目录一、ktr文件生成二、分析ktr文件解析类文件路径文件字段图形化信息输出节点三、交换代码初始化环境 输入节点 输入字段列设置 输出节点输出节点列设置设置Trans将步骤添加到Trans步骤关联交换执行四、问题点问题、no class found 没有jxl包和poi包问题、 没有设置includeSubFolders属性问题、没有设置fileMask和excludeFileMask 问题、没有设...原创 2021-11-19 10:48:51 · 2931 阅读 · 0 评论 -
kettle中错误处理
目录一、图文说明二、 错误处理代码上述的图片整体代码三、扩展图片说明完整代码一、图文说明 在如上图中,有定义一个tableOutputError,如果在select节点发生错误,那么就将进入此tableOutputError,将错误数据输出到表。 但是如果是tableOutput处发生了错误,那么就无法进行错误处理了,后面没有定义错误处理。 界面选择错误处理如下, 只有有定义错误处理选项的才能...原创 2021-11-15 18:03:01 · 5481 阅读 · 0 评论 -
代码生成ktr文件
目录代码生成ktr spoon界面查看代码生成ktr 从之前的一个Kettle交换代码来看,应该可以生成ktr文件,在spoon页面上展示。 代码如下:/** * hive之间的交换 * @throws KettleException */ @Test public void exchangeMysql2Mysql() throws KettleException{ //源数据库连接 Strin...原创 2021-11-12 11:55:07 · 4560 阅读 · 0 评论 -
kettle 插入/更新节点
目录前言编写代码报错解决完整代码前言 一直以来的都是使用TableOutput输出到表,但是如果是有主键,需要更新数据,用这个很明显是不可以的。 所以需要InsertUpdateMeta节点,交换模型如下图红框所示,表输入-->插入/更新 插入更新节点的设置如下图两个表的话如下图所示,目标表无主键源表有主键运行一次上述交换后,源表数据插入到目标表,再次运行发现目标表还是只有两条...原创 2021-08-27 10:18:55 · 4392 阅读 · 2 评论 -
通过写文件方式写数据到hive库中
目录前言环境查看编写代码错误解决 连接拒绝 Permission denied路径不对完整代码前言 还是之前kettle中那个hive环境,这次不用kettle将数据加载到hive中去,而是用写文件的方式。 环境介绍: 三个hadoop节点192.168.10.211 node01 (master)192.168.10.212 node02 (slave)192...原创 2021-08-25 15:36:53 · 811 阅读 · 0 评论 -
kettle中获取执行步骤信息
如下图所示,获取到的信息打印后和kettle日志打印出来的内容是一致的, 上述打印其实很简单,如下代码所示,其实就是从trans中获取执行步骤,从执行步骤中获取信息。 //等待完成 trans.waitUntilFinished(); if (trans.getErrors() > 0) { System.out.println("交换出错."); return; ...原创 2021-08-24 20:20:33 · 1005 阅读 · 0 评论 -
kettle 复制和分发记录
如下图模型,一个表输入,两个表输出,那么这个表的数据是复制到两个表输出还是分发给两个表输出? 在连接线的时候会有下图提示, 提示你选择复制还是分发,分发也有解释轮流接收记录,也就是两表输出一个接收一半,另一个接收一半。 那么代码呢?依旧是上次mysql交换到hive的那个代码,稍微改一改,只不过不是两个表输出,而是一个是TableOutputMeta,一个是RowsToResultMeta(复制到结果集) 上一次我们是把table...原创 2021-08-24 17:29:00 · 2779 阅读 · 0 评论 -
kettle 获取查询到变量、结果集、JSON中
目录一、将查询结果放入变量中二、 获取查询结果到结果集三、将查询结果放入JsonOutputMeta一、将查询结果放入变量中 初始化环境,@Beforepublic void before() { try { // 初始化Kettle环境 KettleEnvironment.init(); EnvUtil.environmentInit(); } catch (KettleException e) {...原创 2021-08-23 15:03:05 · 4837 阅读 · 1 评论 -
Hive与MySQL、Oracle、SqlServer的简单交换
目录前言Hive与Mysqlhive到mysqlmysql到hiveHIve与Oracle hive到oracleoracle到hiveHIVE与SQLserver hive到sqlserversqlserver到hive完整代码前言 在https://blog.csdn.net/lw18751836671/article/details/119794613?spm=1001.2014.3001.5501中写了...原创 2021-08-20 17:56:47 · 892 阅读 · 0 评论 -
Hive之间使用5.1的kettle-core包交换
目录前言core的源码修改 前言在这个博客中https://blog.csdn.net/lw18751836671/article/details/119794613?spm=1001.2014.3001.5501,我误以为下载的是5.1的源码,没想到是9.3的源码,5.1的源码的core模块如何下载打包看这里,https://blog.csdn.net/lw18751836671/article/details/1198...原创 2021-08-20 10:14:55 · 278 阅读 · 0 评论 -
关于kettle 5.1源码的打包
目录下载kettle-core变成maven工程kettle-engine变成maven打包下载地址:https://github.com/pentaho/pentaho-kettle/tree/5.1将zip文件解压,然后导入到Idea,导入后如下图所示,5.1的源码不是一个maven工程,所以下载源码不是很方便,所以就给他改成一个maven工程。kettle-core变成maven工程新建一个pom.xml内容如下&l...原创 2021-08-20 10:07:16 · 513 阅读 · 0 评论 -
使用Kettle的Hive交换简单模型
目录前言一、5.1.0.0-752的jar包运行引包编写HIVE2HIVE的Java代码初始化环境编写交换代码编写HIVE的连接信息二、在hive中创建表三、运行代码问题点感想前言还是用以前搭建的那个Kettle环境,当然引用的jar包也是以前5.1.0.0-752,这个是公司仓库上的包,已经很老很老了。用这个包去做hive到hive的交换的话,需要改源码。我下载的源码还是从这个地址下载的,这...原创 2021-08-19 10:23:42 · 584 阅读 · 0 评论 -
Java调用kjb文件
目录一、kjb和ktr文件创建kjb文件ktr文件关联kjb和ktr变量信息二、 Java代码调用kjb引包放入kjb和ktr文件三、代码调用定时任务一、kjb和ktr文件创建kjb文件首先先新建一个Job,如下图所示,这样就新建了一个kjb文件,即一个可以被java运行的job。ktr文件然后创建一个ktr文件,即如下图所示关于其中的元素,不过多的介绍了。关联kjb和ktr接着将kjb...原创 2021-08-13 15:11:27 · 4504 阅读 · 1 评论 -
运行kettle-8.2源码
目录一、下载源码二、导入工程修改pom.xml三、运行四、界面交换一、下载源码地址:https://github.com/pentaho/pentaho-kettle我下载的是8.2这个源码,如下图所示,下载下来后应该是个zip文件,解压成目录即可。二、导入工程这里我使用的是idea导入kettle源码,eclipse我试了下,也大同小异。idea的话,选择到如下目录即可。工程导入后就如下图这样此时工程还无法运行,有几个重要...原创 2021-08-11 14:07:54 · 1966 阅读 · 2 评论 -
Kettle 抽取源表数据加载到目标表中
九月 18, 2020 11:31:41 上午 org.apache.commons.vfs.impl.StandardFileSystemManager info信息: Using "C:\Users\ADMINI~1\AppData\Local\Temp\vfs_cache" as temporary files store.select name,age,mail,phone from etl_src_table2020/09/18 11:31:42 - 全量抽取数据 - 为了转换解除补丁开始原创 2020-09-18 12:35:30 · 1771 阅读 · 1 评论 -
使用Kettle编写抽取数据
目录环境工程搭建引入kettle的jar包引入辅助包3. 添加mysql连接jar包4. 添加lombok包创建数据库和表代码分析初始话kettle环境定义数据库信息 3. mysql处理 4.生成表输入5. 设置查询SQL6. 将操作添加到步骤中7. 选择字段8. 将操作添加到步骤9. 将步骤串联起来10. ...原创 2019-12-18 11:04:03 · 1835 阅读 · 1 评论