zourui4271

博客园 首页 新随笔 联系 订阅 管理

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

posted on 2015-12-02 16:11  zourui4271  阅读(1445)  评论(0编辑  收藏  举报