You need to enable JavaScript to run this app.
导航
手动创建可搜索快照
最近更新时间:2024.11.08 17:24:37首次发布时间:2024.07.19 15:56:08

云搜索服务支持可搜索快照功能,该功能基于快照构建可搜索快照只读索引。本文介绍手动创建可搜索快照的操作步骤。

功能限制

要使用可搜索快照功能,需要提前在实例中启用冷数据节点。ES 6.7.1 版本实例不支持冷数据节点,因此也不支持可搜索快照功能。ES 7.10.2 和 OpenSearch 2.9.0 版本实例都支持可搜索快照。

前提条件

在体验可搜索快照前,需要先确保实例中已经启用冷数据节点。

  • 您可以选择新建实例,在创建实例时启用冷数据节点,具体操作,请参见创建实例
  • 如果您已有实例,但未启用冷数据节点,可以通过升配的方式启用冷数据节点。具体操作,请参见升配实例

Image

创建可搜索快照

  1. 登录可视化工具,查看索引数据分布情况。

    1. 登录可视化工具。使用公网访问地址登录可视化工具,请参见公网访问 Kibana/Dashboards
    2. 在左侧导航栏选择Management > Dev Tools
    3. 在代码区域执行GET _cat/shards/<index-name>?v命令,查询索引数据分布情况。
      假设已经创建并写入日志索引数据,您可以用通配符*表示多个索引。执行命令后,您可以从返回结果中查看到,日志索引数据均存储在数据节点上。
      Image
  2. 创建快照存储库。
    以下示例表示创建一个名称为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
      }
    }
    
    • bucket:可以直接使用系统默认存储桶,默认存储桶的名称格式为es-shadow-prod-{region}-{accountId},您可以通过查看快照信息获取桶名称。详细详细,请参见快照存储查看快照信息
    • endpoint:TOS 存储桶的 S3 Endpoint 地址。直接使用私网地址,地域与云搜索服务实例相同。
    • base_path:自定义快照存储路径。
    • region:TOS 存储桶所属地域,与云搜索服务实例在相同地域。
    • searchable:使用系统自建的 TOS 存储桶来创建快照存储库时,必须将该参数设置为 true。使用其他 TOS 存储桶时,则无需配置该参数。
      Image
  3. 创建快照。
    以下示例表示在指定存储库doc-repo中创建一个名称为doc-snapshot的快照。在实际使用中,您可以自定义设置快照名称。

    PUT _snapshot/doc-repo/doc-snapshot
    {
      "indices": "eventlogs-2024-07-*",
      "ignore_unavailable": true,
      "include_global_state": false
    }
    

    Image

    配置项

    描述

    indices

    快照中需要包含的索引列表。
    多个索引使用英文逗号(,)分隔。通配符(*)用于替代索引名称的部分内容,以此匹配多个索引。

    ignore_unavailable

    indices列表中的索引不存在,是否忽略而不导致快照失败。

    • true:表示忽略,当索引不存在时仍继续快照。
    • false:默认值,表示不忽略,索引不存在时导致快照失败。

    include_global_state

    是否在快照中包含实例状态。

    • true:默认值,表示包含实例状态。
    • false:表示不包含实例状态。
  4. 查询快照是否创建成功。
    只有快照创建成功后,才可以执行恢复可搜索快照的步骤。当查询结果中返回"state": "SUCCESS",则表示快照已经创建成功。
    在实际使用过程中,您需要替换以下命令中的存储库和快照名称。

    GET _snapshot/doc-repo/doc-snapshot/_status
    

    Image

  5. 快照创建成功后,您可以选择快照中的索引,将其恢复为可搜索快照索引。
    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
       }
    
    • storage_type:必须设置为**remote_snapshot**,表示在检索时,可搜索快照索引可以从远端存储库读取数据。
    • indices:从快照中选择索引,将这些索引恢复为可搜索快照索引。多个索引用英文逗号,分隔;可以使用通配符*表示多个索引。
    • rename_pattern:索引名称的正则表达式过滤条件,将符合过滤条件的索引进行重命名。
    • rename_replacement:为匹配到的索引填写重命名规则。示例值remote_$1表示在需要恢复的索引名称前面添加remote_前缀。
    • include_global_state:是否包含实例状态,false 表示不包含。

    Image

  6. 再次查看日志索引数据分布情况。

    GET _cat/shards?v&s=index,shard
    

    从返回结果中可以查看到,可搜索快照索引全部存储在冷数据节点上。

    说明

    在 ES 7.10.2 版本实例恢复的可搜索快照索引只有主分片。

    Image

  7. 检索可搜索快照索引。

    GET /<index-name>/_search
    

    检索可搜索快照索引时,请替换为正确的索引名称。在本文中,可以查询remote_eventlogs-2024-07-01,也可以查询remote_eventlogs-2024-07-*
    Image