ES的数据迁移

   线上华为机器资源稀缺,规定es索引上限50G,现在线上出现超过该阈值的情况,需要做迁移。es版本6.5.4

一:reindex 

1.1使用场景:

  • 当数据量过大,而索引最初创建的分片数量不足,导致数据入库较慢的情况,此时需要扩大分片的数量,此时可以尝试使用Reindex。
  • 2、当数据的mapping需要修改,但是大量的数据已经导入到索引中了,重新导入数据到新的索引太耗时;但是在ES中,一个字段的mapping在定义并且导入数据之后是不能再修改的,

1.2 使用步骤:

1.根据原来索引的mapping和setting文件创建索引模板。

模板创建更多细节请参考文章   Elasticsearch索引拆分方案 - Elastic 中文社区

curl -XPOST "http://172.17.6.135:9220/_template/sp_mf_template" -H 'Content-Type: application/json' -d'

{
  "order": 0,                               // 模板优先级
  "index_patterns": ["goods_comment*"],// 模板匹配的名称方式
  "settings": {...},                        // 索引设置
  "mappings": {...},                        // 索引中各字段的映射定义
  "aliases": {...}                          // 索引的别名
}

2.根据模板创建新的索引

curl -XPUT "http://ip:port/goods_comment_1"

3.拷贝索引内容

基础拷贝功能如下,更多拷贝细节请参考博客 :elasticsearch 基础 —— ReIndex - 走看看

curl -XPOST 'ip:port/_reindex?pretty' -H 'Content-Type: application/json' -d'

{

  "source": {"index": "oldIndexName"},

  "dest": {"index": "newIndexName"}

}

4.将别名指向新索引

5.删除旧索引

出现问题:reindex的基础功能是拷贝数据到另外一个索引中,但是需求是拆分大索引到两个小索引,索引用

 


版权声明:本文为weixin_37632381原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。