如何在elasticsearch集群之间同步数据?

时间:2017-02-14 10:23:20

标签: elasticsearch

我想在不同的物理位置进行elasticsearch数据备份。 我试图首先将所有elasticsearch节点放入同一个集群,但是当程序查询或更新elasticsearch时,大数据将在Internet上传输。它将为网络流量带来大量资金,并且存在网络延迟。

有两种简单的方法可以在两个弹性搜索集群之间同步数据吗?所以我只能在互联网上同步更改的数据。

PS: 我不太关心数据同步延迟,不到1分钟是可以接受的

1 个答案:

答案 0 :(得分:2)

如果您运行的是最新版本的Elasticsearch(5.0或5.2+),则需要拥有或添加date字段updatedAt或类似名称,然后在目标群集端运行{{ 1}}每1分钟将运行cron这样的查询:

Reindex API

有关Reindex API的更多信息,请访问此处 - https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html

如果您使用较旧的Elasticsearch(< 5.0),则可以使用工具POST _reindex { "source": { "remote": { "host": "http://sourcehost:9200", "username": "user", "password": "pass" }, "index": "source", "query": { "range": { "updatedAt": { "gte": "2015-01-01 00:00:00" } } }, "dest": { "index": "dest" } } https://github.com/taskrabbit/elasticsearch-dump)使用elasticdump字段的类似方法传输数据。