在 Amazon OpenSearch 服务中搜索时间点 - 亚马逊 OpenSearch 服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Amazon OpenSearch 服务中搜索时间点

时间点 (PIT) 是一种搜索类型,可让您对固定时间的数据集运行不同的查询。通常,当您在不同的时间点对同一个索引运行相同的查询时,由于文档会不断被索引、更新和删除,所以会收到不同的结果。使用 PIT,您可以根据数据集的恒定状态进行查询。

PIT 搜索的主要用途是将其与search_after功能相结合。这是中的首选分页方法 OpenSearch,特别是对于深度分页,因为它在时间上冻结的数据集上运行,不绑定到查询,并且支持向前和向后一致的分页。您可以将 PIT 与运行 OpenSearch 版本 2.5 的域一起使用。

注意

本主题概述了 PIT,以及在托管 Amazon S OpenSearch ervice 域而不是自管理 OpenSearch 集群上使用 PIT 时需要考虑的一些事项。有关 PIT 的完整文档,包括全面的 API 参考,请参阅开源 OpenSearch 文档中的时间点

注意事项

在配置 PIT 搜索时,请考虑以下事项:

  • 如果您要从运行 2.3 OpenSearch 版本的域名升级,并且需要对 PIT 操作进行精细的访问控制,则需要手动添加这些操作和角色。

  • PIT 没有弹性。节点重启、节点终止、蓝/绿部署和 OpenSearch 进程重启会导致所有 PIT 数据丢失。

  • 如果分片在蓝绿部署期间重新定位,则仅将实时数据段传输到新节点。PIT 持有的分片段(包括独占分片和与实时数据共享的分片)仍保留在旧节点上。

  • PIT 搜索目前不适用于异步搜索。

创建 PIT

要运行 PIT 查询,请_search/point_in_time使用以下格式向发送 HTTP 请求:

POST opensearch-domain/my-index/_search/point_in_time?keep_alive=time

可以指定以下 PIT 选项:

Options 描述 默认值 必需
keep_alive

保留 PIT 的时间长度。每次使用搜索请求访问 PIT 时,PIT 的生命周期都会根据 keep_alive 参数的时间长度延长。创建 PIT 时此查询参数是必需的,但在搜索请求中则是可选的。

preference

指定用于执行搜索的节点或分片的字符串。

随机
routing 指定将搜索请求传输到某个具体分片的字符串。 该文件的 _id
expand_wildcards 指定可以匹配通配符模式的索引类型的字符串。支持逗号分隔值。有效值如下所示:
  • all:匹配任何索引或数据流,包括隐藏的索引或数据流。

  • open:匹配开放的、非隐藏的索引或非隐藏的数据流。

  • closed:匹配封闭的、非隐藏的索引或非隐藏的数据流。

  • hidden:匹配隐藏的索引或数据流。必须与开放和/或封闭结合。

  • none:不接受通配符模式。

open
allow_partial_pit_creation 用于指定是否创建部分失败的 PIT 的布尔值。 true

示例响应

{ "pit_id": "o463QQEPbXktaW5kZXgtMDAwMDAxFnNOWU43ckt3U3IyaFVpbGE1UWEtMncAFjFyeXBsRGJmVFM2RTB6eVg1aVVqQncAAAAAAAAAAAIWcDVrM3ZIX0pRNS1XejE5YXRPRFhzUQEWc05ZTjdyS3dTcjJoVWlsYTVRYS0ydwAA", "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, "creation_time": 1658146050064 }

当您创建 PIT 时,您会在响应中收到 PIT ID。这是您用来通过 PIT 进行搜索的 ID。

时间点权限

PIT 支持精细访问控制。如果您要升级到 OpenSearch 版本 2.5 的域并且需要精细的访问控制,则需要手动创建具有以下权限的角色:

# Allows users to use all point in time search search functionality point_in_time_full_access: reserved: true index_permissions: - index_patterns: - '*' allowed_actions: - "indices:data/read/point_in_time/create" - "indices:data/read/point_in_time/delete" - "indices:data/read/point_in_time/readall" - "indices:data/read/search" - "indices:monitor/point_in_time/segments" # Allows users to use point in time search search functionality for specific index # All type operations like list all PITs, delete all PITs are not supported in this case point_in_time_index_access: reserved: true index_permissions: - index_patterns: - 'my-index-1' allowed_actions: - "indices:data/read/point_in_time/create" - "indices:data/read/point_in_time/delete" - "indices:data/read/search" - "indices:monitor/point_in_time/segments"

对于 OpenSearch 版本为 2.5 及更高版本的域名,您可以使用内置point_in_time_full_access角色。有关更多信息,请参阅 OpenSearch 文档中的安全模型

PIT 设置

OpenSearch 允许您使用 _cluster/settings API 更改所有可用的 PI T 设置。在 S OpenSearch ervice 中,您目前无法修改设置。

跨集群搜索

您可以跨集群创建 PIT、使用 PIT ID 搜索、列出 PIT 以及删除 PIT,但有以下几项限制:

  • 您只能在源域上列出和删除所有 PIT。

  • 作为跨群集搜索查询的一部分,您不能最大限度地减少网络往返行程。

有关更多信息,请参阅 在 Amazon OpenSearch 服务中进行跨集群搜索

UltraWarm

使用 UltraWarm 索引进行的 PIT 搜索继续有效。有关更多信息,请参阅 UltraWarm 亚马逊 OpenSearch 服务的存储空间

注意

您可以在中监控 PIT 搜索统计信息 CloudWatch。有关指标的完整列表,请参阅时间点指标