本文主要是介绍大数据学习---利用kettle进行表与表之间的数据同步,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
利用kettle中的转换和作业将两个不同数据库中的不同数据表之间的数据进行同步
一、建立新的时间戳
在管理时间戳的数据库中的数据表中新加一条最新记录的时间戳日期,该时间戳日期应为最新插入新数据表的时间,(下图为数据库中的数据被更改【插入或更新】时数据库自动获取最新的系统时间)
二、建立转换
1、表输入
将新建立的时间戳的时间获取,先进行数据库的连接(一般找_metadata的数据库,然后选中timestamp的时间戳字段)
SELECT DATE_FORMAT(timestamp, '%Y-%m-%d %T.%f') tmstr
//这个是将时间戳的格式转换为%Y-%m-%d %T.%f。并用tmstr来指代
FROM a_timestamp
WHERE process_id=' '//写自建的数据的id名
2、表输入
将源数据库的数据全部输入进来,选择数据库中的所有字段
SELECTstcd
, tm
, drn
, DATE_FORMAT(timestamp, '%Y-%m-%d %T.%f') tmstr//是源数据库中的插入更新时间
FROM rainday
WHERE timestamp>=? and stcd!='' ORDER BY timestamp ASC
//将插入更新时间进行升序排序再选中大于时间戳的数据
limit 10000//限制数据个数
3、插入/更新
将主键用于查询的关键字,需要更新的字段除了插入更新的时间都需要更新
4、识别流的最后一行
结果字段名为result
5、Switch/Case
Switch字段为result 类型为Boolean
Case值为true,目标步骤为下一步的JavaScript代码
6、JavaScript代码
用于截取所需的字符串
var t
t=substr(tmstr,0,23
7、执行SQL语句
用来更新管理时间戳的数据库中的数据表中的时间戳记录
update a_timestamp set timestamp='?'
where tablename='RAINDAY' and processID=' '
转换图
作业图
这篇关于大数据学习---利用kettle进行表与表之间的数据同步的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!