之前调研了下基于mysql的数据增量采集方案,目前有阿里的canal和Open Replicator,均是基于MySQL binlog分析的开源项目。Open Replicator仅提供了binlog解析;canal基于数据库增量日志解析,提供增量数据订阅&消费,在binlog分析的基础上进行了封装,并有相匹配的canal消费端项目开源: Otter(分布式数据库同步系统),相对有一套比较完整的增量数据订阅&消费方案。
canal除了MySQL,还提供Oracle部分版本的日志解析,但可惜目前仅开源MySQL部分。对于Oracle增量数据同步,首先想到的就是触发器,在测试表上建立触发器进行测试,可监控数据的增删改操作。但触发事件与触发器处于同一事物中,commit前就会执行触发器。若触发器中有一些非事务操作,比如:向外部发送变化事件及数据,这样未提交数据就已发送出去了,这时候rollback事物,无法撤销非事务操作。因此,我们必须让触发器监听已提交数据的变化。经过调研,在物化视图上建立触发器可以达到我们的目的。
create materialized view log on jd_address;
create materialized view MV_JD_ADDRESS_TEST
refresh fast on commit
as
select * from jd_address;
SELECT * FROM MV_JD_ADDRESS_TEST
建立表的物化视图,在commit时增量刷新物化视图
上文提到向外部发送数据,Oracle8后提供了对于Java的支持,可以通过java调用外部程序,这个方式就很多了,不多介绍
。调用过程如下:触发器》存储过程》java source》外部程序。结合上面提到的物化视图,就可以做到监控增量数据变化,并及时同步到外部程序。
对于Oracle中Java Source使用,一般需要开启授权。我们可以先开启Java Source日志,在命令窗口中执行存储过程可调用java source查看打印信息。若未授权,会打印错误信息,并提供需要授权的语句,拷贝执行即可。
SQL> set serveroutput on;
SQL> exec dbms_java.set_output(5000);
存储过程调用Java Source代码如下:
create or replace procedure prc_test(str varchar2) as language java name 'Demo.entry(java.lang.String)';
参考文档:Oracle CDC提供基于tigger的同步模式和基于流复制的异步模式,也是一个不错的解决方案。
引用
引用
引用
引用
引用
分享到:
相关推荐
本篇文章将聚焦于"基于Oracle的增量数据采集实现总结"这一主题,结合标签"源码"和"工具",探讨如何通过编程方式实现实时或定时获取Oracle数据库中的新增或更新数据。 增量数据采集是一种有效的方法,它只捕获自上次...
1. **DataX**:这是一个由阿里巴巴开发的数据同步工具,支持多种数据源到多种目标数据的全量和增量数据迁移,如从RDBMS到Hadoop。 2. **Flume**:Apache Flume是一种分布式、可靠的、可用于聚合和移动大量日志数据...
本文的研究结果表明,基于Rman和TSM的Oracle数据库备份方案是一种安全高效的数据备份解决方案,对于气象数据采集和存储具有重要的参考价值。 知识点: 1. 数据库备份的重要性:数据库备份是数据库管理中非常重要的...
Flink CDC 在现代数据栈中的作用是作为数据采集和转换的工具,通过 Flink CDC,可以高效实现海量数据的实时集成,并将数据传输到下游的存储组件中。 Flink CDC 是一个强大的数据集成框架,可以高效实现海量数据的...
`schedule` 用 cron 表达式定义了执行频率,`use_column_value` 和 `tracking_column` 用于实现基于时间戳的增量查询,确保每次只获取自上次查询以来的新数据。 标签 "logstash" 和 "logstash-inp" 暗示了这个插件...
而TimeTunnel则用于实时数据同步,基于数据库的日志,如MySQL的bin-log和Oracle的归档日志,实现增量数据的实时传输,其本质上是一个消息中间件。 在数据同步过程中,一个常见的挑战是如何合并增量数据与全量数据。...
reader部分设置MySQL连接信息和基于时间戳的查询SQL,用于筛选出需要同步的增量数据。writer部分设置HDFS的存储路径、文件类型、列信息以及写入模式。 - JSON配置文件中的`${id}`是一个动态参数,运行时通过命令行...
通过解析数据源的增量日志(例如MySQL的binlog),DTS能够将增量数据实时同步至AnalyticDB for MySQL中。DTS支持多种数据源,包括MySQL、DRDS、PolarDB等,并提供了丰富的功能,比如多数据源支持、多粒度同步、灵活...
NIFI使用请参考:Apache NIFI 安装 ● 操作 ● 文件同步 ● oracle 数据库增量同步实例讲解... 基于WEB图形界面,通过拖拽、连接、配置完成基于流程的编程,实现数据采集、处理等功能。
此外,通过侦听同步或数据复制解决增量数据同步问题,跨网络提取数据,并能处理XML数据包,适应不同源业务系统的需求。性能方面,II能够高效处理大量数据,如1.26GB/小时的数据提取速度和30GB/小时的快速数据导入...
##### 采集数据 - **实验131:** 使用`UTLBSTAT`和`UTLESTAT`工具进行优化。 - **实验132:** 使用`SPREPORT`工具进行优化。 - **实验133:** 使用`DBMS_JOB`包维护作业。 ##### 共享池优化 - **实验134:** SQL...
该项目的主要创新点包括:基于数据特色定制模型,例如Oracle日志数据数据库监控平台的日志数据通过间隔固定时间的快照方式被采集,诸如SQL执行时间、CPU时间增量、集群等待时间等反映数据库性能的多项指标按时刻被...
在大数据的基础知识中,我们通常关注四大核心环节:大数据采集、大数据预处理、大数据存储和大数据分析。以下是对这些环节的详细阐述: 一、大数据采集 大数据采集是大数据生命周期的起点,它涵盖了从各种源头获取...
通用爬虫技术主要抓取网络上的各种信息,适合于广泛的数据采集。而聚焦网络爬虫技术则针对特定主题或用户需求,只抓取与主题相关的内容,因而更高效、更有针对性。 增量式爬虫技术的应用,可以避免重复抓取已有数据...
在这个过程中,数据采集是一个重要的步骤,虽然在某些情况下对数据采集的可靠性要求可能不是特别严格,但理解如何高效地采集和处理数据仍然是至关重要的。 Apache Sqoop是Hadoop生态系统中的一个工具,专门用于在...
3. NAS数据保护方案优势:AnyBackup Family 7提供了多种优势,如支持永久增量备份以节省带宽和存储空间(选项A),基于NDMP的备份恢复能力(选项B),以及基于scaleOut集群架构的PB级海量数据保护能力(选项C)。...
Oracle GoldenGate的核心功能在于事务级别的数据复制,它通过解析源数据库的在线日志或归档日志来捕获数据的增量变化。这些变化随后被应用到目标数据库,以保持源和目标数据库间的同步。OGG是一个基于日志的复制解决...