是否有工具来管理ElasticSearch迁移

4nkexdtk  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(3)|浏览(190)

我刚开始使用ElasticSearch,我希望自动化代码版本之间的迁移。
对于RDBMS,我使用像phinx这样的工具将更改应用到DB。
例如:
1.使用up()和down()方法创建迁移文件。
1.写入要应用的命令(例如添加索引)。
1.测试等后./phinx migrate
是否有这样的迁移工具?
如果没有,是否有其他可接受的方法来处理对群集的更改?

mcdcgff0

mcdcgff01#

我从来没有听说过这样一个专门用于ES索引的工具。
如果您的目标是更新数据的内部表示,我认为最好的方法是创建一个脚本:

  • 查找受影响的文档
  • 阅读内容
  • 修改它们
  • 在新文档中重新编制索引
  • 然后您可以删除旧文档。

更新文档不会比重新索引更有效,因为文档是不可变的,所以更新只是get + reindex(https://www.elastic.co/guide/en/elasticsearch/guide/current/update-doc.html

yzxexxkh

yzxexxkh2#

基于代码(如Java)的Flyway迁移可用于处理任何数据存储。类似于迁移关系数据库,但需要更多的工作,因为您需要使用相关命令(如create index)实现对ElasticSearch的调用。
https://flywaydb.org/documentation/concepts/migrations.html#java-based-migrations

3hvapo4f

3hvapo4f3#

来自于RDBMS的背景,当你处理一个有很多迁移文件的大项目时,迁移工具是非常方便的。我也面临着Elasticsearch的同样问题,目前社区中还没有稳定的迁移工具。
我已经创建了一个迁移工具,如果你来自python https://pypi.org/project/chalan/的背景,它会很方便。核心思想取自Alembic迁移工具,这是为Sqlalchemy。
使用简单

pip install chalan

然后,为了升级,您必须使用

chalan upgrade

对于降级,您必须使用

chalan downgrade

请让我知道,如果你面临的任何问题,这个工具,并随时建议一些改进,如果有的话。
源代码请参考github链接-https://github.com/anandtripathi5/chalan

相关问题