我刚开始使用ElasticSearch,我希望自动化代码版本之间的迁移。对于RDBMS,我使用像phinx这样的工具将更改应用到DB。例如:1.使用up()和down()方法创建迁移文件。1.写入要应用的命令(例如添加索引)。1.测试等后./phinx migrate。是否有这样的迁移工具?如果没有,是否有其他可接受的方法来处理对群集的更改?
ElasticSearch
RDBMS
./phinx migrate
mcdcgff01#
我从来没有听说过这样一个专门用于ES索引的工具。如果您的目标是更新数据的内部表示,我认为最好的方法是创建一个脚本:
更新文档不会比重新索引更有效,因为文档是不可变的,所以更新只是get + reindex(https://www.elastic.co/guide/en/elasticsearch/guide/current/update-doc.html)
yzxexxkh2#
基于代码(如Java)的Flyway迁移可用于处理任何数据存储。类似于迁移关系数据库,但需要更多的工作,因为您需要使用相关命令(如create index)实现对ElasticSearch的调用。https://flywaydb.org/documentation/concepts/migrations.html#java-based-migrations
3hvapo4f3#
来自于RDBMS的背景,当你处理一个有很多迁移文件的大项目时,迁移工具是非常方便的。我也面临着Elasticsearch的同样问题,目前社区中还没有稳定的迁移工具。我已经创建了一个迁移工具,如果你来自python https://pypi.org/project/chalan/的背景,它会很方便。核心思想取自Alembic迁移工具,这是为Sqlalchemy。使用简单
pip install chalan
然后,为了升级,您必须使用
chalan upgrade
对于降级,您必须使用
chalan downgrade
请让我知道,如果你面临的任何问题,这个工具,并随时建议一些改进,如果有的话。源代码请参考github链接-https://github.com/anandtripathi5/chalan
3条答案
按热度按时间mcdcgff01#
我从来没有听说过这样一个专门用于ES索引的工具。
如果您的目标是更新数据的内部表示,我认为最好的方法是创建一个脚本:
更新文档不会比重新索引更有效,因为文档是不可变的,所以更新只是get + reindex(https://www.elastic.co/guide/en/elasticsearch/guide/current/update-doc.html)
yzxexxkh2#
基于代码(如Java)的Flyway迁移可用于处理任何数据存储。类似于迁移关系数据库,但需要更多的工作,因为您需要使用相关命令(如create index)实现对ElasticSearch的调用。
https://flywaydb.org/documentation/concepts/migrations.html#java-based-migrations
3hvapo4f3#
来自于RDBMS的背景,当你处理一个有很多迁移文件的大项目时,迁移工具是非常方便的。我也面临着Elasticsearch的同样问题,目前社区中还没有稳定的迁移工具。
我已经创建了一个迁移工具,如果你来自python https://pypi.org/project/chalan/的背景,它会很方便。核心思想取自Alembic迁移工具,这是为Sqlalchemy。
使用简单
然后,为了升级,您必须使用
对于降级,您必须使用
请让我知道,如果你面临的任何问题,这个工具,并随时建议一些改进,如果有的话。
源代码请参考github链接-https://github.com/anandtripathi5/chalan