时间戳实现增量数据同步

数据同步
1、靠记录中本身的时间戳来增量更新

  分页获取必须排序(时间戳), 排序后也会出错(会出现记录跳过的情况),中途脚本停止更是会出错
  非分页的会出问题,脚本中断更会出问题(时间戳不能保证是从低到高)

  解决方法:

    1、分页条数为1、并排序但效率不高
    2、分页采用每次获取比当前时间戳大的的limit条数,再不断变化时间戳
    3、数据一次性全部取出来排序处理(适用于小数据量情况)

2、时间戳存在缓存中,等全部处理完再更新时间戳
  普通分页仍旧会出现记录跳过的情况
  非分页的则不会出现问题(因为时间戳是最后才更新),脚本终端也不会出问题。

总结出来的方式:
1、时间戳存在缓存中
  1、减少计算
  2、最后才会更新时间戳感觉更不容易出问题,最多会重复处理

2、每次运行 缓存中的时间和脚本当时的时间,运行完成后设置当前时间到缓存,这样会减少重复运行的可能

3、遍历方式
  1、分页采普通方式, 虽然某些情况下会出问题,但可以和全量更新公用一套,减少开发时间 (全量更新会弥补)
  2、如果可以用其他维度的,更好,因为这样不会出问题

时间: 2024-07-30 15:15:22

时间戳实现增量数据同步的相关文章

利用脚本实现mysql主库到备库数据同步(每五分钟同步一次增量)

目标: 将主库数据(IP1)每五分钟一次同步到备库(IP2) 服务器备库上,只同步增加量 思路: 利用crontab 每五分钟一次定时执行脚本进行数据同步 在脚本中编译实现查询五分钟内的数据增加量,并将增加量导入到备库 实现过程及代码(以record 表为例): bash脚本中内容 vi transaction.sh----建立transaction脚本实现同步 #!/bin/bash source.bash_profile (由于定时执行的功能使用crontab实现,需要在bash中添加使环境

服务 - Sersync数据同步详细教程

Sersync数据同步 一.rsync介绍 rsync是类unix系统下的数据镜像备份工具--remote sync.一款快速增量备份工具 Remote Sync,远程同步支持本地复制,或者与其他SSH.rsync主机同步. 它的特性如下: v 可以镜像保存整个目录树和文件系统. v 可以很容易做到保持原来文件的权限.时间.软硬链接等等. v 无须特殊权限即可安装. v 快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件.rsync 在传输数据的过程中可以实行压缩及解压

Linux rsync数据同步命令解析

rsync命令 rsync有六种不同的工作模式: 1)拷贝本地文件.当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式. rsync -a /data /backup 2)使用一个远程shell程序(如rsh.ssh)来实现将本地机器的内容拷贝到远程机器.当DST路径地址包含单个冒号":"分隔符时启动该模式. rsync -avz *.c foo:src 3)使用一个远程shell程序(如rsh.ssh)来实现将远程机器的内容拷贝到本地机器.

谈谈对Canal(增量数据订阅与消费)的理解

概述 canal是阿里巴巴旗下的一款开源项目,纯Java开发.基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql(也支持mariaDB). 起源:早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求.不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元. 基于日志增量订阅&消

rsync+inotify-tools实时数据同步配置实战

实验环境的准备: 源服务器:10.0.0.130 目标服务器:10.0.0.139 一.在源服务器安装Rsync服务端 1.关闭SELINUX vi /etc/selinux/config #编辑防火墙配置文件 #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq! #保存,退出 setenforce 0  #立即生效 2.开启防火墙tcp 873端口(Rsync默认端口) vi /etc/sysc

做ETL的时候用到的数据同步更新代码

这里是用的从一个库同步到另一个库,代码如下 private void IncrementalSyncUpdate(string fromConn, string toConn, Dictionary<string, string> sqlList) { var sw = new Stopwatch(); using (var conn = new SqlConnection(fromConn)) { if (conn.State != ConnectionState.Open) conn.Op

rsync远程数据同步工具应用

一直觉得rsync这个命令复杂不好用,一直在排斥这个工具,抱怨rsync功能简单又复杂难用,这些都不是rsync的问题,只是我不愿意去man这个工具的的帮助文档,其实rsync这个工具也没有想象中那么复杂难用:rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的"rsync算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快. rsync是一个功能非常强大的工具,其命令

如何实现Qlikview的增量数据加载

笔者备注: 刚刚接错Qlikview,上网搜集的资料,如何处理增量数据. 1 寻找增量时间戳(1)各种数据库:表的创建时间字段和修改时间字段或者最后的修改时间字段:(2)sql server:可以用找自增字段或者时间戳:(3)Oracle:找序列字段也是自增的:(4)如果找不到以上字段,可以分析实际业务数据:比如各种编号是不是不重复自增的:上个月的数据不会改变,变化只是本月的,那么本月数据就是增量数据:(1)对有增量变更记录数据表的,拆分一下(insert,update和delete),很简单直

Linux下rsync+inotify实现实时数据同步

一. rsync 1. 什么是rsync rsync 是一个远程数据同步工具, 可以实现本主机内,或跨主机的数据同步.以服务运行时监听在TCP 873端口, rsync演算法可以达到只传送文件变化的部分,而不是整个都传送,因此速度相当的快,性能不错. 所以rsync通常可以作为备份工具来使用. 1.1 rsync基本特点: 1. 可以镜像保存整个目录树或文件系统 2. 可以很容易做到保持原来文件的权限.时间.软硬链接等; (通过rsync的一些参数, 如 -a) 3. 较高的数据传输效率 4.