从安转到部署Kettle踩坑记录

       无疑kettle是一款非常强大的ETL转换工具,它的强大也来源于它的开源性,可以运行在任何平台上.kettle是用java写的,所以有java虚拟机的地方它都可以运行.

       现在所要做的是从最开始的安转到搭建成一个在windows上开发,以linux为服务器,资源库位于mysql的一个kettle环境.并完成从oracle同步到mysql的一个程序.

       首先,从网上下载kettle安转包,我下载的是pdi-ce-6.0.1.0-386.zip,解压出来是data-integration这个文件夹.(坑一)想要安装在哪里,就从哪里解压.如果把解压出来的文件再移动到其他地方,启动的时候会报错.

       在linux上解压一份kettle,然后在data-integration下执行”nohup ./carte.sh localhost 8080 >kettle.log &”.这样一来服务就在8080端口上以后台的方式运行了,并将日志输出到了kettle.log中.

   因为需要在windows上开发,所以在windows下也要解压一份kettle.(坑二)将数据库连接的驱动包放在lib下,否则进行数据库连接的时候会提示找不到驱动包.如图A.

                                                                              图 A

       添加完驱动包后,启动kettle,在windows下直接双击spoon.bat即可运行.在开始编写我们的kettle程序之前我们首先需要建立一个资源库,采用database的形式.在创建资源库进行到执行sql语句的时候会报如图B的错误(坑三)

                                                                                     图B

       这时候我们需要将sql语句中所有的’N’和’Y’改成对应的0和1,然后重新建立资源库.资源库的默认用户密码为admin,admin.

   在资源库中创建需要进行同步的mysql和oracle的连接.(坑四)oracle连接的数据库名称应该为SID,如果是service_name的话需要在前面加上/.如图C.

                                                                               图C

至于SID与service_name的区别请自行度娘.

       (坑五)因为要同步数据,在mysql里面存储着上次更新的时间,每次将增量数据的最新插入时间更新到mysql进行记录.刚开始采用执行sql语句控件的方式,以插入时间为参数,都为date类型,却总出现值与字段类型不相匹配的情况,最后采用的是更新空间.

写好任务之后在本地直接运行没问提,(坑六)然后不是到linux服务器上远程执行却报找不到转换文件,切记在运行之前一定要勾上此选项,如图D

.

                                                        图D

       在浏览器上输入kettle服务器ip和端口查看自己的作业状体,默认用户密码为cluster,cluster.(坑七)查看任务,出现中文无法显示,如

图E

                                  图E

正常如图F

 

                                图F

这个坑填了好久都没有填成功,不过并不影响功能的正常使用.如果有哪位同志填坑成功的话,希望可以在下面回复一下填坑过程,在此不胜感激.

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值