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的应用,特此记录 ...
随机推荐
- oracle系统视图字段说明
oracle系统表v$session.v$sql表的列字段说明 在本视图中,每一个连接到数据库实例中的 session都拥有一条记录.包括用户 session及后台进程如 DBWR, LGWR, a ...
- t检验,T Test (Student’s T-Test)
1.什么是T test? t-test:比较数据的均值,告诉你这两者之间是否相同,并给出这种不同的显著性(即是否是因为偶然导致的不同) The t test (also called Student’ ...
- java写简单Excel 首行是目录 然后前台下载
页面: <form action="${path}/xxx/xxx.do" method="get" > 表格下载:<input type=& ...
- pre换行段落间距
<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"& ...
- cf-Round541-Div2-F(并查集+静态链表)
题目链接:http://codeforces.com/contest/1131/problem/F 思路: 很容易看出这是一道并查集的题目,因为要输出每个cage中住的鸟的编号,故采用静态链表.用l[ ...
- GridView控件中的一些常见问题
1. 无法获取模板列中的值,使用FindControl()方法无效: 给模板列中添加隐藏域,并给隐藏域绑定要获取的值,代码如下: <asp:HiddenField ID="hfIsFr ...
- 平衡二叉树Balanced Binary Tree
[抄题]: Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced b ...
- [udemy]WebDevelopment_HTML5
Build Your First Website 装一个subline text HTML default rule tags with opening and closing <!DOCTY ...
- spring中配置监听队列的MQ
一.spring中配置监听队列的MQ相关信息注:${}是读取propertites文件的常量,这里忽略.绿色部分配置在接收和发送端都要配置. <bean id="axx" ...
- sql ltrim/rtrim 字段中为中文时出现?的问题
字段存储为中文,类型为nvarchar,使用ltrim时结果集中出现的问号,我的解决办法是:将问号replace掉