--- title: "从 Elastic 迁移到 Easysearch 指引" date: 2024-12-16 lastmod: 2024-12-16 description: "从Elasticsearch迁移到Easysearch需考虑版本、停机时间等因素。提供快照恢复和INFINI Console两种迁移方法,及客户端调整建议。极限科技多款产品已开源,欢迎参与贡献。" tags: ["Easysearch", "Elasticsearch", "ES"] summary: "从 Elasticsearch 迁移到 Easysearch 需要考虑多个方面,这取决于当前使用的 Elasticsearch 版本、能容忍的停机时间、应用需求等。在此背景下,我们梳理了一下通用的升级指引,方便大家进行迁移工作。 迁移路径 # Elasticsearch 版本 快照兼容 推荐升级方法 5.x ❌ 使用 INFINI Console 迁移 6.x ✅ 快照恢复迁移 7.0.0 - 7.10.2 ✅ 快照恢复迁移 >7.11.0 ❌ 使用 INFINI Console 迁移 之前有同事做过相关测试,详情请移步 这里。 快照恢复迁移 # 部署新的 Easysearch 集群,如果有使用插件(如 IK),也一并安装。 将备份仓库注册到 Easysearch 集群。 在 Easysearch 中设置需要使用的用户名和密码信息。 原 Elasticsearch 集群进行快照备份。 在 Easysearch 集群中进行备份还原。 另部署一套应用连接 Easysearch 集群,进行数据、功能验证。 停止应用写入新的数据到 Elasticsearch。 原 Elasticsearch 集群进行快照备份。 在 Easysearch 集群中进行备份还原。 再次使用应用验证数据、功能正常。 切换,老应用下线使用新应用或者老应用修改地址连接 Easysearch 集群。 INFINI Console 迁移 # 部署新的 Easysearch 集群及其插件(如 IK)。 部署 INFINI Console、Gateway 程序。 将 Elasticsearch 和 Easysearch 注册到 INFINI Console 中。 在 Easysearch 中设置需要使用的用户名和密码信息。 建立数据迁移任务,对业务索引进行迁移,建议启用压缩功能。 另部署一套应用连接 Easysearch 集群,进行数据、功能验证。 停止应用写入新的数据到 Elasticsearch。 再次建立数据迁移任务,设置条件,只迁移增量数据。 再次使用应用验证数据、功能正常。 切换,老应用下线使用新应用或者老应用修改地址连接 Easysearch 集群。 客户端调整 # 如果要继续使用 Java High Level REST Client,建议将版本调整到 7." --- 从 Elasticsearch 迁移到 Easysearch 需要考虑多个方面,这取决于当前使用的 Elasticsearch 版本、能容忍的停机时间、应用需求等。在此背景下,我们梳理了一下通用的升级指引,方便大家进行迁移工作。 ## 迁移路径 | **Elasticsearch 版本** | **快照兼容** | **推荐升级方法** | | ---------------------- | ------------ | ------------------------ | | 5.x | ❌ | 使用 INFINI Console 迁移 | | 6.x | ✅ | 快照恢复迁移 | | 7.0.0 - 7.10.2 | ✅ | 快照恢复迁移 | | \>7.11.0 | ❌ | 使用 INFINI Console 迁移 | 之前有同事做过相关测试,详情请移步[这里](https://infinilabs.cn/blog/2023/easysearch-snapshot-restore/)。 ## 快照恢复迁移 1. 部署新的 Easysearch 集群,如果有使用插件(如 IK),也一并安装。 2. 将备份仓库注册到 Easysearch 集群。 3. 在 Easysearch 中设置需要使用的用户名和密码信息。 4. 原 Elasticsearch 集群进行快照备份。 5. 在 Easysearch 集群中进行备份还原。 6. 另部署一套应用连接 Easysearch 集群,进行数据、功能验证。 7. 停止应用写入新的数据到 Elasticsearch。 8. 原 Elasticsearch 集群进行快照备份。 9. 在 Easysearch 集群中进行备份还原。 10. 再次使用应用验证数据、功能正常。 11. 切换,老应用下线使用新应用或者老应用修改地址连接 Easysearch 集群。 ## INFINI Console 迁移 1. 部署新的 Easysearch 集群及其插件(如 IK)。 2. 部署 INFINI Console、Gateway 程序。 3. 将 Elasticsearch 和 Easysearch 注册到 INFINI Console 中。 4. 在 Easysearch 中设置需要使用的用户名和密码信息。 5. 建立数据迁移任务,对业务索引进行迁移,建议启用压缩功能。 6. 另部署一套应用连接 Easysearch 集群,进行数据、功能验证。 7. 停止应用写入新的数据到 Elasticsearch。 8. 再次建立数据迁移任务,设置条件,只迁移增量数据。 9. 再次使用应用验证数据、功能正常。 10. 切换,老应用下线使用新应用或者老应用修改地址连接 Easysearch 集群。 ## 客户端调整 如果要继续使用 Java High Level REST Client,建议将版本调整到 7.10.2 。当然更建议的是使用 Easysearch 的[客户端](https://infinilabs.cn/blog/2024/easysearch-java-client-1/),更轻更快,构建查询,跟搭积木一样简单。 ## 开源事业 **极限科技**一直致力于为开发者和企业提供优质的开源工具,提升整个技术生态的活力。除了维护国内最流行的分词器 analysis-ik 和 analysis-pinyin ,也在不断推动更多高质量开源产品的诞生。 在极限科技成立三周年之际,公司宣布以下产品和工具已全面开源: - [INFINI Framework](https://github.com/infinilabs/framework) - [INFINI Gateway](https://github.com/infinilabs/gateway) - [INFINI Console](https://github.com/infinilabs/console) - [INFINI Agent](https://github.com/infinilabs/agent) - [INFINI Loadgen](https://github.com/infinilabs/loadgen) - [INFINI Coco AI](https://github.com/infinilabs/coco-app) 以上开源软件都可以在 Github 上面找到:[https://github.com/infinilabs](https://github.com/infinilabs) 欢迎大家一起参与到开源工具的维护、贡献当中来,别忘了 Star🌟 支持一下!!! 如果您对迁移过程有任何疑问,欢迎与我讨论。 {{% load-img "/img/blog/banner/about_yangf.png" "" %}}