zoukankan      html  css  js  c++  java
  • 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天的数据

  • 相关阅读:
    NAT(NAPT)地址转换过程
    关于路由、AP、交换机的小总结
    交换机、集线器、路由器区别和作用
    系统调用与API的区别
    课程设计
    Python学习之format函数的使用
    等边三角形
    Hello 2018
    PyCharm idea clion webstorm phpstorm激活
    Educational Codeforces Round 35 (Rated for Div. 2)(ABC)
  • 原文地址:https://www.cnblogs.com/Mr-Cxy/p/6119814.html
Copyright © 2011-2022 走看看