elasticesearch 第8章 数据迁移 elasticesearch 第8章 数据迁移

2026-06-04

Elasticsearch 数据迁移主要取决于数据量大小和集群版本跨度。

常见的方法包括:快照备份(海量数据首选)、Reindex API(同集群或跨小版本迁移)以及 Logstash/Elasticsearch-dump(轻量级或跨大版本同步)。

一、跨大版本 / 轻量级迁移

elasticsearch-dump

适用场景:数据量较小(GB级以内),或需灵活筛选特定数据。

优缺点:操作简单,支持跨大版本迁移(如5.x迁移至7.x/8.x);但速度较慢,容易中断。

操作命令(通过 npm 安装执行):

<span style="font-size: 18px;"># 1. 全局安装 elasticdump 工具<br/>npm install elasticdump -g<br/><br/># 2. 迁移 Index 的 Settings<br/>elasticdump --input=http://源IP:9200/源索引名 --output=http://目标IP:9200/目标索引名 --type=settings<br/><br/># 3. 迁移 Index 的 Mapping<br/>elasticdump --input=http://源IP:9200/源索引名 --output=http://目标IP:9200/目标索引名 --type=mapping<br/><br/># 4. 迁移 Data 数据<br/>elasticdump --input=http://源IP:9200/源索引名 --output=http://目标IP:9200/目标索引名 --type=data<br/></span>

二、同版本 / 跨小版本

Reindex API

适用场景:同一集群内迁移数据,或小版本之间迁移(如 6.x 到 7.x),不支持跨大版本(如 5.x 到 8.x)。

优缺点:无需停机,数据同步速度快,能自动处理 mapping 转换,支持指定查询条件迁移。

操作步骤:

①、配置白名单:在目标集群的 elasticsearch.yml 中添加 reindex.remote.whitelist: ["源集群IP:9200"]。

②、执行迁移命令(在 Kibana 中运行):

<span style="font-size: 18px;">POST _reindex<br/>{<br/>  "source": {<br/>    "remote": {<br/>      "host": "http://源集群IP:9200",<br/>      "username": "源集群用户名",<br/>      "password": "源集群密码"<br/>    },<br/>    "index": "源索引名",<br/>    "query": {<br/>      "match_all": {}<br/>    }<br/>  },<br/>  "dest": {<br/>    "index": "目标索引名"<br/>  }<br/>}<br/></span>

三、海量数据首选:快照与恢复

Snapshot & Restore

适用场景:PB / TB 级别海量数据迁移。

优缺点:性能损耗极低,支持全量备份与按需恢复;要求两端集群版本必须兼容(低版本可以恢复至高版本,跨大版本需通过中间版本)。

操作步骤:

①、注册快照仓库:源集群和目标集群都需注册仓库。如使用本地共享文件,需修改 path.repo 配置;云端通常使用对象存储(如阿里云OSS、AWS S3),需安装对应的 Repository 插件(如 elasticsearch-repository-oss)。

<span style="font-size: 18px;">PUT _snapshot/my_backup<br/>{<br/>  "type": "fs",<br/>  "settings": {<br/>    "location": "/mount/backups/my_backup"<br/>  }<br/>}<br/></span>

②、创建快照(源集群操作)

<span style="font-size: 18px;">PUT _snapshot/my_backup/snapshot_1?wait_for_completion=true<br/></span>

③、恢复快照(目标集群操作)

<span style="font-size: 18px;">POST _snapshot/my_backup/snapshot_1/_restore<br/></span>

四、复杂 ETL / 增量同步

Logstash

适用场景:实时同步增量数据、需要清洗/过滤或异构数据源迁移。

优缺点:支持实时、并发同步,高度可配置;需要搭建并配置 Logstash 运行环境。

操作指令(配置文件示例 es_to_es.conf):

<span style="font-size: 18px;">input {<br/>  elasticsearch {<br/>    hosts => ["源集群IP:9200"]<br/>    index => "源索引名"<br/>    query => '{ "query": { "match_all": {} } }'<br/>  }<br/>}<br/>output {<br/>  elasticsearch {<br/>    hosts => ["目标集群IP:9200"]<br/>    index => "目标索引名"<br/>  }<br/>}</span>

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开微信扫一扫,即可进行扫码打赏哦

阅读 212