etl工具,kettle实现循环,etl工具kettle实现
Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。
业务模型: 在关系型数据库中有张很大的数据存储表,被设计成奇偶库存储,每个库100张一模一样的表,每张表存储1000W,自动切换到下一个表。现需要同步这个数据到hive中(hdfs),循环抽取这些数据。如果是抽取增量的带上增量字段(每天增量数据存储在哪个表,奇数库还是偶数库是不知道的)。
a sqoop直接从mysql到hive,这样有些特殊字符会导致sqoop异常终止。而且这样循环对服务器的数据库大量取数,对服务器压力很大,很容易导致服务器瘫痪。
b 使用kettle处理转换过程就没有这样的问题。kettle支持分页取数据,一定程度上减轻服务器压力。
1 先看总结构图(以下版本为5.1)
2 设置环境变量
3 : javascript代码
编辑内容为
var count;
count = parent_job.getVariable("V_ID");
if(count == 10){
false;
}else{
count++;
parent_job.setVariable("V_ID", count);
true;
}
4 新建转换
编辑转换,内容为:
5 dummy 条件判断,不作修改
设置循环逻辑,箭头方向和类型很重要
6 执行job,测试循环。
另外附上3.2版本的kettle循环
设置变量
设置判断条件
转换 表输入文件输出
Js判断
1、下载最新的kettle版本
2、把达梦对应JDK版本的jdbc驱动放在D:\kettle\pdi-ce-4.4.0-stable\data-integration\libext\JDBC安装目录下面
3、在connection type中选择generic database右侧填好url和Driver
网上资源很多,有基础的话,边学边做项目,一个月可入门。
这类工具都是入门容易,但是要做好,要有一定的数据库基础,一定的开发能力,对项目的彻底理解及前瞻性。
建议寻找QQ群加入,当然你要有一定的基础、自学能力、钻研能力。
KETTLE和SQL 2005中的SSIS都是一类的工具。
用KETTLE的,现在也非常多,还是很好上手的。