elasticsearch snapshot

时间:2018-03-27 15:43:29

标签: elasticsearch

我们将使用快照API进行群集的蓝绿色部署。我们希望对现有群集进行快照,启动新群集,从快照还原数据。我们还需要将现有集群数据的任何更改应用到我们的新集群(在我们切换并使新集群生效之前)。

我们的想法是,我们可以索引数据库中的数据,这些数据在创建快照的时间戳之后发生了变化,以确保发生在正在运行的实时集群中的任何写入都将应用于新集群(仅限新集群)从快照恢复数据)。我的问题是使用什么时间戳日期? Snapshot API具有给定快照的start_time和end_time值 - 但我不确定此上下文中的end_time意味着“所有数据都已修改到此时”。我觉得这只是告诉你手术花了多长时间的标记。我可能错了。

有谁知道如何查找快照包含的内容?我们可以使用end_time作为标记来知道该快照包含该日期之前的所有数据修改吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

根据documentation

  

快照过程以非阻塞方式执行。所有索引   并且可以继续对索引执行搜索操作   正在快照。但是,快照代表了   快照所在时索引的时间点视图   已创建,因此没有在快照后添加到索引的记录   进程已启动将出现在快照中。

您需要使用start_time或start_time_in_millis。

由于快照是增量的,您可以创建第一个完整快照,而在第一个快照完成后立即创建一个快照,它几乎是即时的。

还有一个问题:为什么要创建已在elasticsearch中实现的功能?如果您可以同时运行两个群集,则可以合并两个群集,让它们同步,将写入查询切换到新群集,逐渐断开旧服务器与合并群集的连接,只留下新群集。