数据同步一般是指一个数据源的数据发生改变时,其他相关的数据源的数据也发生相应变化。数据同步可以有五种实现方案,根据具体需求不同,可以采取不同方案。
1. 触发器:在源数据库建立增、删、改触发器,每当源数据库有数据变化,相应触发器就会激活,触发器会将变更的数据保存在一个临时表里。ORCLE 的 同步 CDC (synchronized CDC) 实际上就是使用的触发器
优点:
能做到实时同步
缺点:
降低业务系统性能,ORCLE 的 synchronized CDC 大概降低10% 左右。
影响到业务系统,因为需要在业务系统建立触发器。
2. 日志:通过分析源数据库日志,来获得源数据库中的变化的数据。ORCLE 的 异步 CDC (Asynchronized CDC) 就是使用这种方式。
优点:
基本不影响业务系统,如Oracle Asynchronized CDC 的 HotLog 方式对业务系统的性能大概降低 3% 左右,而 AutoLog 方式对业务系统几乎没有影响。
缺点:
有一定的延时
对于没有提供日志分析接口的数据源,开发的难度比较大。
3. 时间戳:在要同步的源表里有时间戳字段,每当数据发生变化,时间戳会记录发生变化的时间。
优点:
基本不影响业务系统
缺点:
要求源表必须有时间戳这一列。
在删除数据时,还要做一些特殊处理。
4. 数据比较:通过比较两边数据源数据,来完成数据同步。一般用于实时性要求不高的场景。
优点:
基本不影响业务系统
缺点:
效率低
5. 全表拷贝:定时清空目的数据源,将源数据源的数据全盘拷贝到目的数据源。一般用于数据量不大,实时性要求不高的场景。
优点:
基本不影响业务系统
开发、部署都很简单
缺点:
效率低
总结:
1. 上面五种数据同步方式,除了第五种都需要业务表有主键。
2. 对于没有触发器和日志的一些小型数据源,如txt 文本,excel 文件,Aceess,则只能使用后三种方式。
3. 对于大型数据源,一般优先选择日志方式,如 ORCALE Asynchronized CDC, 对于不能通过日志来实现的情况,可以考虑第1,3,4种方式。
PS.
PDI 的官方版 3.1 可以提供第 3,4,5 种解决方案,在我们改进的 PDI 中文版中提供了 ORACLE CDC 的解决方案(使用 ORACLE CDC 输入和 ORACLE CDC 输出插件完成)
目前我们正在开发 SQLServer 触发器方式 和 SQLServer CDC 方式的同步插件。
http://pdi.itpub.net/post/37422/465659
分享到:
相关推荐
它在IT行业中扮演着重要角色,特别是在大数据处理领域,帮助企业和开发者实现了各种数据源之间的数据迁移和同步。 DATAX的核心功能在于解决数据集成问题,支持多种数据源之间的双向同步,包括关系型数据库(如MySQL...
本文将详细介绍如何在两台SQL Server之间实现数据同步,包括复制的基本概念、工作原理以及具体的实现步骤。 #### 二、复制的概念与基本元素 **复制**是一种将一组数据从一个数据源(通常称为“出版服务器”)复制到...
对于“mysql-oracle数据同步”这个主题,我们可以采用以下几种方法: 1. **使用ETL工具**:Extract, Transform, Load(ETL)工具如Informatica、Talend或Kettle(Pentaho Data Integration),它们提供图形化界面,...
在FPGA中实现源同步LVDS接收正确字对齐需要考虑以下几点: 1.LVDS信号的抗噪声能力和功率消耗小的特点。 2.LVDS SERDES模块的设计和实现。 3.源同步时钟的生成和同步。 4.字对齐处理的实现。 FPGA的优势包括: 1....
在数据同步的过程中,有几种常见的同步策略,如全量同步和增量同步。全量同步会将所有数据复制到目标系统,而增量同步只传输自上次同步以来发生变化的数据,这样可以减少网络带宽和处理时间。在C#中,我们可以利用...
Always On Availability Groups机制可以在多个服务器之间实现数据同步,并且提供高可用性的数据库服务。 Always On Availability Groups机制的工作原理是:在多个服务器之间建立可用性组,然后将数据同步到每个...
4. **选择源数据的查询方式**: - 选择“编写查询以指定要传输的数据”。 - 编写 SQL 查询语句,例如使用 `DATEDIFF` 函数查询前一天的数据。 - 可根据实际需求自定义查询语句。 5. **映射字段**: - 在“映射...
实现窗体间数据同步有多种方法,以下列举了常见的几种: 1. **事件驱动编程**:当一个窗体中的数据发生变化时,可以通过触发事件来通知其他窗体更新数据。例如,可以定义自定义的事件,然后在源窗体中改变数据时...
数据管道(Data Pipeline)是IT领域中用于在不同系统、应用程序或数据库之间传输和转换数据的一种技术。PB(PetaByte)级别的数据管道处理的是极其庞大的数据量,这对于大数据管理和分析至关重要。本主题主要探讨...
在IT领域,数据同步是一项关键任务,特别是在企业级应用中,常常需要在不同的数据库系统之间进行数据迁移或实时同步。本篇文章将详细讲解如何利用Oracle数据库、DataX框架以及Shell脚本来实现异构库之间的数据同步。...
6. **更新数据源**:当用户对树控件进行修改时(如添加、删除或移动节点),需要同步这些变化到数据源。这通常涉及到回写操作,确保数据源与界面保持一致。 7. **性能优化**:对于大型数据集,通常采用虚拟化技术,...
2. **数据源切换**:通过`@Profile`注解实现不同环境下的数据源选择。在Spring Boot中,可以通过配置文件(如application.properties或application.yml)指定当前环境,然后在数据源配置类上使用`@Profile`注解,使...
在实际应用中,可能需要经常对比两个表之间的数据是否一致,这有助于发现并解决数据同步问题、数据迁移问题等。本文将详细介绍几种常用的在Oracle中对比两张表数据一致性的方式。 #### 方法一:利用Oracle 11g中的`...
在实现JDBC数据同步时,需要注意以下几点: - **事务管理**:为确保数据一致性,通常在同步操作中使用事务,一旦某一步失败,整个事务都将回滚。 - **错误处理**:必须处理可能出现的各种异常,如网络中断、数据库...
源同步(Source-Synchronous)是一种数字接口设计方法,主要用于高速数据传输系统中,例如DDR(Double Data Rate)内存、串行ATA(SATA)和PCI Express等。在这些系统中,数据的发送方不仅发送数据,还同时发送时钟...
标题中的“来自IEEE PES数据库的电能质量扰动数据源”揭示了本文将要讨论的核心主题,即IEEE电力与能源学会(IEEE Power & Energy Society, PES)维护的一个专门用于电能质量研究的数据集。这个数据集包含了各种类型...
FTSP是一种适用于WSNs的分布式时间同步协议,它利用网络中选定的几个节点作为参考时钟,其他节点通过与这些参考节点的通信来校准自己的时钟。FTSP的优势在于其高精度和低开销,使得即使在网络拓扑变化或节点故障的...
根据给定的部分内容,我们可以了解到几种常见的SQL Server数据同步方式: 1. **日志传送**:这是一种简单而有效的方式,通过定期备份事务日志并将这些日志发送到另一台服务器上进行恢复,从而实现数据同步。 2. **...
DataX3.0 概览 DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle 等)、HDFS、Hive、ODPS、HBase、FTP 等各种异构数据源之间稳定高效的数据同步功能。 设计理念 为了解决异构数据...
在这个场景中,我们关注的是如何在两个不同的Oracle数据库之间实现数据表的同步。 Oracle提供了多种方法来实现数据同步,下面我们将详细探讨这些方法: 1. **GoldenGate**:Oracle GoldenGate 是一个高级的数据...