美文网首页
es reindex使用

es reindex使用

作者: 奋斗的韭菜汪 | 来源:发表于2021-01-19 19:24 被阅读0次

使用场景:

1、es集群版本升级:

同一大版本升级(如6.1.x->6.8.x或7.1.x->7.8.x),索引读写兼容,不需要重建索引
不同版本升级(如6.1.x->7.1.x),索引读写不兼容,需要重建索引

2、索引远程迁移

集群迁移,索引服务不停机,数据提前迁移

3、索引分片数量调整

分片数量由少变多,由多变少

4、索引文档结构变更

字段类型,字段属性变更、文档对象结构变更

5、索引碎片垃圾处理

索引频繁更新,产生很多内存碎片垃圾

常用重建索引方式:

reindex重建索引创建新索引,原索引保留,原有索引"_source"必须开启
url参数:
refresh:目标索引是否立即刷新
wait_for_active_shards:重建索引分片响应设置
scroll:快照查询时间
slices:重建并行任务切片(建议与分片数一致)

#手动切片
POST _reindex
{
  "confilicts":"proceed",
   "source":{
    "index":"samples_index",
    "slices":{
    "id":0,
    "max":3
    }
  },
  "dest":{
    "index":"samples_index_bak"
  }
}
#自动分片
POST _reindex?slices=2&refresh=true
{
  "confilicts":"proceed",
   "source":{
    "index":"samples_index"
  },
  "dest":{
    "index":"samples_index_bak"
  }
}

Max_docs:单次最大数据条数
requests_per_second:每秒数据量阈值控制,默认是-1(不限制),生产重建时建议控制在500-1000,控制重建的速度,防止集群io瞬间过大
req请求参数:
confilicts:重建索引冲突解决(覆盖、中断)
source{}:源索引配置信息
dest{}:新索引配置信息
script:处理脚本,处理原索引写入到新索引
routing:路由到指定分片
Multi index:多索引重建
Source field:限制重建索引的字段
field rename:索引字段重命名
remot:远程重建索引

重建索引任务管控:(重建索引是一个异步任务)

#查看所有任务
GET _cat/tasks
#查看重建任务
GET _cat/tasks?actions=*reindex
#查看指定id的任务
GET _cat/tasks/{id}
#终止任务
POST _tasks/{id}/_cancel

相关文章

网友评论

      本文标题:es reindex使用

      本文链接:https://www.haomeiwen.com/subject/pjtczktx.html