使用场景:
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
网友评论