备份和恢复elasticsearch - elasticdump?

时间:2016-07-13 08:41:11

标签: elasticsearch

我是弹性搜索的新手,并且一直使用它来存储来自网络的数据并将其传递给kibana进行分析。

但是我一直需要调整我的映射。从我收集的内容来看,我无法动态改变现有字段的映射。到目前为止,每次我必须对我的映射进行调整时,我必须删除索引,创建一个新的映射,然后再次抓取我的爬行(痛苦!)。

所以我想做的是分别从现有的爬网和映射中轻松备份数据,因此我可以在逐步调整映射时恢复数据。

我已经看过使用elasticdump,但是虽然我可以创建映射和数据的json输出,但是我可以使用elasticdump来重新导入那些创建和存档的json文件中的数据和/或映射吗? / p>

感谢您的任何想法/建议!

2 个答案:

答案 0 :(得分:4)

您可以使用snapshot来备份elasticsearch数据并恢复elasticsearch本身提供的api。例如:

PUT /_snapshot/my_backup/snapshot_1
{
  "indices": "index_1,index_2",
  "ignore_unavailable": true,
  "include_global_state": false
}

Here是一篇博文,解释"如何备份弹性搜索数据"如果您希望查看备份和恢复操作而不是观看此video tutorial

答案 1 :(得分:1)

有几种方法可以在Elasticsearch中更改映射,无需停机,也无法完全重建索​​引。

  • 可能会找到使用新reindex api的最新版本herehere是一篇关于如何使用它的简单示例的文章。

  • 另一种方式(the official one)是使用scrollbulk api来重新索引从一个索引到新索引。问题是使用aliases以保持相同的“索引”名称并仍然更改其映射。其中描述了here。关键概念是为每个索引创建一个别名,并使用别名来索引数据而不是真正的索引名称。一旦需要更改映射,就可以使用新映射创建新索引,并且将所有数据重新索引到新索引后,将别名更改为指向新索引。

关于保存索引,我不知道在没有映射的情况下在Elasticsearch中保存索引的官方方法。

无论如何,如果您希望将数据移动到另一个位置的另一个群集,然后重新编制索引。您可以在Amazon S3上找到有关快照/恢复Elasticsearch数据的this文章。

link会向Elasticsearch提供有关如何与其他文件系统进行快照/还原的文档。

希望我能帮到你!