kettle增量抽取框架
2016-05-30 17:45
267 查看
利用kettle进行数据抽取,其实和手工的ETL流程差不多,最近结合项目整理了一个简单实用的抽取框架。
一、抽取的大致流程:、
![](http://img.blog.csdn.net/20160530172951570?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
二、kettel框架:
![](http://img.blog.csdn.net/20160530173111858?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
三、细节介绍:
1、SET_START_DATE:得到系统当前的时间,作为抽取的开始时间。
![](http://img.blog.csdn.net/20160530173442797?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2、GET_MINETLFLAG:从ETL的日志表中的到当前的最小FLAG,一般为时间戳。
![](http://img.blog.csdn.net/20160530173606329?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3、GET_TAREGT_TABLE_CHANGE:得到插入、更新等数据库操作的数量,后面记录到日志表
![](http://img.blog.csdn.net/20160530173735782?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
4、GET_MAXETLFLAG:从目标库中取到最大的时间戳,作为下次抽取的最小时间。
![](http://img.blog.csdn.net/20160530173842455?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
5、WRITE_ETLLOG:获取前面的赋值的变量,写入log表。
![](http://img.blog.csdn.net/20160530174029865?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
6、参数设置:这里的参数,主要是log表的一些字段。
![](http://img.blog.csdn.net/20160530174147586?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
四、日志表的设计
log表的设计:
![](http://img.blog.csdn.net/20160530174317541?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
TABLENAME :抽取目标表表名
ETLBEGINTIME : 抽取开始时间
ETLENDTIME : 抽取结束时间
INSERTNUM : 插入记录数
UPDATENUM :更新记录数
DELNUM : 删除记录数
MERGENUM : 总数据量
ETLFLAG : 时间戳
MSG : 消息
SSXQ : 所属地市
FLAG表设计:
![](http://img.blog.csdn.net/20160530174434769?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
ETL_ID : 抽取表名
ETL_NAME : 抽取信息
ETL_FLAG : 抽取状态
ETL_SUCCEED_NUM : 成功次数
ETL_ERROR_NUM : 失败次数
TABLENAME_MC : 中文表名
一、抽取的大致流程:、
二、kettel框架:
三、细节介绍:
1、SET_START_DATE:得到系统当前的时间,作为抽取的开始时间。
2、GET_MINETLFLAG:从ETL的日志表中的到当前的最小FLAG,一般为时间戳。
3、GET_TAREGT_TABLE_CHANGE:得到插入、更新等数据库操作的数量,后面记录到日志表
4、GET_MAXETLFLAG:从目标库中取到最大的时间戳,作为下次抽取的最小时间。
5、WRITE_ETLLOG:获取前面的赋值的变量,写入log表。
6、参数设置:这里的参数,主要是log表的一些字段。
四、日志表的设计
log表的设计:
TABLENAME :抽取目标表表名
ETLBEGINTIME : 抽取开始时间
ETLENDTIME : 抽取结束时间
INSERTNUM : 插入记录数
UPDATENUM :更新记录数
DELNUM : 删除记录数
MERGENUM : 总数据量
ETLFLAG : 时间戳
MSG : 消息
SSXQ : 所属地市
FLAG表设计:
ETL_ID : 抽取表名
ETL_NAME : 抽取信息
ETL_FLAG : 抽取状态
ETL_SUCCEED_NUM : 成功次数
ETL_ERROR_NUM : 失败次数
TABLENAME_MC : 中文表名
相关文章推荐
- LeetCode OJ 74. Search a 2D Matrix
- int获取枚举
- 在Windows操作系统中,如何终止占有的8080端口的tomcat进程
- Android中 requestCode与resultCode的区别与用法
- 双线程读取两路摄像头数据
- Eclipse 上安装 Maven3插件
- SPOJ 7001 VLATTICE【莫比乌斯反演】
- Qt之QStackedLayout
- Spring中bean注入初始化方式—通过注解@Configuration @bean
- windows下安装bpython
- SPOJ 7001 VLATTICE【莫比乌斯反演】
- 当TableView点击的时候,去除点击的阴影
- Qt之QStackedLayout
- CocoaPods版本升级
- JQuery做折叠二级菜单
- hadoop部署注意点
- iOS9新增关键字和一些新特性的学习
- mongo 启动方式
- MySQL常见报错解决方法
- Gradle依赖的统一管理