在 Amazon OpenSearch 服務中的時間點搜索 - Amazon OpenSearch 服務

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 Amazon OpenSearch 服務中的時間點搜索

時間點 (PIT) 是一種搜尋類型,可讓您針對固定時間的資料集執行不同的查詢。一般而言,當您在不同時間點對相同索引執行相同的查詢時,您會收到不同的結果,因為文件會持續編製索引、更新和刪除。使用 PIT,您可以根據資料集的固定狀態進行查詢。

PIT 搜索的主要用途是將其與search_after功能相結合。這是中的首選分頁方法 OpenSearch,特別是對於深度分頁,因為它在時間凍結的數據集上運行,它不綁定到查詢,並且它支持一致的分頁向前和向後。您可以將 PIT 與運行 OpenSearch 版本 2.5 的域一起使用。

注意

本主題提供 PIT 的概觀,以及在受管 Amazon Ser OpenSearch vice 網域而非自我管理 OpenSearch 叢集上使用時需要考量的一些事項。有關 PIT 的完整文檔,包括全面的 API 參考,請參閱開源 OpenSearch 文檔中的時間點

考量事項

設定 PIT 搜尋時,請考慮下列事項:

  • 如果您要從執行 2.3 OpenSearch 版的網域進行升級,並且需要對 PIT 動作進行精細的存取控制,則需要手動新增這些動作和角色。

  • 沒有 PIT 的復原能力。節點重新啟動、節點終止、藍/綠部署和 OpenSearch 處理序重新啟動會導致所有 PIT 資料遺失。

  • 如果碎片在藍/綠部署期間重新定位,則只有即時資料區段會傳輸到新節點。PIT 持有的碎片段(獨家和與實時數據共享的碎片)保留在舊節點上。

  • PIT 搜尋目前不適用於非同步搜尋。

創建一個坑

若要執行 PIT 查詢,請_search/point_in_time使用下列格式將 HTTP 要求傳送至:

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

您可以指定下列 PIT 選項:

選項 描述 預設值 必要
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 支援精細的存取控制。如果您要升級到 2.5 OpenSearch 版網域,且需要精細的存取控制,則需要手動建立具有下列權限的角色:

# 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 文件中的安全性模型

進地坑設置

OpenSearch 可讓您使用 _cluster/settings API 變更所有可用的 PIT 設定。在 [ OpenSearch 服務] 中,您目前無法修改設定。

跨叢集搜尋

您可以建立 PIT、使用 PIT ID 進行搜尋、列出 PIT,以及刪除叢集間的 PIT,但有下列次要限制:

  • 您只能列出來源網域上的所有 PIT 並刪除所有 PIT。

  • 您無法將網路往返次數降到最低,作為跨叢集搜尋查詢的一部分。

如需詳細資訊,請參閱 Amazon OpenSearch 服務中的跨群集搜索

UltraWarm

使用 UltraWarm 索引進行 PIT 搜尋繼續運作。如需詳細資訊,請參閱 UltraWarm Amazon 服 OpenSearch 務存儲

注意

您可以在中監視 PIT 搜尋統計資料 CloudWatch。如需指標的完整清單,請參閱 時間點量度