大数据学习---利用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、表输入

将源数据库的数据全部输入进来,选择数据库中的所有字段

SELECT
  stcd
, 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=' '

转换图请添加图片描述

作业图

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佛系小樂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值