备份或重命名
1.问题描述
我们原有的索引main-data-202403,字段不足,需要新加入字段,原有索引不用了,但怕后面业务又需要这些数,所以我们需要新建一个索引bak-main-data-202403,把main-data-202403迁移过去,删除原索引main-data-202403,再新建加入了新字段的同名索引main-data-202403,其实也就是把原索引重命名,一般没法直接重命名,所以创建新索引,再备份。
2.操作过程
2.1 创建原索引同结构索引
使用kibana的索引管理,找到原索引main-data-202403,复制映射到devTools中,创建备份索引bak-main-data-202403。
PUT /bak-main-data-202403
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"name": {
"type": "text"
},
"age": {
"type": "long"
},
"birthday": {
"type": "date"
}
}
}
}
2.2使用reindex把旧索引的数据迁移到备份索引
如果数据量大,请求会响应parsing错误,不用担心,查看kibana的bak-main-data-202403索引监控,查看索引写入速率,如果一直有速率,说明一直在同步,直到索引管理界面看到两个索引文档数相同,数据大小基本相同,写入速率为0,说明数据已同步完毕。
PUT /_reindex
{
"source": {
//旧索引
"index": "main-data-202403"
},
"dest": {
//新索引
"index": "bak-main-data-202403"
}
}
2.3删除原索引
方法一:restApi
DELET /main-data-202403
方法二:使用kibana的索引管理删除
选中原索引,删除索引。