使用数据库或者系统变量的当前时间
  Informatica中的$$SYSDATE是表示当前系统时间的系统变量。
  通过这个变量,我们对每天抽取的数据可以使用以下表达式来实现增量抽取:
  时间戳字段>= TRUNC($$SYSDATE – 1)
  这种方法的实现比较简单,但是缺乏灵活性。不但需要另外开发一套相应的程序实现全量抽取,想要改变抽取时间范围还需要对每一个任务程序修改代码。例如需要抽取三天前的数据,我们需要对上面的表达式做如下修改:
  时间戳字段>= TRUNC($$SYSDATE – 3)
  Ø
  使用参数文件
  Informatica可以从参数文件中读取变量值,因此我们可以使用读取参数文件里的参数值的方式来实现增量抽取。参数文件里至少应该包括两个参数:开始时间参数和结束时间参数。我们需要以下表达式:
  开始时间参数<时间戳字段<=结束时间字段
  我们只要修改参数文件的参数值就可以灵活的控制抽取增量抽取时间范围,包括实现全量抽取。对正常的抽取过程,这个修改的动作是通过程序自动来完成的--在每次抽取开始前,以上次抽取的结束时间作为本次抽取的开始时间,当前系统时间作为抽取的结束时间,来修改参数文件。只有对一些异常情况,如上次抽取失败需要重新抽取,需要手动修改参数文件。
  因为参数文件是程序外部文件,如果文件被人误删除或者错误修改,会导致任务失败或者抽取数据错误。
  Ø
  使用参数表
  参数表的使用与参数文件的使用类似,只是我们把两个时间参数存储到数据库表中。但是因为参数表需要建在数据源系统中,可能不被允许。如果有多个不同数据源系统,则需要对每个系统建立参数表。
  Ø
  结合使用参数文件与参数表
  这种方式是在目标数据库中建立一张参数表存储时间范围参数。每次抽取开始前,先通过读取参数表里的数据生成参数文件,每个抽取任务从该参数文件中读取参数。因为每次参数文件都会重新生成,减少了被误删除或修改的概率,同时也不用修改数据源系统,是一种常见并且运用很广的的方式

Informatica增量抽取时间的设置的更多相关文章

  1. kettle 6.1 按时间循环增量抽取数据

    场景:假设有一张表数据量很大,需要按一个时间来循环增量抽取 方法:主要是通过JOB自身调用,实现循环调用,类似于 函数自调用 的循环. 1.JOB全图: 2.获取增量时间,并设置增量时间环境变量 3. ...

  2. ETL中的数据增量抽取机制

    ETL中的数据增量抽取机制 (     增量抽取是数据仓库ETL(extraction,transformation,loading,数据的抽取.转换和装载)实施过程中需要重点考虑的问 题.在ETL过 ...

  3. 使用Kettle增量抽取MongoDB数据实践

    需求: 增量抽取MongoDB数据并加载到MSSQL 由于不能使用关系型数据库的自定义SQL, 所以主要遇到的问题有: 增量时间的查询和参数控制 ETL的批次信息和调用参数的写入 第一个问题的解决如下 ...

  4. 数据仓库系列之ETL中常见的增量抽取方式

    为了实现数据仓库中的更加高效的数据处理,今天和小黎子一起来探讨ETL系统中的增量抽取方式.增量抽取是数据仓库ETL(数据的抽取(extraction).转换(transformation)和装载(lo ...

  5. ETL之增量抽取方式

    1.触发器方式 触发器方式是普遍采取的一种增量抽取机制.该方式是根据抽取要求,在要被抽取的源表上建立插入.修改.删除3个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个增量日志表 ...

  6. hive表增量抽取到mysql(关系数据库)的通用程序(三)

    hive表增量抽取到oracle数据库的通用程序(一) hive表增量抽取到oracle数据库的通用程序(二) 这几天又用到了该功能了,所以又改进了一版,增加了全量抽取和批量抽取两个参数.并且可以设置 ...

  7. hive表增量抽取到oracle数据库的通用程序(二)

    hive表增量抽取到oracle数据库的通用程序(一) 前一篇介绍了java程序的如何编写.使用以及引用到的依赖包.这篇接着上一篇来介绍如何在oozie中使用该java程序. 在我的业务中,分为两段: ...

  8. hive表增量抽取到oracle数据库的通用程序(一)

    hive表增量抽取到oracle数据库的通用程序(二) sqoop在export的时候 只能通过--export-dir参数来指定hdfs的路径.而目前的需求是需要将hive中某个表中的多个分区记录一 ...

  9. sql中使用timestamp增量抽取数据

    网址:http://www.cnblogs.com/shuaifei/p/4469526.html 最近的项目中需要对上百万级的数据进行增量抽取操作,因此了解了一下TIMESTAMP的应用,特此记录 ...

随机推荐

  1. sessionpage1

    session1 <%@page import="java.text.SimpleDateFormat"%> <%@ page language="ja ...

  2. flush(), clear(), save()的简单解释

    hibernate最新发布包的javadoc里对这三个方法的解释是: clear() :Completely clear the session.清空session,该清空操作只对于要保存的.删除的和 ...

  3. luoguP1080 国王游戏 (贪心+高精度)

    题目链接:https://www.luogu.org/problemnew/show/P1080 参考:https://www.luogu.org/problemnew/solution/P1080 ...

  4. luoguP1064 金明的预算方案 (有依赖的背包问题)

    题目链接:https://www.luogu.org/problemnew/show/P1064 这是一个有依赖的背包问题,属于01背包的变式.这题还好,每个主件最多有2个附件,那么在对主件进行背包的 ...

  5. centos 网卡聚合及Cisco交换机链路聚合

    一.配置环境 centos 系统.网卡1口和2口做链路聚合.    交换机网口 6口和7口. 二.服务器操作步骤 centos 6 1.创建一个channel bonding interface #v ...

  6. .NET中的文件IO操作实例

    1.写入文件代码: //1.1 生成文件名和设置文件物理路径 Random random = new Random(DateTime.Now.Millisecond); ); string Physi ...

  7. 关于元表,self,元方法__index

    这是需要仔细分辨的几个概念. 元表:相当于table的隐藏属性. 只有固定的一些方法,如__index,__tostring,__add等,称为元方法. 虽然是固定的,但是任何table都可以作为任何 ...

  8. python之生产者消费者模型

    #Auther Bob #--*--conding:utf-8 --*-- #生产者消费者模型,这里的例子是这样的,有一个厨师在做包子,有一个顾客在吃包子,有一个服务员在储存包子,这个服务员我们就可以 ...

  9. jquery 赋值时不触发change事件解决

    $("#optionsId").change(function(){ $("#selectOptionsText").val('测试'); }); $(&quo ...

  10. 交叉字符串 · Interleaving String

    [抄题]: 给出三个字符串:s1.s2.s3,判断s3是否由s1和s2交叉构成.(洗牌) 比如 s1 = "aabcc" s2 = "dbbca" - 当 s3 ...