搜索
您的当前位置:首页正文

elasticdump,将一个es的数据迁移到另一个es中实践

来源:二三娱乐

需求

  • elasticsearch版本均为6.3.2
  • 不同的索引和数据录入到了相同版本的却不同的es中
  • 不是整个data文件的拷贝,只是部分索引的迁移

使用工具elasticdump

安装

1、使用npm进行windows上的全局安装
npm install elasticdump -g
2、使用docker
docker pull taskrabbit/elasticsearch-dump

附docker的使用例子:

# Copy an index from production to staging with mappings: 
docker run --rm -ti taskrabbit/elasticsearch-dump \
   \
   \
  --type=mapping
docker run --rm -ti taskrabbit/elasticsearch-dump \
   \
   \
  --type=data
 
# Backup index data to a file: 
docker run --rm -ti -v /data:/tmp taskrabbit/elasticsearch-dump \
   \
  --output=/tmp/my_index_mapping.json \
  --type=data

我没有使用docker的方式,是直接采用了直接在windows上全局安装

使用

elasticdump通过将输入发送到输出工作。两者都可以是Elasticsearch URL或文件。

Elasticsearch:

  • format: {protocol}://{host}:{port}/{index}
  • example: http://127.0.0.1:9200/my_index

File:

  • format: {FilePath}
  • example: /Users/evantahler/Desktop/dump.json

开始使用:
type为mapping是拷贝索引的构成

elasticdump \
  --input=http://192.168.0.1:9200/my_index \
  --output=http://192.168.0.2:9200/my_index \
  --type=mapping
image.png

type为data是拷贝索引的数据,可以不用拷贝索引的构成直接拷贝数据

elasticdump \
   \
   \
  --type=data
image.png

检查

image.png
{
    "index":{
        "number_of_replicas":0
    }
}
image.png

修改索引健康值


image.png
Top