kettle数据同步的五种方案

数据同步:当数据源发生改变时,其他相关数据也跟着发展变化。根据需求不同可采取以下方案。

1.触发器

在数据库建立增删改的触发器。触发器将变更放到一张临时表里。oracle同步cdc

优点:实时同步
缺点:影响到业务系统,因为需要在业务系统建立触发器

2.日志

通过分析源数据库日志,来获得源数据库中的变化的数据。oracle异步cdc

优点:不影响业务系统
缺点:有一定得延时,对于没有提供日志分析接口的数据源,开发的难度比较大

3.时间戳

在要同步的源表里有时间戳字段,每当数据发生变化,时间戳会记录发生变化的时间

优点:基本不影响业务系统
缺点:要求源表必须有时间戳这一列

4.数据比较

通过比较两边数据源数据,来完成数据同步。一般用于实时性要求不高的场景。

优点:基本不影响业务系统
缺点:效率低

5. 全表拷贝

定时清空目的数据源,将源数据源的数据全盘拷贝到目的数据源。一般用于数据量不大,实时性要求不高的场景。

优点:基本不影响业务系统,开发、部署都很简单
缺点:效率低
总结:
1. 上面五种数据同步方式,除了第五种都需要业务表有主键。
2. 对于没有触发器和日志的一些小型数据源,如txt 文本,excel 文件,Aceess,则只能使用后三种方式。

3. 对于大型数据源,一般优先选择日志方式,如 ORCALE Asynchronized CDC, 对于不能通过日志来实现的情况,可以考虑第1,3,4种方式。

转载:http://blog.csdn.net/foreverling/article/details/10625701 

时间: 2024-10-02 00:55:32

kettle数据同步的五种方案的相关文章

linux下实现web数据同步的四种方式(性能比较)_Linux

实现web数据同步的四种方式 ======================================= 1.nfs实现web数据共享2.rsync +inotify实现web数据同步3.rsync+sersync更快更节约资源实现web数据同步4.unison+inotify实现web数据双向同步 ======================================= 一.nfs实现web数据共享  nfs能实现数据同步是通过NAS(网络附加存储),在服务器上共享一个文件,且服务器

Jquery命名冲突解决的五种方案分享_jquery

因为许多 JavaScript 库使用 $ 作为函数或变量名,jquery也一样.其实$只是jquery的一个别名而已,假如我们需要使用 jquery 之外的另一 js 库,我们可以通过调用 $.noConflict() 向该库返回控制权.下面是收集到解决这一问题的五种方案,总有一种你会用得上的. 例一: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w

HBase数据同步到ElasticSearch的方案

ElasticSearch的River机制 ElasticSearch自身提供了一个River机制,用于同步数据. 这里可以找到官方目前推荐的River: http://www.elasticsearch.org/guide/en/elasticsearch/rivers/current/ 但是官方没有提供HBase的River. 其实ES的River非常简单,就是一个用户打包好的jar包,ES负责找到一个node,并启动这个River.如果node失效了,会自动找另外一个node来启动这个Ri

java-线程等待/同步的五种方法

在面试时,经常会有面试官问道,一个主线程有多个子线程,如何能使子线程的业务执行完成之后,再执行主线程业务逻辑.对于这个问题,本人能够想到的有五种方法,详细请移步源码 1.使用线程类自带的join方法,将子线程加入到主线程,在子线程执行完之后,在执行主线程逻辑. 例如 [java] view plain copy  print? public static void joinDemo()           throws InterruptedException       {          

如何生成静态页面的五种方案

静态|页面 方案1:/// <summary>/// 传入URL返回网页的html代码/// </summary>/// <param name="Url">URL</param>/// <returns></returns>public static  string getUrltoHtml(string Url){errorMsg = "";try{System.Net.WebRequest

解决T4模板的程序集引用的五种方案

在众多.NET应用下的代码生成方案中,比如CodeDOM,BuildProvider, 我觉得T4是最好的一种.关于T4的基本概念和模板结果,可以参考我的文章<基于T4的代码生成方式>.如果要了解T4具体的应用,则可以参考我的文章<创建代码生成器可以很简单:如何通过T4模板生成代码?>(上篇)(下篇).如果你编写T4模板,你不得不面对一个问题--如何引用一个程序集?VS 2010采用了与VS2008不同的程序集引用的解析机制.本篇文章为你介绍在VS2010下5种不同的程序集引用的方

使用ASP.NET模板生成HTML静态页面的五种方案_实用技巧

ASP.NET模版生成HTML静态页面方案1: 复制代码 代码如下: /// < summary> /// 传入URL返回网页的html代码 /// < /summary> /// < param name="Url">URL< /param> /// < returns>< /returns> public static string getUrltoHtml(string Url) { errorMsg = &

未来五年内将重塑大数据技术的五种趋势

请大家不要再纠结于一块磁盘能保存多少数据或者企业到底会不会采用Hadoop.关于大数据的真正问题在于,企业用户将如何使用Hadoop.我们的系统到底能在智能化道路上走多远.我们又该如何保证这一切都处于控制之下. 过去几年当中,大数据技术已经迎来长足发展;从一个乐观积极的流行词汇变成人见人恨的疑难杂症,关注重点也由纯粹的数据规模转向对类型及速度的追求.所谓"大数据"及其相关技术在经历了高度重视.详细甄别以及吐故纳新之后,实际成果很可能与我们的认知存在较大差异.然而时至今日,我们正站在历史

一起谈.NET技术,解决T4模板的程序集引用的五种方案

在众多.NET应用下的代码生成方案中,比如CodeDOM,BuildProvider, 我觉得T4是最好的一种.关于T4的基本概念和模板结果,可以参考我的文章<基于T4的代码生成方式>.如果要了解T4具体的应用,则可以参考我的文章<创建代码生成器可以很简单:如何通过T4模板生成代码?>(上篇)(下篇).如果你编写T4模板,你不得不面对一个问题--如何引用一个程序集?VS 2010采用了与VS2008不同的程序集引用的解析机制.本篇文章为你介绍在VS2010下5种不同的程序集引用的方