二百三十六、Kettle——修改MySQL中历史数据为当前系统日期同步到MySQL另一张表中并且每日数据逐渐减少

一、目的

由于一些雷达死了但是又需要有数据进行展示,于是就把这些雷达的历史数据,修改日期为当前日期后,同步到MySQL另一张表中,并且每日每台雷达的数据逐渐减少,等同于人为创建数据问题

二、实施步骤

(一)获取系统信息

(二)字段选择1

(三)字段选择2

(四)mysql表输入

这是最关键最困难的一步!!!

1、完成历史数据的时间替换成系统日期

2、设置每台雷达的限制数据量,并且逐日减少

with t2 as(
with t1 as(
select
       ? day,
       id,
       deviceno,
       timestamp,
       measno,
       laneno,
       coilno,
       headway,
       gap,
       speed85,
       avspeed,
       occupancy,
       volume,
       volume1,
       volume2,
       volume3,
       volume4,
       volume5,
       unixtime
from t_statisticsdata202305 as t1
right join t_device_no t2 on t2.device_no=t1.deviceno
)
select
       day,
       id,
       deviceno,
       concat(substr(day,1,10),substr(timestamp,11,9)) timestamp,
       measno,
       laneno,
       coilno,
       headway,
       gap,
       speed85,
       avspeed,
       occupancy,
       volume,
       volume1,
       volume2,
       volume3,
       volume4,
       volume5,
       unixtime,
       row_number() over (partition by deviceno order by volume2) rk,
       (count(id) over (partition by deviceno) -(substr(day,9,2)*6*(count(id) over (partition by deviceno,timestamp)))) limit_num
from t1
where substr(timestamp,6,5)=substr(day,6,5)
)
select
t2.day, id, deviceno, timestamp, measno, laneno, coilno, headway, gap, speed85, avspeed, occupancy, volume, volume1, volume2, volume3, volume4, volume5, unixtime
from t2
where rk <= limit_num

(五)字段选择3

由于MySQL表中的id字段为主键自增id,而且表中还有其他雷达的数据,因此不需要原始数据的id字段,让目标表自动生成id数据,避免出现因id字段重复而插入失败

(六)插入 / 更新

注意:勾选不执行任何更新

(七)执行kettle任务,并多次执行验证数据是否重复

就这样,终于实现了需求!

  • 25
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天地风雷水火山泽

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

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

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

打赏作者

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

抵扣说明:

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

余额充值