1、介绍
对mysql、oracle等数据库数据进行同步到ES有两种做法:一个是通过elasticsearch提供的API进行增删改查,另一个就是通过中间件进行数据全量、增量的数据同步。
明显通过API增上改查比较麻烦,这里介绍的是利用中间件进行数据同步。
2、常用的同步中间件的介绍和对比
(1)elasticsearch-jdbc独立的第三方工具 外链网址已屏蔽
(2)elasticsearch-river-mysql 外链网址已屏蔽
(3)go-mysql-elasticsearch(国内) 外链网址已屏蔽
都可以完成数据同步;
elasticsearch-jdbc更通用,GitHub活跃度很高;
elasticsearch-river-mysql 自2013年后便不再更新;
go-mysql-elasticsearch仍处理开发不稳定阶段;
elasticsearch-river-jdbc和elasticsearch-river-mysql都不支持对删掉的数据进行同步,go-mysql-elasticsearch希望可以改善这个问题。
总的来说,elasticsearch-jdbc更适合使用,对于删掉的数据可以采用API进行同步,或者在数据中不进行物理删除可以避免该问题的出现。
3、elasticsearch的安装
这里使用的是2.3.2版本,可以到官方网站下载,这里不提供官方地址,或者访问外链网址已屏蔽 下载本篇文章所用到的两个安装包。
得到elasticsearch-2.3.2.tar.gz
[itouchtv@VS-SUPSV-DVLP ~]$ tar -zxvf elasticsearch-2.3.2.tar.gz
[itouchtv@VS-SUPSV-DVLP ~]$ mv elasticsearch-2.3.2 /usr/local/elasticsearch-2.3.2
启动elasticsearch服务
[itouchtv@VS-SUPSV-DVLP ~]$./bin/elasticsearch
另外,bin/elasticsearch -d(后台运行);
如何需要修改配置,可以查看/elasticsearch-2.3.2/config/elasticsearch.yml;
查看节点情况:
[itouchtv@VS-SUPSV-DVLP downloads]$ curl 'localhost:9200/_cat/nodes?v'
host ip heap.percent ram.percent load node.role master name
127.0.0.1 127.0.0.1 12 79 0.18 d * node-1
查看索引,当前为无索引:
[itouchtv@VS-SUPSV-DVLP downloads]$ curl 'localhost:9200/_cat/indices?v'
health status index p