--- title: "ES 数据迁移之 INFINI Gateway" date: 2025-09-21 lastmod: 2025-09-21 description: "本文介绍如何使用INFINI Gateway将数据从Elasticsearch迁移到INFINI Easysearch。" tags: ["Easysearch", "Gateway"] summary: "之前有 博客介绍过通过 Reindex 的方法将 Elasticsearch 的数据迁移到 Easysearch 集群,今天再介绍一个方法,通过 INFINI Gateway 来进行数据迁移。 测试环境 # 软件 版本 Easysearch 1.12.0 Elasticsearch 7.17.29 INFINI Gateway 1.29.2 迁移步骤 # 选定要迁移的索引 在目标集群建立索引的 mapping 和 setting 准备 INFINI Gateway 迁移配置 运行 INFINI Gateway 进行数据迁移 迁移实战 # 选定要迁移的索引 在 Elasticsearch 集群中选择目标索引:infinilabs 和 test1,没错,我们一次可以迁移多个。 在 Easysearch 集群使用源索引的 setting 和 mapping 建立目标索引。(略) INFINI Gateway 迁移配置准备 去 github 下载 配置,修改下面的连接集群的部分" --- 之前有[博客](https://infinilabs.cn/blog/2025/easysearch-reindex-from-remote/)介绍过通过 Reindex 的方法将 Elasticsearch 的数据迁移到 Easysearch 集群,今天再介绍一个方法,通过 INFINI Gateway 来进行数据迁移。 ## 测试环境 | 软件 | 版本 | | --- | --- | | Easysearch | 1.12.0 | | Elasticsearch | 7.17.29 | | INFINI Gateway | 1.29.2 | ## 迁移步骤 1. 选定要迁移的索引 2. 在目标集群建立索引的 mapping 和 setting 3. 准备 INFINI Gateway 迁移配置 4. 运行 INFINI Gateway 进行数据迁移 ## 迁移实战 1. 选定要迁移的索引 在 Elasticsearch 集群中选择目标索引:infinilabs 和 test1,没错,我们一次可以迁移多个。 {{% load-img "/img/blog/2025/data-migration-using-infini-gateway/1.png" "" %}} 2. 在 Easysearch 集群使用源索引的 setting 和 mapping 建立目标索引。(略) 3. INFINI Gateway 迁移配置准备 去 github 下载[配置](https://github.com/infinilabs/testing/blob/main/setup/gateway/cases/elasticsearch/es_migration/common/gateway.yml),修改下面的连接集群的部分 ```plain 1 env: 2 LR_GATEWAY_API_HOST: 127.0.0.1:2900 3 SRC_ELASTICSEARCH_ENDPOINT: http://127.0.0.1:9200 4 DST_ELASTICSEARCH_ENDPOINT: http://127.0.0.1:9201 5 path.data: data 6 path.logs: log 7 progress_bar.enabled: true 8 configs.auto_reload: true 9 10 api: 11 enabled: true 12 network: 13 binding: $[[env.LR_GATEWAY_API_HOST]] 14 15 elasticsearch: 16 - name: source 17 enabled: true 18 endpoint: $[[env.SRC_ELASTICSEARCH_ENDPOINT]] 19 basic_auth: 20 username: elastic 21 password: goodgoodstudy 22 23 - name: target 24 enabled: true 25 endpoint: $[[env.DST_ELASTICSEARCH_ENDPOINT]] 26 basic_auth: 27 username: admin 28 password: 14da41c79ad2d744b90c ``` pipeline 部分修改要迁移的索引名称,我们迁移 infinilabs 和 test1 两个索引。 ```plain 31 pipeline: 32 - name: source_scroll 33 auto_start: true 34 keep_running: false 35 processor: 36 - es_scroll: 37 slice_size: 1 38 batch_size: 5000 39 indices: "infinilabs,test1" 40 elasticsearch: source 41 output_queue: source_index_dump 42 partition_size: 1 43 scroll_time: "5m" ``` 4. 迁移数据 ```plain ./gateway-mac-arm64 #如果你保存的配置文件名称不叫 gateway.yml,则需要加参数 -config 文件名 ``` {{% load-img "/img/blog/2025/data-migration-using-infini-gateway/2.png" "" %}} 数据导入完成后,网关 ctrl+c 退出。 {{% load-img "/img/blog/2025/data-migration-using-infini-gateway/3.png" "" %}} 至此,数据迁移就完成了。下一篇我们来介绍 INFINI Gateway 的数据比对功能。 有任何问题,欢迎加我微信沟通。 {{% load-img "/img/blog/banner/about_yangf.png" "" %}}