我对ES很陌生。我一直在寻找数据库迁移工具,但找不到。我想知道是否有人能帮我指出正确的方向。
我会使用 Elasticsearch 作为项目中的主数据存储。我想对所有映射和配置更改/数据导入/数据升级脚本进行版本控制,这些脚本是我在项目中开发新模块时运行的。
过去,我使用Flyway或Liquibase等数据库版本控制工具。
有没有任何框架/脚本或方法可以与ES一起使用来实现类似的目标?
有没有人有过手动使用脚本和运行迁移脚本至少升级脚本的经验?
提前感谢!
从这个观点/需求来看,ES有一个巨大的局限性:
这在你的问题中是什么意思?基本上,你不能拥有用于ES的经典迁移工具。以下是可以让您更轻松地使用ES的方法:
>
使用严格映射(“dynamic”:“strict”
和/或index.mapper.dynamic:false
,查看映射文档)。这将保护您的索引/类型免受
意外地用错误的类型动态映射
在数据映射关系中遗漏某些错误的情况下获得显式错误
您可以获取实际的ES映射,并将其与您的数据模型进行比较。如果你的PL有足够高水平的ES库,这应该很容易
您可以利用索引别名进行迁移
所以,有一点经验。对我来说,目前合理的流程是这样的:
每次部署代码时,您
所有这些实际上意味着你可以很好地使用你拥有的映射/数据,就像往常一样使用数据。
name{revision}{date}
批量
请求快速重新编制索引在此重新编制索引期间,您可以通过别名安全地为新文档编制索引。缺点是历史数据在重新编制索引期间部分可用这是经过生产测试的解决方案。关于这种方法的注意事项:
总结一下:
river-*
tools所做的那样。问题内容: 我对ES非常陌生。我一直在尝试搜索数据库迁移工具,但找不到。我想知道是否有人可以帮助我指出正确的方向。 我将使用Elasticsearch作为项目中的主要数据存储。我想对我在项目中开发新模块时运行的所有映射和配置更改/数据导入/数据升级脚本进行版本控制。 过去,我使用过数据库版本控制工具,例如Flyway或Liquibase。 我可以在ES中使用任何框架/脚本或方法来实现类似目的吗?
我正在尝试使用flyway,但是我有一个不知道如何解决的情况: 当我应用STANDARD脚本时,我必须运行V1.0__create_table_TAB1.sql当我将脚本应用到customer1时,TAB1表是一个视图,因此我必须运行V1.0__creaate_view_TAB1_to_schema1.sql。 实际: 应始终应用sql_common文件夹的脚本,但不应应用 V1.0(创建表 TA
我陷入了关于是否使用MongoDB或Cassandra来满足我的数据库需求的具体决定之间,并希望对我的用例进行输入以指导我的决定。 要求: 数据源 X个包含Y个服务器的数据中心。 每个服务器有N个网络和M个统计数据。 e、 g.目前(3个数据中心、50台服务器、19个网络和10个统计数据)。这些数字会随着时间的推移而增加。 数据获取: 每小时为每台服务器解析一个xml页面(约20kb/页)。(~2
我正在尝试配置Spring Boot和Flyway,以便使用Spring Boot 2.2.6和Flyway 5.2.3对两个不同的数据源应用单独的迁移。 主要数据源: 第二个数据源: 数据源连接属性: Flyway迁移: 目录结构: 迁移脚本仅正确应用于数据库。 问题是,和中的脚本被应用到数据库,而只应用主目录中的脚本。 如何配置Flyway以仅将目录中的迁移脚本应用于数据库?
问题内容: 我正在使用Java开发数据库迁移工具。该工具将数据库表及其数据复制到目标数据库。但是我希望它可以在不同的数据库上工作。从mysql复制并在derby等中创建。使用JDBC,我们可以收集有关表及其列的足够信息。但是我要问的是,是否可以使用sql free在Java上重新创建表。我的意思是不同的数据库具有不同的数据类型,有时它们在sql语法上也有所不同。那么JDBC或任何其他库(可以是开放
在开发和维护一个数据库驱动的应用程序时, 数据库的结构会像代码一样不断演变。 例如,在开发应用程序的过程中,会增加一张新表且必须得加进来; 在应用程序被部署到生产环境后,需要建立一个索引来提高查询的性能等等。 因为一个数据库结构发生改变的时候源代码也经常会需要做出改变, Yii 提供了一个 数据库迁移 功能,该功能可以记录数据库的变化, 以便使数据库和源代码一起受版本控制。 如下的步骤向我们展示了