增量同步和全量同步是数据库同步的两种方式。全量同步是一次性同步全部数据,增量同步则只同步两个数据库不同的部分。
数据库简介:
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
增量同步的方式有很多种,我使用的是: 快照表 + 触发器
需求:
当主库库表发生增删改时,从库库表与主库库表数据保持一致。
环境:
1、Mysql
2、kettle 7.1
思路:
1、在主库中,将需要同步的库表新建快照表,表结构一致。
2、在主库中,分别新增库表的增、删、改的触发器。
2、新建一个转换,该转换只针对一张表的增删改。
3、新建‘表输入’控件,查询主库的快照表
4、新建‘插入/更新’控件,插入数据到从库的库表,查询的关键字要求唯一。
5、新建‘删除’控件,将主库的快照表中的数据删除。
注意: 主库的库表,要新增针对增、删、改的三张表快照,三张表的步骤同上面的1 - 5 一致。
6、新建作业控件
7、配置发送邮件服务
8、完成
“动态增量”是“增量导入数据”在9.1版本中新增的入集市的方式。免费获取更多信息,点击了解更多随着数据量的增大,咱们入集市的方式渐渐的从“同步数据”变成“增量导入数据”,“增量导入数据”的优点大致有两点:1. 入集市的时候可以打上meta,查询的时候按照meta进行查询,加快查询速度;2. 采取每次追加部分数据的方式,跟“同步数据”每次全量数据入集市的方式相比,每天入集市任务的时间更短;数据库处理的数据量更小,减少数据库压力。同时,“增量导入数据”也并不能完全满足咱们数据更新的需求。一. 为什么要用“动态增量”?举个例子,某部门分析的是订单数据,有历史5年的订单数据(2016年1月到2021年3月),历史数据不会变化,只有最近3个月的数据会发生变化,每天想要查询的历史所有订单数据(2016年1月到昨天的数据都可能会查询)。如果使用“增量导入数据”的“普通增量”,每天追加前一天的数据到集市中没有问题,但是无法满足“最近3个月的数据会变化”的场景,比如:咱们在2021年3月10号,将2021年3月9号的数据追加到集市中,但是到了11号的时候,9号的数据发生了变化。”普通增量”是没有办法对集市中已经变化的9号的数据进行update,或者说删除9号的数据,重新导入。这种时候“动态增量”就派上用场啦!欢迎分享,转载请注明来源:内存溢出
评论列表(0条)