zoukankan      html  css  js  c++  java
  • ETL 如何找增量数据 总结

     

    一:ETL中有增量数据
    1 寻找增量时间戳
    (1)各种数据库:表的创建时间字段和修改时间字段或者最后的修改时间字段;
    (2)sql server:可以用找自增字段或者时间戳;
    (3)Oracle:找序列字段也是自增的;
    (4)如果找不到以上字段,可以分析实际业务数据:比如各种编号是不是不重复自增的;
    上个月的数据不会改变,变化只是本月的,那么本月数据就是增量数据;
    (5)有增量变更记录数据表,标识哪些字段是insert,update和delete
    2 如何实现insert,update和delete
    (1)对有增量变更记录数据表的,拆分一下(insert,update和delete),很简单直接就可以同步处理数据了;
    (2)对有增量数据的:
    A:Lookup组件delete可以实现insert和update,delete只能采用outer join方法;
    B:outer join和NULL关键字方法可以实现insert,update和delete,但是当数据量较大时消耗性能。
    C:SCD缓慢变化维度组件可以很容易实现insert和update,delete只能采用outer join方法;
     
    二:ETL无增量数据:如果实在找不到增量数据,只能先全部删除然后全部抽取。
     
     
     
    推荐非常棒的文章:
    SSIS: How to do Upserts
    http://www.sqljunkies.com/WebLog/ashvinis/archive/2005/06/15/15829.aspx
    Getting rid of unnecessary transforms
    http://www.sqljunkies.com/WebLog/ashvinis/archive/2005/02/03/7275.aspx
    Get all from Table A that isn't in Table B
    http://www.sqlis.com/311.aspx
    SSIS: Checking if a row exists and if it does, has it changed?
    http://blogs.conchango.com/jamiethomson/archive/2006/09/12/SSIS_3A00_-Checking-if-a-row-exists-and-if-it-does_2C00_-has-it-changed.aspx
    Using the SSIS transformation script component in an ETL
    http://www.mathgv.com/sql2005docs/SSISTransformScriptETL.htm
  • 相关阅读:
    JS中的prototype
    mustache.js渲染带事件的模板
    PHP的UTF-8中文转拼音处理类(性能已优化至极致)
    js
    git的作用和原理(待续)
    linux简单配置
    sql查询字段值长度判断是否18位
    sql查询重复值
    java获取某一字段日期并增加7天存入另一字段
    数据库20190206////2019-02-06 00:00:00.000日期格式页面转换
  • 原文地址:https://www.cnblogs.com/dbasys/p/2127579.html
Copyright © 2011-2022 走看看