ETL增量单表同步简述

1. 实现需求

当原数据库的表有新增、更新、删除操作时,将改动数据同步到目标库对应的数据表。

2. 设计思路

设计总体流程图如下:

步骤简单说明:

1、设置job的执行属性,如下图:

2、根据要同步的表名,更新同步配置表synConfig的endTime。

3、获取同步时间段并将beginTime和endTime设置到变量中。

4、获取beginTime>= and <endTime,根据比较原表和目标表数据的差异性,进行更新/插入数据到目标表。

5、根据比较原表和目标表数据的差异性,进行删除目标表的数据。一般通过id进行比较,故与4步骤分开处理。

6、更新提取的开始时间和结束时间,将上次提取的结束时间更新到开始时间。此步骤与4步骤配合。

3. 必备条件

1、目标数据库的表结构与原数据库相同;

2、同步的表要有syncTime字段,且数据类型和同步配置表synConfig的beginTime、endTime的数据类型相同。

3、当原表有新增、更新操作时要更新synTime字段。

4. 具体实现

4.1. 同步配置表设计

创建同步配置表synConfig,如图所示:

字段说明如下:

name:要同步的数据表名字。

beginTime:同步开始时间。

endTime:同步结束时间。

如下图表示数据表table3开始同步的时间为2017-05-11 14:20:51.473,结束时间为2017-05-11 14:20:53.520。

建表sql如下:

create table synConfig(

  name   nvarchar(64) not null,

  beginTime datetime,

  endTime datetime,

);

4.2. 软件安装

1、Jdk

2、Kettle同步工具

说明:

kettle7版本要求jdk必须为1.8以上。

详细可参考官网:http://community.pentaho.com/projects/data-integration/

转载于:https://www.cnblogs.com/xmqa/p/6879392.html

ETL增量单表同步简述_根据dateTime增量相关推荐

  1. mysql 主从单库单表同步 binlog-do-db replicate-do-db

    方案一:两边做主从. SELECT SUM(DATA_LENGTH)+SUM(INDEX_LENGTH) FROM information_schema.tables WHERE TABLE_SCHE ...

  2. pdman 创建表同步数据库_pdman 创建表同步数据库_使用PDMan来设计数据库系列1-PDMan软件的简介与安装...

    前言 最近除了做好手上的工作外,也需要开始设计一套数据库用来存储实验室的全套数据,可能会涉及多个表的交叉引用,为了更加高效和准确的进行设计,需要用到数据库模型建模工具.这里选择的是开源的PDMan. ...

  3. pdman 创建表同步数据库_使用PDMan来设计数据库系列1-PDMan软件的简介与安装

    前言 最近除了做好手上的工作外,也需要开始设计一套数据库用来存储实验室的全套数据,可能会涉及多个表的交叉引用,为了更加高效和准确的进行设计,需要用到数据库模型建模工具.这里选择的是开源的PDMan. ...

  4. mysql主从数据库同步问题_聊聊MySQL主从数据库同步的那些事儿

    在linux服务器下测试:主(master)服务器IP:219.223.5.105(对应内网IP:192.168.1.75)从(slave)服务器IP:219.223.5.104(对应内网IP:192 ...

  5. kettle spoon判断增量更新_使用Kettle实现数据实时增量同步--时间戳增量回滚同步...

    使用Kettle实现数据实时增量同步 0. 前言 本文介绍了使用Kettle对一张业务表数据(500万条数据以上)进行实时(10秒)同步,采用了时间戳增量回滚同步的方法.关于ETL和Kettle的入门 ...

  6. 使用RestCloud ETL实现增量数据实时同步

    用ETL工具做数据库增量同步方式总共有如下几种: 通过时间戳实时增量同步,每次读取数据时用上一次读的时间戳进行最新数据的查询,有缺点也有优点,这种方式增量我们后面再介绍用ETL怎么做 使用触发器实现增 ...

  7. oracle 查询天,Oracle查询_ 单表查询

    前面我们详解了关于Oracle的增删改,今天让我们接着来学习Oracle的查询吧, Oracle中查询可是重头戏噢!!!跟着煌sir的步伐,走位,走位~~~ 小知识锦囊 在此前,先讲解一个小知识点 O ...

  8. 用程序同步mysql数据库表_初次用Java写了个数据库表同步工具

    介绍 java 程序编写,真正跨平台. 传入一定的参数,即可在相同或不同的数据库间进行表的同步,包括表结构的同步及数据的同步.作业由调度工具进行调度,比如 moia,本项目旨在提供一种数据库间表同步的 ...

  9. CentOS6.4 配置mysql服务器启动多个端口,同步单表数据

    ============================================================ ====多端口启动==== ========================= ...

最新文章

  1. Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False
  2. 加速神经网络收敛的萃取精馏权重法
  3. sap abap在表VBAP和VBAK上增加新字段的标准BAPI
  4. Twemproxy -- 针对MemCached与Redis的代理
  5. JavaFX 中 FX 一词的由来
  6. IBM SOA[ESB,BPM,Portal等]基础架构图解
  7. 技术转管理?这些“坑”你要绕道走
  8. Linux版本的ActiveMQ安装过程
  9. 比特币矿池是什么意思
  10. ECharts(Enterprise Charts 商业产品图表库)初识
  11. 「支持m1」命令行终端美化模拟器—Hyper for Mac
  12. java8新特性——如何使用lambda
  13. MaskFlownet图
  14. jade6.5安装教程
  15. 【超图+CESIUM】【基础API使用示例】31、超图|CESIUM -【坐标转换】屏幕坐标转世界坐标
  16. 第三方app实现微信登录功能
  17. tcpcopy mysql_MySQL容量规划之tcpcopy应用之道 西橙
  18. python中扑克牌类设计_创建扑克牌类Python
  19. 华为云——开发者技能测评
  20. 基于Android studio 的学生课堂管理app

热门文章

  1. Home_W的握手问题(思维+打表)
  2. matlab图片包微盘,如何用Matlab绘制二维图形资料下载
  3. 五大服务顺序_百度大脑5.0技术干货:详解飞桨五大优势,鸿鹄芯片架构细节
  4. python | 高效统计语言模型kenlm:新词发现、分词、智能纠错
  5. Early Stopping早停法
  6. 浅析Mysql的隔离级别及MVCC
  7. “提速降费” 并非一蹴而就 矛头齐指运营商有失偏颇
  8. django模板的使用方法
  9. 更改Tomcat默认目录+端口+设置缺省网页的方法
  10. 利用@factory和@dataProvider实现参数化