云搜索服务支持可搜索快照功能,该功能基于快照构建可搜索快照只读索引。本文介绍手动创建可搜索快照的操作步骤。
要使用可搜索快照功能,需要提前在实例中启用冷数据节点。ES 6.7.1 版本实例不支持冷数据节点,因此也不支持可搜索快照功能。ES 7.10.2 和 OpenSearch 2.9.0 版本实例都支持可搜索快照。
在体验可搜索快照前,需要先确保实例中已经启用冷数据节点。
登录可视化工具,查看索引数据分布情况。
GET _cat/shards/<index-name>?v
命令,查询索引数据分布情况。*
表示多个索引。执行命令后,您可以从返回结果中查看到,日志索引数据均存储在数据节点上。创建快照存储库。
以下示例表示创建一个名称为doc-repo
的快照存储库,在实际使用中,您可以自定义设置存储库名称。
PUT _snapshot/doc-repo { "type" : "s3", "settings" : { "bucket" : "es-shadow-prod-cn-beijing-210094***", "path_style_access" : "false", "endpoint" : "tos-s3-cn-beijing.ivolces.com/", "protocol" : "https", "client" : "default", "base_path" : "_remote_index", "region" : "cn-beijing", "searchable" : true } }
创建快照。
以下示例表示在指定存储库doc-repo
中创建一个名称为doc-snapshot
的快照。在实际使用中,您可以自定义设置快照名称。
PUT _snapshot/doc-repo/doc-snapshot { "indices": "eventlogs-2024-07-*", "ignore_unavailable": true, "include_global_state": false }
配置项 | 描述 |
---|---|
indices | 快照中需要包含的索引列表。 |
ignore_unavailable | 当
|
include_global_state | 是否在快照中包含实例状态。
|
查询快照是否创建成功。
只有快照创建成功后,才可以执行恢复可搜索快照的步骤。当查询结果中返回"state": "SUCCESS"
,则表示快照已经创建成功。
在实际使用过程中,您需要替换以下命令中的存储库和快照名称。
GET _snapshot/doc-repo/doc-snapshot/_status
快照创建成功后,您可以选择快照中的索引,将其恢复为可搜索快照索引。
Opensearch 2.9.0 版本实例和 ES 7.10.2 版本实例在执行恢复为可搜索快照时的命令不同,请注意区分。
POST /_snapshot/doc-repo/doc-snapshot/_restore?pretty { "storage_type": "remote_snapshot", "indices": "eventlogs-2024-07-01,eventlogs-2024-07-02", "rename_pattern": "(.+)", "rename_replacement": "remote_$1", "include_global_state": false }
remote_snapshot
**,表示在检索时,可搜索快照索引可以从远端存储库读取数据。,
分隔;可以使用通配符*
表示多个索引。remote_$1
表示在需要恢复的索引名称前面添加remote_
前缀。再次查看日志索引数据分布情况。
GET _cat/shards?v&s=index,shard
从返回结果中可以查看到,可搜索快照索引全部存储在冷数据节点上。
说明
在 ES 7.10.2 版本实例恢复的可搜索快照索引只有主分片。
检索可搜索快照索引。
GET /<index-name>/_search
检索可搜索快照索引时,请替换为正确的索引名称。在本文中,可以查询remote_eventlogs-2024-07-01
,也可以查询remote_eventlogs-2024-07-*
。