Informatica增量抽取时间的设置
使用数据库或者系统变量的当前时间
Informatica中的$$SYSDATE是表示当前系统时间的系统变量。
通过这个变量,我们对每天抽取的数据可以使用以下表达式来实现增量抽取:
时间戳字段>= TRUNC($$SYSDATE – 1)
这种方法的实现比较简单,但是缺乏灵活性。不但需要另外开发一套相应的程序实现全量抽取,想要改变抽取时间范围还需要对每一个任务程序修改代码。例如需要抽取三天前的数据,我们需要对上面的表达式做如下修改:
时间戳字段>= TRUNC($$SYSDATE – 3)
Ø
使用参数文件
Informatica可以从参数文件中读取变量值,因此我们可以使用读取参数文件里的参数值的方式来实现增量抽取。参数文件里至少应该包括两个参数:开始时间参数和结束时间参数。我们需要以下表达式:
开始时间参数<时间戳字段<=结束时间字段
我们只要修改参数文件的参数值就可以灵活的控制抽取增量抽取时间范围,包括实现全量抽取。对正常的抽取过程,这个修改的动作是通过程序自动来完成的--在每次抽取开始前,以上次抽取的结束时间作为本次抽取的开始时间,当前系统时间作为抽取的结束时间,来修改参数文件。只有对一些异常情况,如上次抽取失败需要重新抽取,需要手动修改参数文件。
因为参数文件是程序外部文件,如果文件被人误删除或者错误修改,会导致任务失败或者抽取数据错误。
Ø
使用参数表
参数表的使用与参数文件的使用类似,只是我们把两个时间参数存储到数据库表中。但是因为参数表需要建在数据源系统中,可能不被允许。如果有多个不同数据源系统,则需要对每个系统建立参数表。
Ø
结合使用参数文件与参数表
这种方式是在目标数据库中建立一张参数表存储时间范围参数。每次抽取开始前,先通过读取参数表里的数据生成参数文件,每个抽取任务从该参数文件中读取参数。因为每次参数文件都会重新生成,减少了被误删除或修改的概率,同时也不用修改数据源系统,是一种常见并且运用很广的的方式
Informatica增量抽取时间的设置的更多相关文章
- kettle 6.1 按时间循环增量抽取数据
场景:假设有一张表数据量很大,需要按一个时间来循环增量抽取 方法:主要是通过JOB自身调用,实现循环调用,类似于 函数自调用 的循环. 1.JOB全图: 2.获取增量时间,并设置增量时间环境变量 3. ...
- ETL中的数据增量抽取机制
ETL中的数据增量抽取机制 ( 增量抽取是数据仓库ETL(extraction,transformation,loading,数据的抽取.转换和装载)实施过程中需要重点考虑的问 题.在ETL过 ...
- 使用Kettle增量抽取MongoDB数据实践
需求: 增量抽取MongoDB数据并加载到MSSQL 由于不能使用关系型数据库的自定义SQL, 所以主要遇到的问题有: 增量时间的查询和参数控制 ETL的批次信息和调用参数的写入 第一个问题的解决如下 ...
- 数据仓库系列之ETL中常见的增量抽取方式
为了实现数据仓库中的更加高效的数据处理,今天和小黎子一起来探讨ETL系统中的增量抽取方式.增量抽取是数据仓库ETL(数据的抽取(extraction).转换(transformation)和装载(lo ...
- ETL之增量抽取方式
1.触发器方式 触发器方式是普遍采取的一种增量抽取机制.该方式是根据抽取要求,在要被抽取的源表上建立插入.修改.删除3个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个增量日志表 ...
- hive表增量抽取到mysql(关系数据库)的通用程序(三)
hive表增量抽取到oracle数据库的通用程序(一) hive表增量抽取到oracle数据库的通用程序(二) 这几天又用到了该功能了,所以又改进了一版,增加了全量抽取和批量抽取两个参数.并且可以设置 ...
- hive表增量抽取到oracle数据库的通用程序(二)
hive表增量抽取到oracle数据库的通用程序(一) 前一篇介绍了java程序的如何编写.使用以及引用到的依赖包.这篇接着上一篇来介绍如何在oozie中使用该java程序. 在我的业务中,分为两段: ...
- hive表增量抽取到oracle数据库的通用程序(一)
hive表增量抽取到oracle数据库的通用程序(二) sqoop在export的时候 只能通过--export-dir参数来指定hdfs的路径.而目前的需求是需要将hive中某个表中的多个分区记录一 ...
- sql中使用timestamp增量抽取数据
网址:http://www.cnblogs.com/shuaifei/p/4469526.html 最近的项目中需要对上百万级的数据进行增量抽取操作,因此了解了一下TIMESTAMP的应用,特此记录 ...
随机推荐
- div 自动全屏高度
最近做一个页面,需要一个div自动铺满全屏,但是高度总是难以搞定.查资料为:需要从html body到div 需要 设置 高度属性 为100%
- 大型运输行业实战_day09_2_站间互售实现
1.添加站间互售入口 对应的html代码 <button onclick="otherStation()">站间互售</button> 对应的js发送函数 ...
- 百度BAE的一些使用心得
休眠会释放单元资源停止收费,那就不用被百度收费了
- pairs
pairs http://acm.hdu.edu.cn/showproblem.php?pid=5178 Time Limit: 2000/1000 MS (Java/Others) Memor ...
- JS 图片切换
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="zzzz.aspx.cs&quo ...
- 通过yiic来创建yii应用
一.通过yiic来创建yii应用 (*yiic命令在yii下载包的framework目录下) 1.把你自已的php环境添加到系统环境变量中. 2.在命令行下输入: yiic webapp 位置\名称 ...
- JAVA list集合两种去重方法
结果: 转载地址:http://geek.csdn.net/news/detail/127940
- dddddddddddddddddd
PacificA: Replication in log-based distributed storage systemshttp://research.microsoft.com:8082/pub ...
- geoserver 通过代码实现发布地图服务
GeoServer:代码实现批量发布地图服务 利用GeoServer发布WCS服务,那么如果我有很多数据需要进行发布,这样利用GeoServer提供的UI界面进行操作显然很不显示.那能不能利用GeoS ...
- POJ 2585.Window Pains 拓扑排序
Window Pains Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1888 Accepted: 944 Descr ...