ETL增量单表同步简述

1. 实现需求

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

2. 设计思路

设计总体流程图如下:

步骤简单说明:

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

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

3、根据beginTime和endTime获取同步时间段。

4、、根据比较原表和目标表数据的差异性,进行删除目标表的数据。

6、更新提取的开始时间,将上次提取的结束时间更新到开始时间。

3. 必备条件

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

2、同步的表要有syncTime字段,且数据类型为timstamp。

4. 具体实现

4.1. 同步配置表设计

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

字段说明如下:

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

beginTime:同步开始时间。

endTime:同步结束时间。

建表sql如下:

同步配置表synConfig建表sql

create table synConfig(

name   varchar(200) not null,

beginTime varbinary(100),

endTime varbinary(100),

constraint pk_synConfig primary key nonclustered (name)

);

--修改原表,追加同步字段

alter table tableName add synTime(timestamp)

4.2. 软件安装

1、Jdk

2、Kettle同步工具

说明:

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

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

ETL增量单表同步简述_根据timestamp增量的更多相关文章

  1. ETL增量单表同步简述_根据dateTime增量

    ETL增量单表同步简述 1. 实现需求 当原数据库的表有新增.更新.删除操作时,将改动数据同步到目标库对应的数据表. 2. 设计思路 设计总体流程图如下: 步骤简单说明: 1.设置job的执行属性,如 ...

  2. ETL全量单表同步简述

    ETL全量单表同步简述 1. 实现需求 当原数据库的表有新增.更新.删除操作时,将改动数据同步到目标库对应的数据表. 2. 设计思路 设计总体流程图如下: 注意点: 1.数据库合并时,选择正确的数据源 ...

  3. Logstash学习之路(四)使用Logstash将mysql数据导入elasticsearch(单表同步、多表同步、全量同步、增量同步)

    一.使用Logstash将mysql数据导入elasticsearch 1.在mysql中准备数据: mysql> show tables; +----------------+ | Table ...

  4. ETL全量多表同步简述

    ETL全量多表同步简述 1. 实现需求 当原数据库的表有新增.更新.删除操作时,将改动数据同步到目标库对应的数据表. 2. 设计思路 设计总体流程图如下: 1.获取同步表名如下图: 2.循环迁移数据如 ...

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

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

  6. KETTLE单表同步,写入EXCEL和TXT

    以下操作都在5.0.1版本下进行开发,其余版本可以进行自动比对 在平时工作当中,会遇到这种情况,而且很常见.比如:1.自动生成文件TXT或者EXCEL(电信行业该需求居多),上传至某服务器:2.双方数 ...

  7. kettle实现同构单表增量同步

    job如下: 如下转换:获取区服列表,将id列表保存到结果(内存) job: 同构数据库单表抽取(每个输入执行一次) 同构数据库单表抽取(job) 的具体实现如下: 转换:获取数据库连接ID 从结果获 ...

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

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

  9. SQL基本查询_单表查询(实验二)

    SQL基本查询_单表查询(实验二) 查询目标表结构及数据 emp empno ename job hiedate sal comn deptno 1007 马明 内勤 1992-6-12 4000 2 ...

随机推荐

  1. Objective-C Memory Management Being Exceptional 异常处理与内存

    Objective-C Memory Management    Being Exceptional  异常处理与内存 3.1Cocoa requires that all exceptions mu ...

  2. Java Socket 连接 Client端 和 Server端

    Client端: import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;i ...

  3. (转)淘淘商城系列——引用dubbo服务

    http://blog.csdn.net/yerenyuan_pku/article/details/72758663 上文我们一起学习了如何发布一个dubbo服务,本文我就来教大家如何在web工程中 ...

  4. Android(java)学习笔记189:ContentProvider使用(银行数据库创建和增删改查的案例)

    1. Android的四大组件: (1)Activity  用户交互的UI界面 (2)Service  后台运行的服务 (3)BroadcastReceiver 广播接收者 (4)ContentPro ...

  5. 阿里云服务器基本搭建_错误1_Permission denied (publickey)

    首先 修改这两个密码 然后重启服务器就可以了

  6. [驱动] 一个简单内核驱动,通过qemu调试(1)

    模块 通过在HOST上修改linux kernel源代码,重新编译一个vmlinux,然后,通过qemu根据这个bzImage 启动一个vm,进行调试 #cat drivers/char/test.c ...

  7. wampserver更改语言步骤

    wampserver更改语言步骤的具体步骤: 右击屏幕右下角图标>选择language>选择更改的语言

  8. 禁止浏览器static files缓存篇

    由于CSS/JS文件经常需要改动,前端调试时是不希望浏览器缓存这些文件的. Meta法 目前在chrome调试还没有遇到问题,好用!此方法假设浏览器是个好人!很听我们的话! <meta http ...

  9. js 技巧 (六)弹窗代码汇总

    弹窗代码汇总 [0.超完美弹窗代码] 功能:5小时弹一次+背后弹出+自动适应不同分辩率+准全屏显示 代码: <script> function openwin(){ window.open ...

  10. Buffer.concat()

    Buffer.concat(list[, totalLength]) Node.js FS模块方法速查 list {Array} 需要连接的 Buffer 对象数组 totalLength {Numb ...