Kettle之行-优化记录
在工作中,针对日积月累的问题,我们一定会对事物进行不断的优化改
进,近日,对仓库抽数工具进行了各种优化,这里来记录一下;
-
kette重跑-乾坤大挪移:
1.1、每天在跑数的过程中,偶尔会遇到报错,报错又在不同的层次发生,遇到这样的问题后,我们总是手工重新起调,就好像我每天都要站在他的面前,祈祷工具不要出问题,因为一出问题,我就要马上执行,不然又会影响业务人员看报表,经过多次的人工重调,后来突发一想,为何不自动重调呢,于是,终于在某一天,把这件事情给完成了,下面附上具体的demo---赋哥
更改之前:
可以看到,改之前是直接启动后,进入脚本执行,如果报错就直接发邮件,那么改之后就如下:
改之后呢,具体执行流程是启动--初始化(报错)次数为1--执行demo,如果demo报错的话,那么不会直接发邮件,而是走到 check_loop_cnt步骤,这里是检验报错次数的,从下面脚本可以看到
如果小于三次,那么仍不会报错,而是进入循环到下一步wait_time,这里是参数化的,默认等待2分钟,待2分钟后又进行demo的脚本执行,当然如果报错超过3次的话,就会发送报错邮件,这个循环也就停止了,这个时候就要看看具体的原因了。
以上,在每个层都设置重跑后,基本上除了重大故障,遇到偶尔的一些数据库链接中断,不小心操作问题的一些小插曲导致的报错都是自动起调了,大大的节省etl组的工作时间
ps:图中的那个 DUMMY是啥都不做的
-
kettle多线程-一日千里
近日同事在推数的时候,发现推一个90万的数据需要6个小时,而且一旦发生中断,就又要重新来推,这里用到的还是kettle,这样就要随时监控,如果中断一次,那么一天的时间都过去了,基本就等于一个24小时随身保姆了,还能搞定其他不,于是在研究后,发现,其实可以设置多线程来跑,设置后,比如刚刚要跑6个小时的,那么现在就只要30分钟,而且稳定多了,没有那么多毛病了,吃嘛嘛香的感觉,那么就来记录一下具体的操作喽
改之前:
改之后:
有没有发现改之后的多了个8呢,实际上这个8就是相当于8个线程,具体设置如下,选中右框,右键,数据发送--round-robin,然后在选择改变开始复制的数量,弹窗里面输入8,enter键,就可以了。
当然这个都是在工作中小试一刀,我相信技术无穷尽,肯定会有比这个更好的方法,即便如此,我找到更好的以后,我仍然会记录下,它们不同点,优点,缺点.
-
kettle抽数-监控源数据
在抽数的过程中,我们要拒绝抽少数,抽空数,不然这里又浪费时间和人力,所以在这里就做了一个kettle抽数验证的过程,执行的过程非常有趣:
红色的线是指向报错的,里面有两个检验,第一个检验是检验目标库的数据量,第二个检验是检测重跑超时的现象,如果不超时,继续重跑,如果超时,那么就直接报错,做了这个后,经常监控到源数据种种原因没有获取到数据,如果没有做此步操作,那么等到发现的时候是不是很晚了,当然,当然有很多解决的方法,如果有其他的,非常欢迎你的请赐教.