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的主要内容,如果未能解决你的问题,请参考以下文章