Kettle零基础开始使用过程中,遇到问题及解决办法,自己过程记录

---------1. 在妄图打开软件前------------------------

这个软件需要装jdk
建议jdk直接装1.8以上版本,不然打不开

装JDK注意了,用户变量和系统变量里的path都要写

---------2. 连数据库死活连不上(SQL SERVER)------------------------

数据库这里我用的是SQL server 2008R2

题外话:   建议用kettle  6.2版本的,据说是支持最多的
               7.4是最后一版支持SQL server 2008R2的

我在测试数据库连接时死活连不上,报

错误连接数据库 [ConnectSQLSERVER] : org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database

Driver class 'net.sourceforge.jtds.jdbc.Driver' could not be found, make sure the 'MS SQL Server' driver (jar file) is installed.
net.sourceforge.jtds.jdbc.Driver


org.pentaho.di.core.exception.KettleDatabaseException: 
Error occurred while trying to connect to the database

Driver class 'net.sourceforge.jtds.jdbc.Driver' could not be found, make sure the 'MS SQL Server' driver (jar file) is installed.
net.sourceforge.jtds.jdbc.Driver

去网上搜,都说是要对应的jar包,去下了直接放进去还是不行,按搜到的某个攻略也不行:
 

- Download Microsoft JDBC Drivers 4.2 on https://www.microsoft.com/en-us/download/details.aspx?id=11774
- Unzip the package in a temp directory
- Close Spoon
- Copy '<temp directory>\sqljdbc_4.2\enu\auth\x86\sqljdbc_auth.dll' to 'C:\Program Files (x86)\Java\jre1.8.0_73\bin' (32-bit)
- Copy '<temp directory>\sqljdbc_4.2\enu\sqljdbc42.jar' to '<Kettle installation folder>\data-integration\lib'
- Open Spoon
- Test connection in spoon
- Delete temp directory

最后发现是建立连接选择时,应该选MS SQL SERVER (Native),之前选的一直是MS SQL SERVER,说是不同的厂商还是啥的,选择如图:

我真是哔了狗了

注意啊,不管是连SQLServer 还是MySQL,都要装jdbc包的,装完了重启Kettle。

MySQL:
下载地址:https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.44.zip
文件名:mysql-connector-java-5.1.44.zip
解压后,一样的,将“mysql-connector-java-5.1.44-bin.jar”复制到lib里就行了

SqlServer:
有时候下载了sqljdbc.jar等七七八八的sql jdbc包,放在lib文件夹都不行,

在确定Kettle 连接类型采用MS SQL Server(Native)后,还是报“JDBC Driver class not found: com.microsoft.sqlserver.jdbc.SQLServerDriver”错误,此时只要将sqljdbc.jar/sqljdbc4.jar(oracle 是ojdbc5.jar)包放入data-integration\libswt对应操作系统文件夹下,重启Kettle即可连接上

---------------3. 组件等七七八八的具体使用------------------------

你兴高采烈的打开了,想着建个转换、作业啥的可以跑了,并不,首先好多组件是你不知道的,如果在你想要过滤空数据、重复数据、不符合你七七八八要求的数据、对比数据根据结果分步骤执行、需要参数、需要参数对比取小的、等等

但在开始之前,你发现每个转换都要建数据库连接,这就很麻烦,在我都建好以后,发现
在你建好的DB连接上右键 -> 点击 共享 ,连接名会变为粗体,这就是个共享的链接了,,,

---------------4. 抽取数据乱码------------------------

在已经找到合适的组件,开始抽取后你可能会发现,抽出来的时间格式的“-”被搞成□,汉字被搞成乱码,插入数据时报错

这时候应该先看下:
1. 数据库的字符集是否是UTF-8

2. 修改kettle设置,在输出时对输出的数据库进行编码配置

看到的一般是在数据库链接那里设置

但我设置了没用,后来发现,在查数据的输出那里,把“允许简易转换”去掉,就可以了

----------------------改连mysql数据库,发现  还有一种乱码是汉字全变成问号,eg: 3个汉字就是???-------------------------------

这时我根据以往经验查看数据库、表结构、乱码的那一列,发现都是utf8 (真是令人摸不着头脑.jpg)

那么只要在kettle连接,设定下就可以了,如图

看清楚是utf8,填gbk可解决不了问题

---------------------------5. 你想把写好的布到服务器上--------------------------

批处理文件内容回头补,反正你写好了想运行,发现提示虚拟内存不够

这个时候不要慌,别瞎他妈看什么让你改Eclipse.ini的,咱们又没下那个java的编译器,就直接在你调用的spoon.bat里改就行了,哪里配多了改哪里,详情可以看这个哥们写的

https://blog.csdn.net/zgzyp/article/details/52993688

---------------------------6. 转换之间用参数传递数据--------------------------

按网上来,作业里写2个转换,转换1设置参数,转换2取参数,一直不行,最后发现是尝试的太多,导致作业里的转换路径错乱,整理后就没问题了

卡了我好几天,难受,对了,参数这块,有个大佬总结的特别好,原文点这里

参数总结的特别好的
参数总结的特别好的


 

发布了53 篇原创文章 · 获赞 32 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/niuniuyaobuyao/article/details/100525144