etl工具,kettle实现了周期

时间:2023-03-09 15:58:07
etl工具,kettle实现了周期

Kettle这是国外的来源ETL工具,纯java写。能Window、Linux、Unix在执行。绿色无需安装,稳定高效的数据提取。

业务模型: 在关系型数据库中有张非常大的数据存储表,被设计成奇偶库存储,每一个库100张一模一样的表,每张表存储1000W,自己主动切换到下一个表。现须要同步这个数据到hive中(hdfs),循环抽取这些数据。假设是抽取增量的带上增量字段(每天增量数据存储在哪个表。奇数库还是偶数库是不知道的)。

a sqoop直接从mysql到hive,这样有些特殊字符会导致sqoop异常终止。并且这样循环对server的数据库大量取数,对server压力非常大,非常easy导致server瘫痪。

b 使用kettle处理转换过程就没有这种问题。kettle支持分页取数据,一定程度上减轻server压力。

1 先看总结构图(下面版本号为5.1)

etl工具,kettle实现了周期

2 环境变量设置

etl工具,kettle实现了周期

3 : javascript代码

etl工具,kettle实现了周期

etl工具,kettle实现了周期

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlsaTcy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

编辑内容为

var count;

count = parent_job.getVariable("V_ID");

if(count == 10){

false;

}else{

count++;

parent_job.setVariable("V_ID", count);

true;

}

4 新建转换

etl工具,kettle实现了周期

编辑转换,内容为:

etl工具,kettle实现了周期

5  dummy  条件推断,不作改动

etl工具,kettle实现了周期

设置循环逻辑,箭头方向和类型非常重要

etl工具,kettle实现了周期

6 运行job,測试循环。

另外附上3.2版本号的kettle循环

etl工具,kettle实现了周期

设置变量

etl工具,kettle实现了周期

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlsaTcy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

设置推断条件

etl工具,kettle实现了周期

转换 表输入文件输出

etl工具,kettle实现了周期

Js推断

etl工具,kettle实现了周期

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlsaTcy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

版权声明:本文博客原创文章。博客,未经同意,不得转载。