前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记录:Reindex操作线上数据

记录:Reindex操作线上数据

原创
作者头像
HLee
修改2021-07-06 14:41:11
9193
修改2021-07-06 14:41:11
举报
文章被收录于专栏:房东的猫房东的猫

背景

索引数据73522618,本次改动需要给索引添加一个新字段scope,并设置一个默认值为"LXF"。在本次上线之后,新录入的数据将会通过代码默认赋值"LXF"。本次Reindex操作在不影响线上正常使用的前提下,顺利切换索引。

操作过程

设置Refresh

设置refresh刷新时间为30秒,减少性能损耗

代码语言:javascript
复制
PUT /regroupmembers-21.02.22-010000/_settings
{
  "refresh_interval": "30s"
}

设置副本分片

设置副本分片为0,减少在索引数据过程中平衡分片性能损耗

代码语言:javascript
复制
PUT /regroupmembers-21.02.22-010000/_settings
{
 "number_of_replicas": 0
}

设置Pipeline

为scope设置默认value=LXF。

代码语言:javascript
复制
PUT _ingest/pipeline/defaultvalue
{
  "description": "set default scope value",
  "processors": [
    {
      "set": {
        "field": "scope",
        "value": "LXF",
        "override": false
      }
    }
  ]
}

查看pipeline
GET _ingest/pipeline/defaultvalue

执行Reindex

晚上10点开始执行Reindex,设置size为3000,大概持续时间90m。

代码语言:javascript
复制
POST _reindex
{
 "source": {
 "index": "regroupmembers-20.11.23-000000",
 "size": 3000
 },
 "dest": {
 "index": "regroupmembers-21.02.22-010000",
 "pipeline": "defaultvalue"
 }
}

设置副本分片

在执行完第一次Reindex之后,需要恢复副本分片2,大概持续时间30m。

代码语言:javascript
复制
PUT /regroupmembers-21.02.22-010000/_settings
{
 "number_of_replicas": 2
}

设置Refresh

恢复Refresh刷新到文件缓存区时间为1s(1s可搜索)。

代码语言:javascript
复制
PUT /regroupmembers-21.02.22-010000/_settings
{
  "refresh_interval": "1s"
}

切换别名

代码语言:javascript
复制
POST /_aliases
{
    "actions": [
         {
            "remove": {
                "index":"regroupmembers-20.11.23-000000",
                "alias":"regroupmembers"
            }
        },
         {
            "add": {
                "index":"regroupmembers-21.02.22-010000",
                "alias":"regroupmembers"
            }
        }
    ]
}

执行Reindex

由于10点开始执行Reindex到切换别名之前操作,正常写入的数据还是会走老索引,所以需要再次执行Reindex,将这期间的数据再录入到新索引中,并记录下这次执行完之后的时间结点。

代码语言:javascript
复制
POST regroupmembers/_search
 {
    "query": {
        "range": {
            "updatetime": {
                "gte":"2021-02-20 22:00:00"
            }
        }
    }
}
代码语言:javascript
复制
POST _reindex
 {
    "source": {
        "index":"regroupmembers-20.11.23-000000",
        "query": {
            "range": {
                "updatetime": {
                    "gte":"2021-02-20 22:00:00"
                }
            }
        },
        "size":3000
    },
    "dest": {
        "index":"regroupmembers-21.02.22-010000",
        "pipeline":"defaultvalue"
    }
}

修复数据

在执行切换别名之后到服务上线之前,这期间录入的增量数据,在scope字段上是没有任何默认值的,所以需要手动修复这期间产生的增量数据。

代码语言:javascript
复制
POST regroupmembers/_search
 {
    "from":0,
    "size":2000,
    "query": {
        "range": {
            "updatetime": {
                "gte":"2021-02-21 00:00:00", // 切换别名时间
                "lte":"2021-02-21 00:18:00" // 上完线时间
            }
        }
    }
}
代码语言:javascript
复制
POST regroupmembers/_update_by_query
{
 	"query": {
 		"range": {
 			"updatetime": {
 				"gte":"2021-02-21 00:00:00",
 				"lte":"2021-02-21 00:18:00"
 			}
 		}
 	},
 	"script": {
 		"source": """ ctx._source['scope'] = "LXF" """
 	}
}

结果:
{
    "took":95,
    "timed_out":false,
    "total":120,
    "updated":120,
    "deleted":0,
    "batches":1,
    "version_conflicts":0,
    "noops":0,
    "retries":{
        "bulk":0,
        "search":0
    },
    "throttled_millis":0,
    "requests_per_second":-1,
    "throttled_until_millis":0,
    "failures":[

    ]
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 操作过程
    • 设置Refresh
      • 设置副本分片
        • 设置Pipeline
          • 执行Reindex
            • 设置副本分片
              • 设置Refresh
                • 切换别名
                  • 执行Reindex
                    • 修复数据
                    相关产品与服务
                    归档存储
                    腾讯云 COS 归档存储(COS Archive Storage)是腾讯云对象存储 COS 低成本、持久可靠的存储类型,为企业和个人开发者提供海量、非结构化数据的长时间备份能力。与本地备份相比,归档存储采用分布式云端存储架构,您无需关注硬件维护及容量扩展,当您需要数据时,可以通过 RESTful API 对存储的数据进行恢复并设置有效期来访问。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档