如何抽取Oracle数据库中的增量数据? 80C

有一批Oracle的数据库,使用这些数据库的应用都和钱有关系,对数据库的性能和稳定性有苛刻的要求。另一个应用需要实时或接近实时地(如延时几秒)抽取数据库中的增量数据;但不能对数据库有性能影响(或则影响非常小,如下降千分之一以内),不能在数据库上做开发(如触发器存储过程之类),更不能修改数据库配置(添加Stream,CDC之类的),不使用OGG之类的商业软件可以使用开源软件。增量数据指新插入,修改,删除的数据。

6个回答

有个能按照位置,时间 进行提取的命令

a1422221000
a1422221000 通过GoldenGate的方式解析oracle的日志进行数据
一年多之前 回复
dengfeng_dengfeng
dengfeng_dengfeng 主表示写 从表示读 你现在的库当主库 你只要在主库里面执行了 insert/update/delete 数据库会自己在从库里面执行一样的操作
一年多之前 回复
dengfeng_dengfeng
dengfeng_dengfeng 还有一种方法就是设置主从、备份的库
一年多之前 回复
dengfeng_dengfeng
dengfeng_dengfeng 回复account_redsun_xp: 你增量的时候 在数据库bin下会有一个00011类似这种名字的文件 这个表示增量备份的数据库文件 你再用log-bin 执行下 就能过去
一年多之前 回复
guigu187
guigu187 有个能按照位置,时间 ,事件进行提取的命令
一年多之前 回复
xulong_csdn
xulong_csdn 事件增量
一年多之前 回复
dengfeng_dengfeng
dengfeng_dengfeng 回复account_redsun_xp: 数据库的增量备份是由 bin-log 命令操作的 给你二个增量备份的语法 mysqlbinlog可以查看二进制备份文件内容 mysqlbinlog 二进制文件路径 mysqlbinlog --stop-datetime="2013-01-14 18:20:21" 二进制文件位置 ... 从位置来恢复 从开始恢复日志到3968位置 mysqlbinlog --stop-position="3968" d:\binlog\mylog.000001 | mysql -uroot -p 取出时间段的操作 mysqlbinlog --start-datetime="2013-01-14 18:20:21" --stop-datetime="2013-01-14 18:40:21" ....
一年多之前 回复
account_redsun_xp
account_redsun_xp 具体呢?
一年多之前 回复

这个我有一个国家diam网的代码,和你的需求一样。采纳了可以发给你。不过你不能外传啊。

dabocaiqq
请你们大家多多姿瓷我菠菜菌 回复wanghongrongwt: 你也提问,悬赏80,我可以给你
11 个月之前 回复
wanghongrongwt
wanghongrongwt 能否也发一份给我,可以没有具体的代码,主要是想知道思路、技术及工具
11 个月之前 回复

数据库的增量备份是由 bin-log 命令操作的 给你二个增量备份的语法

mysqlbinlog可以查看二进制备份文件内容
mysqlbinlog 二进制文件路径

mysqlbinlog --stop-datetime="2013-01-14 18:20:21" 二进制文件位置 ...

从位置来恢复 从开始恢复日志到3968位置
mysqlbinlog --stop-position="3968" d:\binlog\mylog.000001 | mysql -uroot -p

取出时间段的操作
mysqlbinlog --start-datetime="2013-01-14 18:20:21" --stop-datetime="2013-01-14 18:40:21" ....

u013302788
liujie152 haha
一年多之前 回复

可以通过GoldenGate的方式解析oracle的日志进行数据推送

这个肯定要每天定时执行的吧,我们公司是晚上12点后kettle抽取生产库的增量数据,到统计库。 然后如果是windows服务器就用系统的定时任务,
晚上定时执行job。linux的话不熟悉,但应该是cron表达式设置定时。

用物化视图不就好了么

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ETL 数据抽取 如何实现增量抽取?
大家好!rn rn 数据抽取的时候如何实现增量?rn 大家可以说说自己的想法或者做的方案。rnrn 我手头有这个样的一个项目,如果大家有兴趣也可以说一下自己的想法,你感觉rn怎么做比较合适!rn 数据仓库 :ORACLE 10g rn 源数据库: ORACLE 10g 、SQL2008、MYSQL 三个数据库rn 实现数据增量抽取!rnrn如果在不改变业务表结构的情况下,怎么做呢!我很不情愿改变业务表结构!rn
数据增量抽取的解决方案
关于对增量数据数据抽取的解决方案,挺有帮助
kettle增量抽取数据
这一章主要讲的是数据的增量抽取,以及不同数据库之间的相互抽取. 这个就是实现数据同步最基本的状态 表输入就是不管你从哪个数据库抽取,只要是数据由表输入抽入到kettle的工作空间其他的都不用害怕了. 不同的是后面的字段选择与插入更新. 先来说说字段选择吧,字段选择就是为了避免不同数据之间的字段类型不
(2)Kettle数据抽取--增量抽取
Kettle数据抽取--增量抽取,详细操作教材
关于数据增量抽取 问题
[img=http://www.ahuoo.com/wp-content/uploads/2010/01/%E6%9C%AA%E5%91%BD%E5%90%8D1.jpg][/img]rn[url=http://www.ahuoo.com/wp-content/uploads/2010/01/%E6%9C%AA%E5%91%BD%E5%90%8D1.jpg][/url]rn以上为个人会员注册主题的事实表和维度表,所要表达的事实是会员来源这个事实,因为会员一旦注册,这个来源的事实将不会改变。如果大家觉得有什么问题,大家可以拍砖讨论。我希望大家是从数据仓库构建的原理上来分析解决问题,因为我现在为止还没有用过任何一个工具。rnrn现在遇到的问题是,我如何进行数据的增量抽取,关于各个抽取的方式我了解的有:rn全库比较、程序日志、数据库日志、时间戳、位图索引几种确定方式,这些方式基本都建立在原业务系统的冗余操作之上,例如时间戳是给业务数据记录额外的增加一个字段。我认为在实际操作过程中是不可取的 ,这必然会增加业务操作的复杂度,更为痛苦的是很多公司都是跨部门操作,难度更大。 rnrn我现在所想的抽取方式:rn[color=#FF0000]1、维表抽取更新方式:[/color] 除日期维可以事先建立以外,其他维可以根据其时间戳来按天更新rn[color=#FF0000]2、事实表抽取更新方式:[/color]rn rn 代理键讨论:关于维表关键字的利用上,我在考虑是否需要另外添加序列化号来记录,在数据仓库的设计理论上说不应该利用原业务系统的ID,但我在这里发现利用原ID好像没有什么不妥,相反对于查取数据挺方便,因为我们原业务系统的ID是唯一且不会改变的,还请大家指点@@@。rn rn 事实表数据更新讨论: 我这里想的是任何一个维表的数据发生了更新,都要通过关键字关联到事实表的更新所影响的数据。但这样的话就必然产生一些冗余的更新,例如会员维表添加了数据,则需要更新事实表, 伙伴维表添加了数据,也需要更新事实表,如果时间区间一样,这两者很可能是重复的更新,其实只需要更新一次就OK,望拍砖@@@rn rn[color=#FF0000]rn3、最后一个问题,关于涉及到维表里面的业务数据发生修改以后,大家的维度表是如何更新的,[/color]难道大家在业务系统数据表里面添加一个触发器? 还是有别的更好的办法, 望指点@@@rnrnO(∩_∩)O~ 高手们请出来吧,感觉这里气氛不是很浓,大家一起蹦起来吧
ETL数据增量抽取方案
ETL数据增量抽取方案,ETL数据增量抽取方案,ETL数据增量抽取方案
Kettle实现增量抽取数据
Kettle实现Oracle两表之间进行增量抽取数据,不需要时间戳!
PowerCenter 9 数据增量抽取
大家好,求powercenter 数据增量抽取方法:rnrn源数据表 A 有一个数量1000个,前天增加50,昨天增加100,今天增加30....rn目标表 B ,有日期,数量,增加量三个字段,每天运行powercenter一次,怎么取得每天增加量的值?rnrn用powercenter 和 存储过程都可。rnrn谢谢!
oracle 增量抽取数据存储过程
抽取日志表 create table ETL_LOG_DRAGON_ALERT ( tablename VARCHAR2(50), etlbegintime DATE, etlendtime DATE, cq_count NUMBER, bd_count NUMBER, etlflag VARCHAR2(50), msg
Kettle-7.0增量抽取订单数据
原文来自:http://www.ukettle.org/thread-594-1-1.html业务需求:从mysql数据库中,抽取订单和订单明细数据,做一定的轻度清洗,并将清洗后的数据存放到指定目录下,清洗出来的错误数据存到另一个存error data的目录。 实现步骤: 1.使用表输入控件,数据库连接选择mysql如下图:2.将取数的SQL逻辑写到代码填充处,并且取数的时间范围
ETL增量数据抽取的原理
如题,有人可以简单的解释下吗?面试被问到这个问题,感觉回答得不是很好
logstash-5.6.1数据增量抽取工具
elasticsearch或kafka等数据抽取工具:logstash-5.6.1,可实现全量或增量的数据抽取,有需要可自行下载~
【Sqoop】Sqoop如何增量抽取数据
  实现方法: 利用--where参数对关系型数据库数据进行筛选,将结果导入非关系型数据库。根据特殊字段,将日期作为一个查询条件对源数据进行匹配,将符合条件的记录作为结果采集到非关系型数据库中 格式: import --connect jdbcurl --username xxxx--password ****** --table tablename  --where "data_inse...
ETL中的数据增量抽取机制研究
ETL中的数据增量抽取机制研究,数据仓库
如何增量抽取事实表
我只知道在维度表中可以利用缓慢渐变维度来处理维度的更新,但是如何处理事实表的增量更新抽取呢?
Informatica 案例 增量抽取
Informatica开发实战视频培训教程,本课程将从Informatica 9 服务、安装,配置,组件实例来统合讲解与使用。数据仓库的建设目标,是利用组织里的数据,更加有效地辅助决策过程,而这一过程的核心是数据处理,数据处理阶段离不开ETL过程的实现。
ETL_增量抽取机制
ETL_增量抽取机制 ETL_增量抽取机制
Informatica增量抽取.docx
Informatica增量抽取图文介绍。每一步都有图片,不懂的可以联系我
hive增量抽取方案
一、使用sqoop从mysql中抽取数据到hive,查看sqoop官方文档,有如下两种方案: 7.2.9. Incremental Imports Sqoop provides an incremental import mode which can be used to retrieve only rows newer than some previou...
informatica简单增量抽取
利用ETL工具实现从数据仓库的增量抽取
ETL增量抽取方案
针对ETL增量抽取的方法进行了汇集,其中包括各种方法的优缺点,供大家参考。
抽取增量数据算法说明
抽取增量数据算法说明,数据挖掘使用,非常通用的方法。
DATASTAGE增量抽取
该文档记录了DATASTAGE的增量实现测试
ETL增量抽取(转)
增量是以一个时间段为计量单位,记录该段时间内较以前增加的数据记录。 增量抽取是将该段时间内增长的记录查找出来。 增量抽取一般有三种抽取模式,用于捕获源系统新增的数据到系目标库中 1)、时间戳方式,要求源表中存在一个或多个字段(时间戳),其值随着新纪录的增加而不断增加,执行数据抽取时,程序通过时间戳对数据进行过滤,抽取结束后,程序记录时间戳信息。 2)、触发器方式。要求用户在...
kettle增量抽取框架
利用kettle进行数据抽取,其实和手工的ETL流程差不多,最近结合项目整理了一个简单实用的抽取框架。 一、抽取的大致流程:、 二、kettel框架: 三、细节介绍: 1、SET_START_DATE:得到系统当前的时间,作为抽取的开始时间。 2、GET_MINETLFLAG:从ETL的日志表中的到当前的最小FLAG,一般为时间戳。 3、GET_TARE
powercenter的增量抽取问题
在数据仓库项目中,由于ETL之后还会有OLAP等等,所以数据都是增量抽取。rn关于增量抽取,涉及到的情况不同采用的抽取方式就会有差别。rn关于informatica增量抽取的问题,我还不是很明白。目前我们的维度表都是采用每次全量抽取的方式,但是事实表的抽取由于数据量较大,所以需要增量抽取。rn关于增量抽取,有时间戳的可以根据时间戳来进行判断让新增的数据进入mapping,但是没有时间错的数据各位大侠是怎么做的?用lookup进行主键全表对比?假如我事实表的主键是UUID(用powercenter的sequence)又该如何进行增量抽取?rn
infomatica增量抽取
增量抽取的详细步骤 自测成功,纯手写内容详细 大部分图片 照着没问题
实例 增量抽取
BI商务智能离不开数据数据仓库的支持,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。n 负责将分布的、异构数据源中的数据抽取到临时中间层后进行清洗、转换、集成,后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础
sqoop定时增量抽取数据到hive
1、  第一次全量抽取,并创建hive表#keberos认证kinit -kt hdfs.keytab hdfs#从oracle导数据到hivesqoop import --connectjdbc:oracle:thin:@xx.xx.xx.xx:1521:xx\            --username xxx--password xxx\            --table PROD_FD...
ETL数据增量抽取方案.pdf
ETL数据增量抽取方案.pdf ETL数据增量抽取方案.pdf ETL数据增量抽取方案.pdf
关于物化视图实现增量数据抽取
[img=http://b59.photo.store.qq.com/http_imgload.cgi?/rurl4_b=ca2e2370de47520af4487bc1a629c0151f95fe9df5abbd57ec88fbde4a01d43302ff2f638de2416262a9dae1c59739c9077372b23e0a0089c1ed3bd8a806e837423bf749c7cec371eb50896eb5e9fae50cff5c75&a=55&b=59][/img]rnrn不明白在源表中删除数据,是怎么相应的在目标表中删除数据。rn希望可以得到各位有经验人士的解答,谢谢。
使用kettle进行增量抽取数据
使用背景: 当前项目中使用的数据依赖于其它系统,别人的系统当然不会把实时更新的数据一个不差的发送给我们(当然更加不会让我们对他们系统的数据库进行编程),所以我们要自己动手去获取他们系统中的数据。使用工具: kettle首先需要考虑的问题是不可能是全量进行数据的拷贝,数据量如此庞大! 那么就得考虑增量,何为增量去百度。。哈哈哈至于如何增量抽取数据,有很多种办法,我这里示范的是通过时间去增量抽取(
Data Integration Kettle 插件 增量数据抽取
从数据库表中抽取一定时间间隔内变化的数据,一般用于数据的同步 包括使用文档
datastage实现数据增量抽取方案
实现方案 数据量相对比较小,100W级别以下。 根据日调度,实现前后两天通过文件对比,获取相应增量数据。 弊端:因为ODS 系统一般是多层存储,需要保证每次日调度执行成功,否则会丢数据。 数据量相对比较大,100W级别以上。 一般业务系统会有自增长ID 列,我们会选择获取增量的时候,增加限制条件,比如SELECT * FROM TABLE_NAME WHERE ID>MAX(ID) 其中MA
sqoop使用metastore进行增量数据抽取
       我们在sqoop抽取数据,肯定会 遇到这么个场景,我们肯定会用到一个调度工具来执行sqoop脚本,这时我们如果想在别的客户端也能调用该sqoop脚本,那么我们就需要使用sqoop提供的metastore,metastore它本质是一个hsql内存级数据库,sqoop通过它达到几个客户端共享sqoop脚本的信息,从而使别的客户端也能调用除自己本身创建的sqoop脚本。    在使用m...
基于“全表对比方式”的增量数据抽取
典型的全表比对的方式是采用MD5校验码。ETL工具事先为要抽取的表建立一个结构类似的MD5临时表,该临时表记录源表主键以及根据所有字段的数据计算出来的MD5校验码。每次进行数据抽取时,对源表和MD5临时表进行MD5校验码的比对,从而决定源表中的数据是新增、修改还是删除,同时更新MD5校验码。rn这是全表对比方式的原理。rn现在遇到问题如下rn//获得源表主键字符串(每个主键之间加字符‘&’),getKeystr是自己定义的方法rnString tableid = getKeystr(orgtable);rn//这是从源表中选出新增数据,orgtable是源表,tempid是临时表主键(即源表主键字符串),temptable是临时表(包含tempid和MD5校验码)rnString sqlstr = "select * from "+orgtable+" where "+tableid+" not in(select tempid from "+temptable+")";rn现在遇到的问题是,tableid是主键字符串,而源表orgtable中并不存在这个字段,该如何做才能 选出 在源表而不在临时表的记录?
ODI工具CDC增量数据抽取
ODI增量抽取数据,带上有设置代理抽取,定时抽取,等操作手册
不同数据库导入导出(增量数据抽取)
现在遇到一个问题,我获取到了oracle某个表的类型。。然后在sql server中创建相同表名相同字段的表。。。请问oracle字段类型应该如何转换为SQL Server字段类型...是否要用到java_sql_Types?
Kettle使用时间戳增量抽取数据
一、使用时间戳抽取数据原理          数据库之间基于时间戳同步数据,原理是通过判断数据采集或者更新时间与某一个基准时间对比,把数据在时间的维度进行排序,同步变化了的数据,具体如图所示:         A表是主表,B表是附表,中间表:时间戳表Time记录同步的基准时间。它的工作流程如下:         1.Time表的原始记录是(T0,T0),一旦开始同步,它会变成(T0,No...
SSIS学习(四) - SSIS+CDC 增量抽取数据
前三节主要是入门和单独使用,本章重点SSIS结合CDC做数据增量抽取(insert,update,delete) 一 在开启表的CDC基础上,建立cdc记录表用于每次增量的记录
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池