阿里云ElasticSearch从OSS快照恢复总消耗时长统计方法

本文涉及的产品
对象存储 OSS,20GB 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
对象存储 OSS,恶意文件检测 1000次 1年
简介: 阿里云ElasticSearch从OSS快照恢复包含其他云厂商ES实例或本地IDC的ES实例中所有的索引,GET /_recovery包含独立索引从快照恢复的开始及结束时长,本方法统计ES实例级别的所有索引快照恢复时间,包含手动输入GET /_recovery及http请求两种信息获取方式。

1. ES实例OSS快照恢复

创建仓库

PUT _snapshot/仓库名
{
"type": "oss",
"settings": {
"endpoint": "oss-cn-beijing-internal.aliyuncs.com",
"access_key_id": "LTA*********",
"secret_access_key": "*********",
"bucket": "test_bucket",
"compress": true    }
}

索引全量恢复

POST _snapshot/仓库名/快照名/_restore
{
"indices":"*,-.*,-ilm-*",
"ignore_unavailable":"true"}

2. 查看快照恢复情况

  1. 语法
GET/_recovery
  1. 可以看到所有索引的相关信息,常见形式如下图所示,如索引「test0617」可以看到不同的shard恢复耗时,开始时间start_time_in_millis,结束时间stop_time_in_millis,总恢复耗时时长total_time_in_millis,单位都是毫秒

image.png

3. 总恢复时间实现代码

GET /_recovery包含每个独立索引(包含客户侧业务自建索引和ES系统索引)从快照恢复的开始及结束时长,但不包含整个从OSS快照恢复的耗时统计。

在进行ES跨云、上云迁移时,采用快照恢复的迁移方式需要在压测阶段进行全量、增量快照恢复时长的统计用于评估业务切割时的不可用、停写时间用以进行业务宣导,方案评定等工作。

本方法统计ES实例级别的所有索引快照恢复时间,包含手动输入GET /_recovery及http请求两种信息获取方式。

################ author:sunyf###############fromdatetimeimportdatetime, timedeltaimportjsonimportrequestsdeftimestamp2str(timestamp: int):
"""    # # 时间戳转字符串    :param timestamp: bigint    :return: string format timestamp    """# timestamp = 1690965380890 / 1000dt=datetime.fromtimestamp(timestamp/1000)
s=dt.strftime("%Y-%m-%d %H:%M:%S:%f")
# print(s)returnsdefget_recovery_by_input() ->str:
out=""stdin=input("请粘贴GET /_recovery结果,完成后连按两个enter键\n")
whilestdin:
out+=stdin+'\n'stdin=input()
print(f'-------------输入内容为:\n{out}-------------如上为输入内容\n')
returnoutdefget_recovery_by_request() ->str:
res=requests.get('http://localhost:9200/_recovery',
auth=('user', 'pwd'))
returnres.textif__name__=='__main__':
_input=get_recovery_by_input()
# 2选1# _input = get_recovery_by_request()_in=json.loads(_input)
indices= []
start= []
stop= []
print(f'-------------如下非系统索引被纳入统计')
fork, vin_in.items():
ifnotstr(k).startswith("."):
print(k)
indices.append(k)
for_inv.get('shards'):
start.append(_.get('start_time_in_millis'))
stop.append(_.get('stop_time_in_millis'))
print(f'-------------recovery开始时间:\n{timestamp2str(min(start))}')
print(f'-------------recovery结束时间:\n{timestamp2str(max(stop))}')
print(
f'-------------recovery持续时间:\n{datetime.fromtimestamp(max(stop) /1000) -datetime.fromtimestamp(min(start) /1000)}')


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
7月前
|
安全 API 开发工具
oss加密的配置方法
阿里云OSS提供多种加密选项:SSE-OSS(默认或对象级AES-256加密)、SSE-KMS(使用KMS托管CMK)、临时密钥加密和客户端加密(CSE)。可通过控制台或API设置Bucket策略,使用HTTP头部指定加密方式。KMS和临时密钥可能涉及更复杂的密钥管理和权限配置。
740 5
|
7月前
|
存储 Linux
ElasticSearch集群快照
ElasticSearch集群快照
425 2
|
7月前
|
存储 SQL 分布式计算
数据计算MaxCompute读取外部表(数据在oss gz压缩)速度非常慢,有什么方法可以提升效率么?
数据计算MaxCompute读取外部表(数据在oss gz压缩)速度非常慢,有什么方法可以提升效率么?
111 1
|
7月前
|
JavaScript
ElasticSearch快照脚本
ElasticSearch快照脚本
75 0
|
7月前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
705 3
|
4月前
|
存储 Ubuntu Oracle
在Ubuntu 14.04上安装和配置Elasticsearch的方法
在Ubuntu 14.04上安装和配置Elasticsearch的方法
50 0
|
4月前
|
存储 安全 Java
在CentOS 7上安装和配置Elasticsearch的方法
在CentOS 7上安装和配置Elasticsearch的方法
310 0
|
7月前
|
存储 监控 开发工具
对象存储OSS产品常见问题之python sdk中的append_object方法支持追加上传xls文件如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
228 9
|
7月前
|
存储 API
Elasticsearch快照备份与恢复 - 蓝易云
以上步骤可以帮助你在Elasticsearch中实现快照备份和恢复。注意,这些操作可能需要特定的权限和配置,所以在进行操作前,确保你具备足够的权限并已正确配置Elasticsearch。
131 0
|
7月前
|
缓存 安全 API
对象存储OSS产品常见问题之多租户系统用程序统计每个租户的下行流量如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
381 0