如何有效地将数据从elasticsearch索引(带有一个分片)移动到另一个索引(带有5个分片)?

时间:2015-07-29 13:03:07

标签: elasticsearch

我有一个elasticsearch索引,它在一个分片中的单个节点上包含大约5 GB的数据。现在我创建了另一个索引,其设置与旧索引相同,但number_of_shards为5而不是1.

我正在寻找最有效的方法,将数据从较旧的索引复制到较新的索引而不会出现任何停机。

1 个答案:

答案 0 :(得分:0)

我建议使用Logstash。您可以使用以下配置。确保替换源主机和目标主机,以及索引和类型名称以匹配您的本地环境。

文件:reindex.conf

input {
  elasticsearch {
   hosts => "localhost:9200"       <---- your source host
   index => "my_source_index"
  }
}
filter {
 mutate {
  remove_field => [ "@version", "@timestamp" ]
 }
}
output {
 elasticsearch {
   host => "localhost"       <--- your target host
   port => 9200
   protocol => "http"
   manage_template => false
   index => "my_target_index"
   document_type => "my_type"
   workers => 5
 }
}

然后你可以用

简单地启动它
bin/logstash -f reindex.conf