我想弹性搜索数据备份在不同的物理位置。 我曾试图把所有elasticsearch节点到同一个群集中在第一,但在程序查询或更新elasticsearch,大数据将传输互联网上。这对网络流量会造成很大的损失,并且会导致网络延迟。如何在elasticsearch集群之间同步数据?
是否有任何简单的方法来同步两个elasticsearch集群之间的数据?所以我只能在互联网上同步更改的数据。
PS: 我不关心数据同步延迟,不到1分钟是可以接受的
我想弹性搜索数据备份在不同的物理位置。 我曾试图把所有elasticsearch节点到同一个群集中在第一,但在程序查询或更新elasticsearch,大数据将传输互联网上。这对网络流量会造成很大的损失,并且会导致网络延迟。如何在elasticsearch集群之间同步数据?
是否有任何简单的方法来同步两个elasticsearch集群之间的数据?所以我只能在互联网上同步更改的数据。
PS: 我不关心数据同步延迟,不到1分钟是可以接受的
如果您运行的是最新版本的Elasticsearch(5.0或5.2+),你需要有情况或添加date
场updatedAt
或类似的名称,然后在目的地集群端运行cron
每1分钟将运行Reindex API
查询是这样的:在重新编制API
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://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html
如果您使用的是较旧的Elasticsearch(< 5.0),则可以使用工具elasticdump
(https://github.com/taskrabbit/elasticsearch-dump)以updatedAt
字段使用类似方法传输数据。