有没有一种工具可以管理elasticsearch迁移?

5

我刚开始使用 ElasticSearch,希望能自动化迁移代码版本。

对于 RDBMS,我使用像 phinx 这样的工具来对数据库进行更改。

例如:

  1. 创建包含 up() 和 down() 方法的迁移文件。
  2. 编写命令以执行更改(例如添加索引)。
  3. 在测试等之后,运行 ./phinx migrate 命令。

是否有类似的迁移工具?

如果没有,是否有其他可接受的方法来处理集群的更改?

3个回答

1
我从未听说过有专门针对ES索引的这样的工具。
如果你的目标是更新数据的内部表示,我认为最好的方法就是创建一个脚本来执行以下步骤:
- 查找受影响的文档 - 读取内容 - 修改内容 - 在新文档中重新索引它们 - 然后删除旧文档。
更新文档不会比重新索引更有效率,因为文档是不可变的,所以更新只是获取+重新索引(https://www.elastic.co/guide/en/elasticsearch/guide/current/update-doc.html)。

1
这不完全是更新。它是一个版本控制管理器。它应该知道当前的数据库版本,并按顺序逐个运行正确的迁移脚本。 - michaelbn

0

0

来自关系型数据库的背景,当您使用有大量迁移文件的大型项目时,迁移工具非常方便。我在Elasticsearch中也遇到了同样的问题,即社区中目前没有稳定的迁移工具。

我创建了一个迁移工具,如果您来自Python https://pypi.org/project/chalan/的背景,则会很方便。其核心思想取自于Sqlalchemy的Alembic迁移工具。

使用方法简单

pip install chalan

然后升级时您必须使用

chalan upgrade

而要降级,则必须使用

chalan downgrade 

如果您在使用此工具时遇到任何问题,请告诉我,并随时提出改进意见。

有关源代码,请参阅 GitHub 链接 - https://github.com/anandtripathi5/chalan


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接