kettle导数删除并插入更新数据_20161130

Posted Mr_Cxy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kettle导数删除并插入更新数据_20161130相关的知识,希望对你有一定的参考价值。

这里有3个表 仅是时间维度不同 天 周 月,现在需要把昨天数据每天添加进入这3个表

由于业务上会有退货等情况,因此需要先把这些表原来的部分数据删除 再从那个时间点进行更新。

天需要先删除前7天的数据,周需要删除前2周数据,月需要删除2个月之前数据 以保证数据准确

kettle 中提供了执行SQL脚本控件,因此我们先删除原来的数据,以第一个执行SQL脚本为例。

1、删除时间为天维度的表前7天的数据

DELETE  FROM `tb010_02d` WHERE 在线日期>=DATE_ADD(CURRENT_DATE,INTERVAL -7 DAY)

2、进行表的数据插入 表输入步骤 where 条件以前7天那个时间日期为起点

SQL:

SELECT d.ID,a.城市,a.在线日期,c.商品分类一级,c.商品分类二级,c.商品分类三级,a.产品ID,c.产品名称,b.汇总单品量,订单额
FROM (
    SELECT 城市,DATE(在线日期) AS 在线日期,产品ID
    FROM `a010_dynamic_产品`
    WHERE 在线日期>=DATE_ADD(CURRENT_DATE,INTERVAL -7 DAY) AND 在线日期<CURRENT_DATE
    GROUP BY 城市,DATE(在线日期),产品ID
) AS a
LEFT JOIN (
    SELECT 城市,DATE(订单日期) AS 订单日期,产品ID,SUM(汇总单品量) AS 汇总单品量,SUM(金额) AS 订单额
    FROM `a003_order` 
    WHERE 订单日期>=DATE_ADD(CURRENT_DATE,INTERVAL -7 DAY) AND 订单日期<CURRENT_DATE AND 金额>0 
    GROUP BY 城市,DATE(订单日期),产品ID
) AS b ON a.城市=b.城市 AND a.产品ID=b.产品ID AND a.在线日期=b.订单日期
LEFT JOIN `a002_产品` AS c ON a.产品ID=c.产品ID
LEFT JOIN `a000_city` AS d ON a.城市=d.城市

脚本设置:

 

 3、表输出步骤。

千万不能勾选裁剪表选项 勾选上会把表数据全部删除只导入前7天的数据

 

以上是关于kettle导数删除并插入更新数据_20161130的主要内容,如果未能解决你的问题,请参考以下文章

kettle庖丁解牛第26篇之删除

kettle 插入更新 和表输出的区别

kettle合并记录 新旧表明明关键字段id一致结果老数据标记删除,新数据标记插入,求解

kettle数据同步如何更新

kettle基本使用

kettle教程 简单入门kettle简单插入与更新。打开kettle