【记录】几个kettle的问题

本人由于对于kettle不太熟悉,因此有些做法可能比较蠢,不太合理,如果有更好的方式,也希望各位能够批评指出,谢谢~

1、流程:

通过ktr中执行一条sql,查看需要更新哪些日期,可能会出来三条数据

如图:

如果sql获取的日期有3条数据,那么kjb就会循环运行3次!

所以,这样是没什么问题的~

然后有一次,我脑残的这样写:

结果只有kjb1循环运行多次,kjb2只执行了最后一次的日期,也就是这个循环,一直到kjb1执行完了才跳掉kjb2上执行,所以总会缺几天的数据。

解决:

解决方式也很简单,直接把kjb1里面的东西添加到kjb2中(我现在就是这么解决的),或者直接写在外面(就想第一张图一样,写个处理1,处理2等等),这里记录下这个问题,怕自己忘了,也给大家提个醒(或许只有我这么蠢才会发生这种奇奇怪怪的坑吧~)

2、关于http-client

情况是这样,当某一天的数据跑完,要发送一条get请求到某个项目中做一些监控!

因此我单独写了ktr,ktr里面如下图:

通过select获取上一个步骤传过来的日期,并传给接下来的http-client使用

但是有个奇怪的地方,就是我单独写http-client的时候,在kettle中直接测试,他根本不发送这个请求,必须前面加上一个执行sql的模块,才会发送请求(其他模块我随便试了几个,好像都不行,试到sql行,我就没往下去想了,我想或许不需要单独写个ktr,直接写在上一层里面应该也可以,我没试过,不知道各位大神是否有更好的方法,或者已经试过,还请多多指教)

3、关于Respository Manager

我不知道,中文该怎么翻译这个东西,暂且就叫他资源仓库吧,就是下图的东西!

是这样的,kettle是有界面的,但是服务器是命令行,没有界面的,所以得在本地开发,但是本地开发文件路径如果有什么D盘,E盘,这样的路径在服务器(linux)上是没有的,所以要做个资源仓库,然后使用的路径和linux上面部署kettle的路径一模一样就可以了,但是这个按钮有点奇怪。因为开启这个kettle的机器是一台windows的服务器,结果如果有A用户开启了kettle,就会导致B用户再开启kettle的时候,这个按钮就消失了!就选不了资源仓库,必须去让A把kettle关了,B重新开才能显示这个按钮,不知道重新复制一份kettle,然后再打开是否可以避免这个问题!

结束语:本人菜鸡一只,有什么错误的地方,希望大家可以指出批评,或者大家对于我的问题,有更好的处理方式,也可以给我留言赐教!

猜你喜欢

转载自blog.csdn.net/lsr40/article/details/82109119
今日推荐