Kettle循环抽取数据做增量
来源:互联网 发布:折扇淘宝 编辑:程序博客网 时间:2024/05/22 10:39
数据量数以千万计时,初次一次性抽取历史数据容易出现卡死,针对这种情况可以使用循环年份抽取,并且加入增量程序使得后续抽取增量化!
整体流程:
1、获取年份极值(获取历史有数据的年份最大最小值)
获取日期:
select min(to_char(jyrq,'yyyy')) || '~' || max(to_char(jyrq,'yyyy')) YearRange from veh_is_warning where to_char(jyrq,'yyyy')>=?
2、获取时间范围(通过切分获得历史年份最大最小值)
var prevRow=previous_result.getRows();var listv=previous_result.getRows().toString().split("~");//切分为数组if (prevRow == null && (prevRow.size()==0)){false; }else{ parent_job.setVariable("startTime",listv[0].substr(2,4));//最小年份 parent_job.setVariable("endTime", listv[1].substr(0,4));//最大年份 true;}
3、检测字段值(从最小年份开始循环抽取数据)
4、获取目标表上次同步最大时间(设置目标库上次同步完的最大时间)
上次同步最大月份:
select nvl(to_char(max(tjrq),'yyyymmdd'),'19700101') maxUpdateRq from MON_FACT_UNUSUAL_WARN where tjrq<=trunc(sysdate-1)
5、检验异常预警情况统计(数据条件控制)
数据来源veh_is_warning:
select sum(1) yjs,t.jyrq tjrq,nvl(t.jcxdh,'NA') jcxdh,nvl(t.jyjgbh,'NA') jyjgbh,nvl(t.glbm,'NA') glbm,nvl(t.fzjg,'NA') fzjg, nvl(t.yjlx,'NA') yjlx,--t.hpzl,t.hphm,d.hphm,nvl(d.cllx,'NA') cllxfrom veh_is_warning t left join vehicle d on t.hphm=d.hphmwhere t.yjzt=1and to_char(t.jyrq,'yyyy')='${startTime}'and to_char(t.jyrq,'yyyymmdd')>='${P_MAXUPDATERQ}'group by t.jyrq,t.jcxdh,t.jyjgbh,t.glbm,t.fzjg, t.yjlx,--t.hpzl,t.hphm,d.hphm,d.cllx
6、控制循环次数
var size = new Number(parent_job.getVariable("endTime"));var i = new Number(parent_job.getVariable("startTime"))+1; if(i<=size){parent_job.setVariable("startTime", i);}else{ parent_job.setVariable("startTime", 1);//控制退出parent_job.setVariable("endTime", 0);//控制退出} true;
阅读全文
0 1
- Kettle循环抽取数据做增量
- kettle增量抽取数据
- Kettle数据抽取---增量抽取
- 使用kettle进行增量抽取数据
- Kettle-7.0增量抽取订单数据
- kettle增量抽取框架
- KETTLE循环抽取
- Kettle 数据抽取
- ssis数据增量抽取
- 数据增量抽取
- 数据抽取工具Kettle使用
- kettle 批量抽取多个表数据
- Kettle数据同步和抽取
- 数据抽取工具Kettle学习
- 抽取增量数据算法说明
- 什么是数据抽取 --全量抽取、增量抽取
- kettle实现文本文件数据抽取方法
- kettle实现文本文件数据抽取方法
- HashTable 源码分析
- Intellij IDEA使用笔记(持续更新...)
- Zxing二维码精简(竖屏、拉伸处理、扫描框大小和扫描线移动)
- HDU1166 疑兵布阵 【线段树】
- 机器学习(Mitchell)1
- Kettle循环抽取数据做增量
- Mysql分析-profile详解
- 修改hosts不管用。为什么修改127.0.0.1指向的域名,访问域名却弹出别的网站
- logback日志配置
- lvs-keepavlied 安装配置
- 改造Vmware里的FastDFS为Docker
- centos7 设置防火强的问题
- 欢迎使用CSDN-markdown编辑器
- ACM DP Partitioning by Palindromes