Kettle 连接 Oracle 使用手册 及 问题解决方案

版本信息

Oracle: 19c
Kettle: pdi-ce-9.2.0.0
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)

Kettle介绍:Link

基本概念:

1.Transformation:定义对数据操作的容器,数据操作就是数据从输入到输出的一个过程,可以理解为比Job粒度更小一级的容器,我们将任务分解成Job,然后需要将Job分解成一个或多个Transformation,每个Transformation只完成一部分工作
(定义对数据操作的容器,数据操作就是数据从输入到输出的一个过程,可以理解为比作业粒度更小一级的容器,我们将任务分解成作业,然后需要将作业分解成一个或多个转换,每个转换只完成一部分工作)
2.Step:是Transformation内部的最小单元,每一个Step完成一个特定的功能。
3.Job:负责将Transformation组织在一起进而完成某一工作,通常我们需要把一个大的任务分解成几个逻辑上隔离的Job,当这几个Job都完成了,也就说明这项任务完成了
(负责将[转换]组织在一起进而完成某一块工作,通常我们需要把一个大的任务分解成几个逻辑上隔离的作业,当这几个作业都完成了,也就说明这项任务完成了)
4.Job Entry:Job Entry是Job内部的执行单元,每一个Job Entry用于实现特定的功能,如:验证表是否存在,发送邮件等。可以通过Job来执行另一个Job或者Transformation,也就是说Transformation和Job都可以作为Job Entry
5.Hop:用于在Transformation中连接Step,或者在Job中连接Job Entry,是一个数据流的图形化表示
  在Kettle中Job中的JobEntry是串行执行的,故Job中必须有一个Start的JobEntry;Transformation中的Step是并行执行的

概念模型

1.需要安装Java-Jdk设置环境变量:KETTLE_HOME

2.下载Kettle程序:Link,不需要安装,解压点击 Spoon.bat 运行程序

2.1.Kettle 官方下载页
2.2.sourceforge
2.3.gitee
2.4.github => kettle-big-data-plugin
2.5.github => Kettle Spoon源码
2.6.Kettle 官方帮助文档

3.使用

3.1.Kettle 连接 Oracle 
3.1.1.Kettle 连接 Oracle 驱动:Driver class 'oracle.jdbc.driver.OracleDriver' could not be found
3.1.2.Kettle 连接 MSSQL 驱动: Driver class 'net.sourceforge.jtds.jdbc.Driver' could not be found
3.1.3.Kettle 连接 MySql 驱动:Driver class 'org.gjt.mm.mysql.Driver' could not be found
3.2.Kettle 加密字符串
3.3.Kettle 使用变量
3.3.1.Kettle 处理变量值
3.4.Kettle 创建转换[Transformation]和定时任务[Job]
3.5.Kettle 读取Excel中的数据保存到Oracle
3.5.1.Kettle Excel导入增加常量【增加列】
3.5.2.kettle的转换组件
3.6.Kettle 自动调度,通过脚本运行转换[Transformation]和定时任务[Job]
3.7.Kettle 自定义循环 & 更新变量值
3.8.Kettle 从数据库读取数据存到变量中
3.9.Kettle 发送Http请求获取数据,并保存到db
 

9.异常

9.1.ORA-28040: No matching authentication protocol
原因:Oracle连接客户端与服务端Oracle的版本不匹配造成的,可使用 3.1.1方法 解决,也可以点击3.1.1的链接下载包替换【对应关系不清楚,我试过还是同样的错误】
9.2.ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
方法:DatabaseName的值为 ServerName,前面需要加 “/
9.3.启动时提示:could not create the java virtual machine
9.3.1.并不是java虚拟机出了问题,需要修改下的spoon.bat里内存配置
if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms2058m" "-Xmx1024m"
改为
if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms512m" "-Xmx512m"
如果电脑内存小于4G,建议可以再小一些
9.3.2.如果启动继续报错,"A java exception has occurred" ,可以考虑下载的Kettle版本是否与你JDK匹配
9.4.点击“Test”按钮,没有任何响应
原因:jdbc 和 Kettle 版本不匹配,按照 3.1方法就能处理
9.9.更多异常参考: Link

 

Reference:

Kettle9.0 简单入门
Kettle — 使用手册
kettle使用教程(超详细)
通过Kitchen和Pan以命令行方式执行kettle的Job和Transformation
kettle的基础概念入门、下载、安装、部署
分类:kettle异常
posted @ 2021-11-17 10:51  Robot-Blog  阅读(2647)  评论(0编辑  收藏  举报