本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
(預覽) 從 Amazon S3 向量匯入至 OpenSearch Serverless
重要
Amazon S3 Vectors 與 OpenSearch Service 的整合處於預覽版本中,可能會有所變更。
Amazon S3 Vectors 提供第一個具有原生支援的雲端物件存放區,以存放和查詢向量。S3 向量提供經濟實惠、彈性且耐用的向量儲存,可根據語意意義和相似性進行查詢。它可提供一秒的查詢回應時間,並降低上傳、儲存和查詢向量的成本高達 90%。
Amazon S3 Vectors 引入 S3 向量儲存貯體,您可以用來儲存、存取和查詢向量資料,而無需佈建任何基礎設施。在向量儲存貯體中,您可以在向量索引中組織向量資料。您的向量儲存貯體可以有多個向量索引,每個向量索引可以容納數百萬個向量。如需詳細資訊,請參閱《Amazon S3 使用者指南》中的使用 Amazon S3 向量和向量儲存貯體。 Amazon S3
每個向量包含:
-
唯一金鑰
-
向量資料
-
JSON 格式的選用中繼資料
向量索引支援歐幾里得和餘弦距離函數,以進行相似性搜尋操作。
注意
向量儲存貯體的主要優點是能夠以極低的成本存放大量資料集,同時為向量操作提供直接 API 存取。
如需 Amazon S3 向量儲存貯體的詳細資訊,包括如何建立一個,請參閱《Amazon S3 使用者指南》中的使用 Amazon S3 向量和向量儲存貯體。 Amazon S3 如需本主題所述範圍之外與 OpenSearch Service 整合的詳細資訊,請參閱搭配使用 S3 向量與 OpenSearch Service
當查詢頻率較低時,您可以將 S3 Vectors 與 Amazon OpenSearch Service 搭配使用,以降低向量儲存的成本,然後隨著需求增加或增強搜尋功能,將這些資料集快速移至 OpenSearch。
OpenSearch Service 與 Amazon S3 Vectors 整合,提供超越 Amazon S3 向量儲存貯體本身的增強效能和功能。當您需要時,請考慮此整合:
-
較高的查詢輸送量
-
搜尋延遲低於秒
-
進階分析功能,例如彙總
-
結合文字和向量資料的混合式搜尋
當多個應用程式使用具有不同效能需求的相同向量資料時,此整合特別有用。您可以讓某些應用程式直接與 Amazon S3 向量儲存貯體互動以處理成本敏感的使用案例,而其他應用程式則利用 OpenSearch 整合進行效能關鍵的操作。
整合架構
整合使用 Amazon OpenSearch Ingestion (OSI) 作為 Amazon S3 向量索引和 Amazon OpenSearch Serverless 向量集合之間的資料管道。OpenSearch Ingestion 會自動從您指定的向量索引匯出向量資料,並將其擷取至 OpenSearch Serverless 向量集合,以進行高效能搜尋操作。
注意
匯出之後,您的資料仍會存在於 S3 向量索引中。您有兩份資料副本。
每個向量索引都會對應至 OpenSearch Service 集合中的對應索引。整合:
-
保留向量維度
-
保留中繼資料
-
最佳化 OpenSearch 向量搜尋功能的資料結構
組態之後,OpenSearch Ingestion 會使用 Amazon S3 ListVectors API 從指定的向量索引取用向量,以開始資料匯出程序。服務會平行處理向量,以最佳化擷取速度,同時遵守 OpenSearch Ingestion 和 Amazon OpenSearch Serverless 的擴展限制。
在擷取期間,服務會:
-
轉換向量資料以符合 OpenSearch Service 的預期格式
-
保留重要資訊,包括向量值、中繼資料和距離指標
-
透過智慧型重試機制處理失敗案例
-
將有問題的記錄放在用作無效字母佇列的 Amazon S3 儲存貯體中,以供日後分析
整合可有效處理大量資料集,效能取決於向量維度、資料集大小和設定的擴展限制。OSI 每個管道最多可擴展 16 個工作者,而 OpenSearch Serverless 會根據擷取需求自動調整容量。根據預設,OpenSearch 會將 maxSearch
OpenSearch Serverless 端的 OpenSearch 運算單位 (OCU) 增加到 100。
注意
整合透過以下方式排定成本效益的優先順序:
-
匯出完成後自動關閉管道
-
OpenSearch Serverless 集合擴展
-
Pay-per-use的資源模型
所需的 IAM 許可
整合需要仔細設定 IAM 許可,才能啟用服務之間的安全通訊。OpenSearch Ingestion 需要許可,才能從 Amazon S3 向量索引讀取、寫入 OpenSearch Service 向量集合,以及管理相關聯的安全政策。
當您使用本主題稍後的程序啟用整合時,您可以選擇下列其中一個選項進行許可管理:
-
允許系統自動建立具有必要許可的服務角色
-
提供符合要求的現有角色
自動建立的角色包含下列政策:
-
存取 Amazon S3 向量索引 APIs
-
管理 OpenSearch Service 集合操作
-
處理失敗擷取嘗試的無效字母佇列操作
如果您選擇指定現有角色,請確認該角色具有下列 IAM 許可:
(必要):OpenSearch Ingestion 和 OpenSearch Serverless 之間的資料管道許可
{ "Version": "2012-10-17", "Statement": [ { "Sid": "allowAPIs", "Effect": "Allow", "Action": [ "aoss:APIAccessAll", "aoss:BatchGetCollection" ], "Resource": [ "arn:aws:aoss:*:
account-id
:collection/collection-id
" ] }, { "Sid": "allowSecurityPolicy", "Effect": "Allow", "Action": [ "aoss:CreateSecurityPolicy", "aoss:UpdateSecurityPolicy", "aoss:GetSecurityPolicy" ], "Resource": "*", "Condition":{ "StringLike":{ "aoss:collection": [ "collection-name
" ] }, "StringEquals": { "aws:ResourceAccount": [ "account-id
" ] } } } ] }
(必要):OpenSearch Ingestion 和 Amazon S3 無效字母佇列之間的資料擷取許可
{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3Access", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::
bucket
/*" ] } ] }
(必要):OpenSearch Ingestion 和 Amazon S3 Vectors 之間的資料擷取許可
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowS3VectorIndexAccess", "Effect": "Allow", "Action": [ "s3vectors:ListVectors", "s3vectors:GetVectors" ], "Resource": [ "arn:aws:s3vectors:
region
:account-id
:bucket/bucket-name
/index/index-name
" ] } ] }
(啟用 AWS KMS 加密時必填):OpenSearch Ingestion 和 Amazon S3 Vectors 之間通訊的解密許可
{ "Version": "2012-10-17", "Statement": [ { "Sid": "allowS3VectorDecryptionOfCustomManagedKey", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:
region
:account-id
:key/key-id
" ], "Condition": { "StringEquals": { "kms:ViaService": "s3vectors.region
.amazonaws.com", "kms:EncryptionContext:aws:s3vectors:arn": "arn:aws:s3vectors:region
:account-id
:bucket/bucket-name
" } } } ] }
設定 Amazon S3 Vectors 與 OpenSearch 的整合
使用下列程序來設定 Amazon S3 Vectors 與 OpenSearch Serverless 的整合。
注意
如果您透過選擇向量儲存貯體頁面中的匯出至 OpenSearch 選項,從 Amazon S3 主控台開始設定整合的程序,則下列程序中的某些步驟不適用,如程序中所述。
設定 Amazon S3 Vectors 與 OpenSearch Serverless 的整合
-
在 Amazon OpenSearch Service 主控台中開啟將 S3 向量索引匯入 OpenSearch 向量引擎頁面。 OpenSearch 如果您在 Amazon S3 主控台中按一下匯出至 OpenSearch,頁面會自動顯示。如果您是從 OpenSearch 主控台開始,請選擇左側導覽中的整合,然後選擇匯入 S3 向量索引。
-
在來源區段中,如果您在 Amazon S3 主控台中啟動 ,請確認已指定向量索引的名稱及其 Amazon Resource Name (ARN)。如果您在 OpenSearch 主控台中啟動 ,請在 S3 向量索引 ARN 欄位中輸入索引 ARN。
-
在服務存取區段中,選擇選項。如果您選擇現有的角色,請確認它具有整合所需的所有必要許可,如 中所述所需的 IAM 許可。
-
(選用) 展開 Additional settings (其他設定)。對於啟用備援 (主動式複本),我們建議將此選項保留為生產環境選取。建立第一個集合時,OpenSearch Serverless 會執行個體化兩個 OCU,一個用於索引編製,另一個用於搜尋。為確保高可用性,它也會啟動另一個可用區域中的待命節點集。為了開發和測試目的,您可以停用集合的啟用備援設定,這會消除兩個待命複本,並且只會執行個體化兩個 OCUs。根據預設,會啟用備援作用中複本,這表示針對帳戶中的第一個集合,總共會執行個體化四個 OCUs。
針對新增 Amazon OpenSearch Serverless 向量的客戶受管 AWS KMS 金鑰,選擇此選項以使用客戶受管金鑰加密向量集合中的資料。根據預設,OpenSearch 會使用 AWS 受管金鑰。
-
如果您在 Amazon S3 主控台中按一下匯出至 OpenSearch 選項來啟動此程序,匯出詳細資訊區段會列出 OpenSearch 接下來將採取的步驟。當您準備好時,請選擇匯出。
如果您在 OpenSearch Service 主控台中啟動此程序,匯入詳細資訊區段會列出 OpenSearch 接下來將採取的步驟。當您準備好時,請選擇匯入。
OpenSearch 會開啟歷史記錄頁面,以顯示 Amazon S3 向量索引的所有匯出/匯入至 OpenSearch Serverless 索引。
成功擷取後,OSI 會自動停止管道,以防止不必要的成本,同時在 OpenSearch 中維護匯出的資料。您可以透過 CloudWatch 指標監控整合進度,並存取詳細的日誌以進行故障診斷。
OpenSearch 集合會保持作用中狀態,並在初始擷取完成後可供查詢使用。您可以執行:
-
相似性搜尋
-
彙總
-
分析操作