Elasticsearch 的全量同步和增量同步

您所在的位置:网站首页 数据增量更新什么意思 Elasticsearch 的全量同步和增量同步

Elasticsearch 的全量同步和增量同步

2024-07-15 08:33| 来源: 网络整理| 查看: 265

(1)全量同步

什么是全量同步:将一个mysql的整个表的所有数据都同步到es中

常用插件是logstash-input-jdbc,logstash通过sql语句分区间对数据进行查询,然后输出到es进行实现。

logstash-input-jdbc同步插件原理:

作用:使用 logstash-input-jdbc 插件读取 mysql 的数据

(2)增量同步(canal)

什么是增量同步:业务场景需要实时性较高并对要求****对数据库的压力比较小。

logstash不再适合增量同步,logstash是基于sql来完成的会用一定的延迟性做不到实时性,并且是通过cron表达式来调用。

阿里在做大做强的过程中也遇到过类似的问题,为了达到性能的最优,他们自己通过JAVA代码实现了mysql的数据同步功能,通过解析mysql 的日志进行实现的,并且把这个项目开源——canal 并用它实现的对ES实时同步数据的效果,而且不仅仅可以给ES进行同步。还可以给以下很多第三方软件进行数据同步 在这里插入图片描述 原理:

它里面是通过一个server(服务端)和一个client(客户端)来进行实现的。

及server(服务端)负责mysql的日志监听与收集,然后再传给client(客户端)端server(服务端)与client(客户端)使用的netty(网状的 实现聊天功能)进行数据的tcp通信。 同时canal也有专门的可视化监控界面,方便进行查看,同时也有HA(hadoop集群)的实现方式,通过zookeeper来进行实现和控制的。

(个人理解就是类似于一个管道服务端和客户端就是管道的两端,如何利用netty来进行数据的tcp通信)

使用:

想将数据从mysql同步到es通过canal的一个adapter(适配器)就可以直接实现了

Netty 百度百科:https://baike.baidu.com/item/Netty/10061624?fr=aladdin

Netty 详细博客地址:https://www.sohu.com/a/272879207_463994

Netty 是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。

canal优点:

(1)canal实现数据的增量同步性能高,有可视化界面可监控

(2)看canal esAdapter的源码可知,canal esAdater中的etl方法对全量同步的功能也已经做了实现,可增量可全量同步了

ES数据同步的实战和详细博客地址:https://blog.csdn.net/RuiKe1400360107/article/details/104270421



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3