ODI基于源表时间戳字段获取增量数据
实现目标:通过ODI获取一个没有时间戳的子表(qb_bw)的增量数据,而主表(qb_tb)有一个rksj入库时间,且主表和子表之间通过ID关联。目标表名是qb_bw1.
设计原理:通过在ODI的mapping中关联主表和子表,然后在主表的rksj上设置时间过滤,最后将子表的字段映射到目标表中。在此设计中,需要有一个变量,此变量在第一次运行时,使用一个初始值,这样第一次运行会获取此初始值后的所有源数据到目标表,然后根据目标表的rksj更新此变量值,从而得到目标表上最大的时间戳,再基于此时间点去获取源表的记录,从而实现每次运行都可以得到新增的数据。
创建变量
新建一个变量保存目标表入库时间的最大值。

基于文本类型定义变量。

使用SQL获取目标表时间字段的最大值。

创建mapping
主表的数据基于时间字段过滤,再跟子表关联后加载子表的数据到目标表。

主表的过滤条件设置

主表和子表的关联条件设置

目标表上新增的入库时间字段,从源端主表获取。

以上映射建立完成之后,可以试运行,确保逻辑是正确的,理论上会基于变量的初始值获取源端的数据加载到目标表。即获取rksj>’2018-05-11’的所有数据加载到目标表。
创建程序包
再建立相关的数据处理流程,即循环获取增量。新建一个“程序包”

拖拉刚才创建的变量两次,以及刚才的mapping.

第一个变量上设置为“声明变量”

第二个变量为“刷新变量”

以上程序包已经可以手工执行,每次执行获取相应的增量数据到目标表。
定时调度
保存“程序包”,并生成场景。

在生成的场景上,新建一个调度(前提是后台的agent在正常运行)

设置场景开始运行的时间

设置场景循环的间隔

在agent配置处,更新调度信息。

现在即可在查看日志处,看到指定间隔的时间之后,有该程序包处理的日志,以及每次运行后获取的增量记录数等信息。
ODI基于源表时间戳字段获取增量数据的更多相关文章
- Sql server的Merge语句,源表中如果有重复数据会导致执行报错
用过sql server的Merge语句的开发人员都应该很清楚Merge用来做表数据的插入/更新是非常方便的,但是其中有一个问题值得关注,那就是Merge语句中的源表中不能出现重复的数据,我们举例来说 ...
- mysql高效获取两张表共同字段的交集数据
例如下面两站表A,B.A表和B表分别有5-10w数据.A表结构如下:id bid name title publisher extraB表结构如下id bid name title publisher ...
- Redis基于eval的多字段原子增量计算
目录 目录 1 1. 前言 1 2. 优点 1 3. 方法一:使用struct 2 3.1. 设置初始值(覆盖原有的,如果存在) 2 3.2. 查询k1的值 2 3.3. 设置初始值(覆盖原有的,如果 ...
- mysql表时间戳字段设置
创建时间 修改时间
- 使用post方式提交表单如何获取图片数据及其他文本参数[NodeJS]
当POST方式提交包含图片的表单时,如上传图片时,需要在<form>字段需要添加参数enctype="multipart/form-data",表明以二进制方式传输数据 ...
- phpcms v9 中get的mysql查询表某字段最大值数据,表某字段不重复数据
直切正题 1.表tb中字段num最大的数据 {pc:get $sql="select * from tb where num=(select MAX(num) from tb)"} ...
- ODI利用goldengate实现增量数据捕获
ODI利用goldengate实现增量数据捕获 上个月,Oracle发布了ODI的最新版本10.1.3.6_02,其中增加了针对采用goldengate获取源数据库增量变化的知识模块,这样当系统需要实 ...
- oracle查看所有表及字段
oracle表设计 http://blog.csdn.net/lanpy88/article/details/7580820 Oracle查看所有表和字段 获取表: select table_name ...
- AutoHotkey调用VBA实现批量精确筛选数据透视表某字段内容。
如上图,想在数据透视表中只显示红色区域的内容,手动勾选就比较繁琐. 实现思路: 先复制红色的内容. 鼠标停留在数据透视表[型号]列的任意数据上(通过该单元格可以获取数据透视表和字段) 由于数据透视表的 ...
随机推荐
- JavaScript Concurrency model and Event Loop 并发模型和事件循环机制
原文地址:https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop JavaScript 有一个基于 event loop 的 ...
- Linux命令 file
查看文件类型:
- Differenciate or distinguish between outlook attachment and embedded image/signature using property accessor in C#.NET
These days, outlook emails are composed in three formats; plain text, html and rtf (rich text format ...
- Docker 试用
Docker还是从.net core 了解的 百度百科 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可 ...
- CF1093F Vasya and Array
题目链接:洛谷 以后还是要多打CF,不然就会错过这些很好的思维题了.我dp学得还是太烂,要多总结. 首先$len=1$就直接输出0. 我们考虑$dp[i][j]$表示前$i$个数的答案,而且第$i$个 ...
- node js 爬虫爬取静态页面,
先打一个简单的通用框子 //根据爬取网页的协议 引入对应的协议, http||https var http = require('https'); //引入cheerio 简单点讲就是node中的jq ...
- uboot - the bootloader of linux
[转载]https://blog.csdn.net/kernel_yx/article/details/53045424 最近一段时间一直在做uboot移植相关的工作,需要将uboot-2016-7移 ...
- 一次 Spark SQL 性能提升10倍的经历(转载)
1. 遇到了啥问题 是酱紫的,简单来说:并发执行 spark job 的时候,并发的提速很不明显. 嗯,且听我慢慢道来,啰嗦点说,类似于我们内部有一个系统给分析师用,他们写一些 sql,在我们的 sp ...
- 利用AMPScript获取Uber用户数据的访问权限
现代项目开发和资产管理方法正在不停地快速变化.在这场创新和扩张的竞赛中,新资产被迅速部署并暴露于公共互联网,已有资产也在不断发展. 要跟上这个不断变化的攻击面是很难的,更不用说保护这些应用程序和系统了 ...
- 当安全遇到java
标题是随便取的 今天看到有篇文章写的是关于java的xss,文中还提到了一个面试题,刚好我曾经也被问到过这个问题.让我不禁想起以往遇到的一些和java相关的安全面试题. 现如今,很多大甲方,由于自己系 ...