使用logstash-input-jdbc同步mysql到es

参考:https://www.phpmianshi.com/?id=120

数据同步方式


全量同步与增量同步

全量同步是指全部将数据同步到es,通常是刚建立es,第一次同步时使用。增量同步是指将后续的更新、插入记录同步到es。(删除记录没有办法同步,只能两边执行自己的删除命令)
 

常用的一些ES同步方法


1. elasticsearch-jdbc: 严格意义上它已经不是第三方插件。已经成为独立的第三方工具。

Elasticsearch-JDBC暂时还不支持Elasticsearch 5.0,并且很久没有更新了 ,弃用

https://github.com/jprante/elasticsearch-jdbc

 

2. elasticsearch-river-mysql插件 很久很久没更新了,弃用

https://github.com/scharron/elasticsearch-river-mysql


3. go-mysql-elasticsearch 

第三方开源项目,通过同步Mysql的binlog日志进行增量同步

https://github.com/siddontang/go-mysql-elasticsearch


4. python-mysql-replication:

https://github.com/noplay/python-mysql-replication


5. MySQL Binlog 通过 MySQL binlog 将 MySQL 的数据同步给 ES, 只能使用 row 模式的 binlog。

 

6. Logstash-input-jdbc   https://github.com/logstash-plugins/logstash-input-jdbc

 

经过测试,稳定且易用的是 logstash-input-jdbc

 

安装logstash-input-jdbc插件

 

logstash-input-jdbc插件是logstash 的一个插件。

使用ruby语言开发。需要科学上网才能安装。

解决办法,改成国内的ruby仓库镜像。此镜像托管于阿里云服务器上 :
 

yum install gem
1、替换成ruby-china的库
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
查看是否成功
gem sources -l
2.替换完之后,进入logstash-5.5.0,修改Gemfile文件里面的数据源:
vi Gemfile
修改成这个样子:
source "https://gems.ruby-china.com"
进入到logstash的bin下
cd bin
./logstash-plugin install logstash-input-jdbc

 

如何同步

参考下一篇文章:https://www.phpmianshi.com/?id=122

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值