利用kettle进行数据抽取,其实和手工的ETL流程差不多,最近结合项目整理了一个简单实用的抽取框架。
一、抽取的大致流程:、
二、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 : 中文表名