

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

# 從 Amazon S3 向量匯入 OpenSearch Serverless
<a name="s3-opensearch-vector-bucket-integration"></a>

Amazon S3 Vectors 提供第一個具有原生支援的雲端物件存放區，以存放和查詢向量。S3 Vectors 提供經濟實惠、彈性且耐用的向量儲存，可根據語意意義和相似性進行查詢。它提供一秒的查詢回應時間，並降低上傳、儲存和查詢向量的成本高達 90%。

Amazon S3 Vectors 引入 S3 向量儲存貯體，您可以用來儲存、存取和查詢向量資料，而無需佈建任何基礎設施。在向量儲存貯體中，您可以在向量索引中組織向量資料。您的向量儲存貯體可以有多個向量索引，每個向量索引可以容納數百萬個向量。如需詳細資訊，請參閱《[Amazon S3 使用者指南》中的使用 Amazon S3 向量和向量儲存貯](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors.html)體。 *Amazon S3 * 

每個向量包含：
+ 唯一金鑰
+ 向量資料
+ JSON 格式的選用中繼資料

向量索引支援歐幾里得和餘弦距離函數，以進行相似性搜尋操作。

**注意**  
向量儲存貯體的主要優點是能夠以極低的成本存放大量資料集，同時提供向量操作的直接 API 存取。

如需 Amazon S3 向量儲存貯體的詳細資訊，包括如何建立一個，請參閱《[Amazon S3 使用者指南》中的使用 Amazon S3 向量和向量儲存貯](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors.html)體。 *Amazon S3 * 如需本主題所述範圍之外與 OpenSearch Service 整合的詳細資訊，請參閱[搭配使用 S3 向量與 OpenSearch Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-integrating-opensource.html)

您可以將 S3 Vectors 與 Amazon OpenSearch Service 搭配使用，以降低查詢頻率較低的向量儲存成本，然後隨著需求增加或增強搜尋功能，將這些資料集快速移至 OpenSearch。

OpenSearch Service 與 Amazon S3 Vectors 整合，提供超越 Amazon S3 向量儲存貯體本身的增強效能和功能。當您需要時，請考慮此整合：
+ 較高的查詢輸送量
+ 低於秒的搜尋延遲
+ 進階分析功能，例如彙總
+ 結合文字和向量資料的混合式搜尋

當多個應用程式使用具有不同效能需求的相同向量資料時，此整合特別有用。您可以讓某些應用程式直接與 Amazon S3 向量儲存貯體互動，處理成本敏感的使用案例，而其他應用程式則利用 OpenSearch 整合進行效能關鍵的操作。

## 整合架構
<a name="vector-search-integration-architecture"></a>

整合使用 Amazon OpenSearch Ingestion (OSI) 作為 Amazon S3 向量索引和 Amazon OpenSearch Serverless 向量集合之間的資料管道。OpenSearch Ingestion 會自動從指定的向量索引匯出向量資料，並將其擷取至 OpenSearch Serverless 向量集合，以進行高效能搜尋操作。

**注意**  
匯出之後，您的資料仍然存在於 S3 向量索引中。您有兩份資料副本。

每個向量索引都會對應至 OpenSearch Serverless 集合中的對應索引。整合：
+ 保留向量維度
+ 保留中繼資料
+ 最佳化 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 許可
<a name="vector-search-iam-permissions"></a>

整合需要仔細設定 IAM 許可，才能在服務之間進行安全通訊。OpenSearch Ingestion 需要許可，才能從 Amazon S3 向量索引讀取、寫入 OpenSearch Service 向量集合，以及管理相關聯的安全政策。

當您使用本主題稍後的程序啟用整合時，您可以選擇下列其中一個選項進行許可管理：
+ 允許系統自動建立具有必要許可的服務角色
+ 提供符合要求的現有角色

自動建立的角色包含下列政策：
+ 存取 Amazon S3 向量索引 APIs
+ 管理 OpenSearch Service 集合操作
+ 處理失敗擷取嘗試的無效字母佇列操作

如果您選擇指定現有角色，請確認該角色具有下列 IAM 許可：

**（必要）**：OpenSearch Ingestion 和 OpenSearch Serverless 之間的資料管道許可

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "allowAPIs",
            "Effect": "Allow",
            "Action": [ "aoss:APIAccessAll", "aoss:BatchGetCollection" ],
            "Resource": [ "arn:aws:aoss:*:{{111122223333}}:collection/{{collection-id}}" ]
        },
        {
            "Sid": "allowSecurityPolicy",
            "Effect": "Allow",
            "Action": [
                "aoss:CreateSecurityPolicy",
                "aoss:UpdateSecurityPolicy",
                "aoss:GetSecurityPolicy"
            ],
            "Resource": "*",
            "Condition":{
               "StringLike":{
                  "aoss:collection": [ "{{collection-name}}" ]
                },
               "StringEquals": {
                  "aws:ResourceAccount": [ "{{111122223333}}" ]
               }
            }
        }
    ]
}
```

------

**（必要）**：OpenSearch Ingestion 和 Amazon S3 無效字母佇列之間的資料擷取許可

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "s3Access",
            "Effect": "Allow",
            "Action": [
              "s3:PutObject"
            ],
            "Resource": [ "arn:aws:s3:::{{bucket}}/*" ]
        }
    ]
}
```

------

**（必要）**：OpenSearch Ingestion 和 Amazon S3 Vectors 之間的資料擷取許可

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowS3VectorIndexAccess",
            "Effect": "Allow",
            "Action": [
               "s3vectors:ListVectors",
               "s3vectors:GetVectors"
            ],
            "Resource": [
                "arn:aws:s3vectors:{{us-east-1}}:{{111122223333}}:bucket/{{bucket-name}}/index/{{index-name}}"
            ]
        }
    ]
}
```

------

**（啟用 AWS KMS 加密時必填）**：OpenSearch Ingestion 和 Amazon S3 Vectors 之間通訊的解密許可

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "allowS3VectorDecryptionOfCustomManagedKey",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [ "arn:aws:kms:{{us-east-1}}:{{111122223333}}:key/{{key-id}}" ],
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "s3vectors.us-east-1.amazonaws.com",
                    "kms:EncryptionContext:aws:s3vectors:arn": [
                        "arn:aws:s3vectors:{{us-east-1}}:{{111122223333}}:bucket/example-bucket",
                        "arn:aws:s3vectors:{{us-east-1}}:{{111122223333}}:bucket/example-bucket/index/example-index"
                        ]
                 }
             }
        }
    ]
}
```

------

## 設定 Amazon S3 Vectors 與 OpenSearch 的整合
<a name="vector-search-configuring-integration"></a>

使用下列程序來設定 Amazon S3 Vectors 與 OpenSearch Serverless 的整合。

**注意**  
如果您在 **Vector 儲存貯**體頁面中選擇**匯出至 OpenSearch** 選項，開始從 Amazon S3 主控台設定整合的程序，則下列程序中的某些步驟不適用，如程序中所述。

**設定 Amazon S3 Vectors 與 OpenSearch Serverless 的整合**

1. 在 Amazon ** OpenSearch Service 主控台中開啟將 S3 向量索引匯入 OpenSearch 向量引擎**頁面。 OpenSearch 如果您在 Amazon S3 主控台中按一下**匯出至 OpenSearch**，頁面會自動顯示。如果您是從 OpenSearch 主控台開始，請選擇左側導覽中的**整合**，然後選擇**匯入 S3 向量索引**。

1. 在**來源**區段中，如果您在 Amazon S3 主控台中啟動 ，請確認已指定向量索引的名稱及其 Amazon Resource Name (ARN)。如果您在 OpenSearch 主控台中啟動 ，請在 **S3 向量索引 ARN 欄位中輸入索引 ARN**。

1. 在**服務存取**區段中，選擇選項。如果您選擇現有的角色，請確認它具有整合所需的所有必要許可，如中所述[所需的 IAM 許可](#vector-search-iam-permissions)。

1. (選用) 展開 **Additional settings (其他設定)**。針對**啟用備援 （主動式複本）**，我們建議針對生產環境保留此選項。建立第一個集合時，OpenSearch Serverless 會執行個體化兩個 OCU，一個用於索引編製，另一個用於搜尋。為確保高可用性，它也會啟動另一個可用區域中的待命節點集。為了開發和測試目的，您可以停用集合的**啟用備援**設定，這會消除兩個待命複本，並且只會執行個體化兩個 OCUs。根據預設，會啟用備援作用中複本，這表示帳戶的第一個集合總共會執行個體化四個 OCUs。

   針對**新增 Amazon OpenSearch Serverless 向量的客戶受管 AWS KMS 金鑰**，選擇此選項以使用客戶受管金鑰加密向量集合中的資料。根據預設，OpenSearch 會使用 AWS 受管金鑰。

1. 如果您在 Amazon S3 主控台中按一下**匯出至 OpenSearch** 選項來啟動此程序，**匯出詳細資訊**區段會列出 OpenSearch 接下來將採取的步驟。當您準備好時，請選擇**匯出**。

   如果您在 OpenSearch Service 主控台中啟動此程序，**匯入詳細資訊**區段會列出 OpenSearch 接下來將採取的步驟。當您準備好時，請選擇**匯入**。

   OpenSearch 會開啟歷史記錄頁面，以顯示 Amazon S3 向量索引的所有匯出/匯入至 OpenSearch Serverless 索引。

成功擷取後，OSI 會自動停止管道，以防止不必要的成本，同時在 OpenSearch 中維護匯出的資料。您可以透過 CloudWatch 指標監控整合進度，並存取詳細的日誌以進行故障診斷。

OpenSearch 集合會保持作用中狀態，並在初始擷取完成後可供查詢使用。您可以執行：
+ 相似性搜尋
+ 彙總
+ 分析操作