引言
本文将介绍一款用于迁移 Elasticsearch 数据的实用工具 —— elasticdump。它专为在不同 Elasticsearch 实例之间导出和导入数据而设计,非常适合小规模的数据迁移、备份以及测试等场景。

elasticdump简介
elasticdump 是一个命令行工具,主要用于将 Elasticsearch 的索引数据导出(dump)为 JSON 文件或从 JSON 文件导入到 Elasticsearch。它支持迁移 Mapping(映射)、Data(数据)。
GitHub 地址(官方文档):
https://github.com/elasticsearch-dump/elasticsearch-dump
安装方法
elasticdump 是一个基于 Node.js 的命令行工具,因此在安装时需要使用 npm 命令。
1 | npm install elasticdump -g |
具体使用
本节将通过一个具体示例,演示如何从 es1 实例中导出数据,并将其导入到 es2 实例中。
定义变量
1 | es1_input="http://IP:PORT/index" |
步骤1: 从 es1 实例导出数据
导出列类型
1 | elasticdump \ |
说明:在 Elasticsearch 中,导出”列类型”相当于导出数据库中的表结构。如果不迁移这些字段映射(mapping),Elasticsearch 会自动推断字段类型,这可能导致类型不准确,进而引发查询或索引异常。因此,建议在迁移数据时一并迁移字段映射,以确保数据结构的一致性。
导出数据
1 | elasticdump \ |
说明1: 导出的数据是 jsonline 格式,一行一条,每条是一个 json 格式的数据。
说明2: 上述命令适用于 Linux 或 macOS 系统,使用 \ 作为续行符。如果你使用的是 Windows 操作系统,则在命令提示符(CMD)中执行命令时需要将续行符改为 ^
1 | elasticdump ^ |
步骤2: 将数据导入 es2 实例
导入列类型
1 | elasticdump \ |
细心的读者可能已经注意到,这里的 input 和 output 与步骤1中正好相反:此处的 input 是本地的 JSON 文件,而 output 则是 Elasticsearch 实例。
导入数据
1 | elasticdump \ |
总结
Elasticdump 是一款简单却功能强大的 Elasticsearch 数据迁移工具。通过几条简洁的命令,就可以轻松实现对 Elasticsearch 数据的导出与导入。无论是数据迁移、备份,还是测试,它都能成为你的得力助手。
微信端的朋友也可关注我的公众号
