

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

# 即時向量內嵌藍圖 - 常見問答集
<a name="troubleshooting-blueprints-FAQ"></a>

檢閱下列有關即時向量內嵌藍圖的常見問答集。如需即時向量內嵌藍圖的詳細資訊，請參閱[即時向量內嵌藍圖](https://docs.aws.amazon.com/msk/latest/developerguide/ai-vector-embedding-integration-learn-more.html)。

**Topics**
+ [此藍圖會建立哪些 AWS 資源？](#troubleshooting-blueprints-1)
+ [AWS CloudFormation 堆疊部署完成後，我的動作是什麼？](#troubleshooting-blueprints-2)
+ [來源 Amazon MSK 主題 (Amazon MSK) 中的資料結構應該是什麼？](#troubleshooting-blueprints-3)
+ [我可以指定要內嵌的訊息部分嗎？](#troubleshooting-blueprints-4)
+ [我可以從多個 Amazon MSK 主題讀取資料嗎？](#troubleshooting-blueprints-5)
+ [我可以使用 regex 來設定 Amazon MSK 主題名稱嗎？](#troubleshooting-blueprints-6)
+ [可以從 Amazon MSK 主題讀取的訊息大小上限是多少？](#troubleshooting-blueprints-7)
+ [支援哪種類型的 OpenSearch？](#troubleshooting-blueprints-8)
+ [為什麼我需要在 OpenSearch Serverless colelction 中使用向量搜尋集合、向量索引和新增向量欄位？](#troubleshooting-blueprints-9)
+ [我應該將什麼設定為向量欄位的維度？](#troubleshooting-blueprints-10)
+ [在設定的 OpenSearch 索引中，輸出看起來像什麼？](#troubleshooting-blueprints-11)
+ [我可以指定中繼資料欄位以新增至儲存在 OpenSearch 索引中的文件嗎？](#troubleshooting-blueprints-12)
+ [我應該預期 OpenSearch 索引中重複的項目嗎？](#troubleshooting-blueprints-13)
+ [我可以將資料傳送至多個 OpenSearch 索引嗎？](#troubleshooting-blueprints-14)
+ [我可以在單一 中部署多個即時向量內嵌應用程式 AWS 帳戶嗎？](#troubleshooting-blueprints-15)
+ [多個即時向量內嵌應用程式是否可以使用相同的資料來源或接收器？](#troubleshooting-blueprints-16)
+ [應用程式是否支援跨帳戶連線？](#troubleshooting-blueprints-17)
+ [應用程式是否支援跨區域連線？](#troubleshooting-blueprints-18)
+ [我的 Amazon MSK 叢集和 OpenSearch 集合是否可以位於不同的 VPCs或子網路中？](#troubleshooting-blueprints-19)
+ [應用程式支援哪些內嵌模型？](#troubleshooting-blueprints-20)
+ [我可以根據工作負載微調應用程式的效能嗎？](#troubleshooting-blueprints-21)
+ [支援哪些 Amazon MSK 身分驗證類型？](#troubleshooting-blueprints-22)
+ [什麼是 `sink.os.bulkFlushIntervalMillis` 以及如何設定它？](#troubleshooting-blueprints-23)
+ [當我部署 Managed Service for Apache Flink 應用程式時，會從 Amazon MSK 主題的哪個時間點開始讀取訊息？](#troubleshooting-blueprints-24)
+ [如何使用 `source.msk.starting.offset`？](#troubleshooting-blueprints-25)
+ [支援哪些區塊策略？](#troubleshooting-blueprints-26)
+ [如何讀取向量資料存放區中的記錄？](#troubleshooting-blueprints-27)
+ [哪裡可以找到原始程式碼的新更新？](#troubleshooting-blueprints-28)
+ [我可以變更 AWS CloudFormation 範本並更新 Managed Service for Apache Flink 應用程式嗎？](#troubleshooting-blueprints-29)
+ [會代表我 AWS 監控和維護應用程式嗎？](#troubleshooting-blueprints-30)
+ [這個應用程式是否會將我的資料移動到我的 之外 AWS 帳戶？](#troubleshooting-blueprints-31)

## 此藍圖會建立哪些 AWS 資源？
<a name="troubleshooting-blueprints-1"></a>

若要尋找您帳戶中部署的資源，請導覽至 AWS CloudFormation 主控台，並識別以您為 Managed Service for Apache Flink 應用程式提供的名稱開頭的堆疊名稱。選擇**資源**索引標籤，以檢查在堆疊中建立的資源。以下是堆疊建立的關鍵資源：
+ 即時向量內嵌 Managed Service for Apache Flink 應用程式
+ Amazon S3 儲存貯體，用於保留即時向量內嵌應用程式的原始程式碼
+ 用於儲存日誌的 CloudWatch 日誌群組和日誌串流
+ 用於擷取和建立資源的 Lambda 函數
+ Lambdas、Managed Service for Apache Flink 應用程式以及存取 Amazon Bedrock 和 Amazon OpenSearch Service 的 IAM 角色和政策
+ Amazon OpenSearch Service 的資料存取政策
+ 用於存取 Amazon Bedrock 和 Amazon OpenSearch Service 的 VPC 端點

## AWS CloudFormation 堆疊部署完成後，我的動作是什麼？
<a name="troubleshooting-blueprints-2"></a>

 AWS CloudFormation 堆疊部署完成後，請存取 Managed Service for Apache Flink 主控台，並尋找您的藍圖 Managed Service for Apache Flink 應用程式。選擇**設定**索引標籤，並確認所有執行期屬性都已正確設定。它們可能會溢位到下一頁。當您對設定有信心時，請選擇**執行**。應用程式將開始從您的主題擷取訊息。

若要檢查是否有新版本，請參閱 https：//[https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases](https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases)。

## 來源 Amazon MSK 主題 (Amazon MSK) 中的資料結構應該是什麼？
<a name="troubleshooting-blueprints-3"></a>

我們目前支援結構化和非結構化來源資料。
+ 非結構化資料在 `STRING`中由 表示`source.msk.data.type`。資料會依原樣從傳入訊息讀取。
+ 我們目前支援結構化 JSON 資料，在 `JSON`中由 表示`source.msk.data.type`。資料必須一律採用 JSON 格式。如果應用程式收到格式不正確的 JSON，應用程式將會失敗。
+ 使用 JSON 做為來源資料類型時，請確定所有來源主題中的每則訊息都是有效的 JSON。如果您訂閱的一或多個主題不包含具有此設定的 JSON 物件，應用程式將會失敗。如果一個或多個主題混合了結構化和非結構化資料，建議您在 Managed Service for Apache Flink 應用程式中將來源資料設定為非結構化。

## 我可以指定要內嵌的訊息部分嗎？
<a name="troubleshooting-blueprints-4"></a>
+ 對於 `source.msk.data.type`為 的非結構化輸入資料`STRING`，應用程式將一律嵌入整個訊息，並將整個訊息存放在設定的 OpenSearch 索引中。
+ 對於 `source.msk.data.type`為 的結構化輸入資料`JSON`，您可以設定 `embed.input.config.json.fieldsToEmbed`來指定應該在 JSON 物件中選取哪個欄位以進行內嵌。這僅適用於最上層 JSON 欄位，不適用於巢狀 JSONs 和包含 JSON 陣列的訊息。使用 .\$1 內嵌整個 JSON。

## 我可以從多個 Amazon MSK 主題讀取資料嗎？
<a name="troubleshooting-blueprints-5"></a>

可以，您可以使用此應用程式從多個 Amazon MSK 主題讀取資料。所有主題的資料都必須是相同類型 (STRING 或 JSON)，否則可能會導致應用程式失敗。來自所有主題的資料一律存放在單一 OpenSearch 索引中。

## 我可以使用 regex 來設定 Amazon MSK 主題名稱嗎？
<a name="troubleshooting-blueprints-6"></a>

`source.msk.topic.names` 不支援 regex 的清單。我們支援以逗號分隔的主題名稱清單或 regex `.*` 來包含所有主題。

## 可以從 Amazon MSK 主題讀取的訊息大小上限是多少？
<a name="troubleshooting-blueprints-7"></a>

可處理的訊息大小上限受限於目前設定為 25，000，000 的 Amazon Bedrock InvokeModel 內文限制。如需詳細資訊，請參閱 [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html#API_runtime_InvokeModel_RequestBody)。

## 支援哪種類型的 OpenSearch？
<a name="troubleshooting-blueprints-8"></a>

我們同時支援 OpenSearch 網域和集合。如果您使用的是 OpenSearch 集合，請務必使用向量集合並建立向量索引以用於此應用程式。這可讓您使用 OpenSearch 向量資料庫功能來查詢資料。若要進一步了解，請參閱[Amazon OpenSearch Service 的向量資料庫功能說明](https://aws.amazon.com/blogs/big-data/amazon-opensearch-services-vector-database-capabilities-explained/)。

## 為什麼我需要在 OpenSearch Serverless colelction 中使用向量搜尋集合、向量索引和新增向量欄位？
<a name="troubleshooting-blueprints-9"></a>

OpenSearch Serverless 中的*向量搜尋*集合類型提供可擴展且高效能的相似性搜尋功能。它簡化了建置現代機器學習 (ML) 增強型搜尋體驗和生成式人工智慧 (AI) 應用程式。如需詳細資訊，請參閱[使用向量搜尋集合](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vector-search.html?icmpid=docs_console_unmapped)。

## 我應該將什麼設定為向量欄位的維度？
<a name="troubleshooting-blueprints-10"></a>

根據您要使用的內嵌模型，設定向量欄位的維度。請參閱下表，並從個別文件中確認這些值。


**向量欄位維度**  

| Amazon Bedrock 向量內嵌模型名稱 | 模型提供的輸出維度支援 | 
| --- | --- | 
|  Amazon Titan 文字內嵌 V1  | 1,536 | 
|  Amazon Titan 文本嵌入 V2  | 1，024 （預設）、384、256 | 
|  Amazon Titan Multimodal Embeddings G1  | 1，024 （預設）、384、256 | 
|  Cohere Embed 英文  | 1,024 | 
|  Cohere Embed 多語言  | 1,024 | 

## 在設定的 OpenSearch 索引中，輸出看起來像什麼？
<a name="troubleshooting-blueprints-11"></a>

OpenSearch 索引中的每個文件都包含下列欄位：
+ **original\$1data**：用於產生內嵌的資料。對於 STRING 類型，它是整個訊息。對於 JSON 物件，它是用於內嵌的 JSON 物件。它可以是訊息中的整個 JSON，或 JSON 中的指定欄位。例如，如果已選取要從傳入訊息內嵌的名稱，則輸出會如下所示：

  ```
  "original_data": "{\"name\":\"John Doe\"}"
  ```
+ **embedded\$1data**：Amazon Bedrock 產生的內嵌向量浮點數陣列
+ **日期**：文件存放在 OpenSearch 中的 UTC 時間戳記

## 我可以指定中繼資料欄位以新增至儲存在 OpenSearch 索引中的文件嗎？
<a name="troubleshooting-blueprints-12"></a>

否，目前我們不支援將其他欄位新增至儲存在 OpenSearch 索引中的最終文件。

## 我應該預期 OpenSearch 索引中重複的項目嗎？
<a name="troubleshooting-blueprints-13"></a>

根據您設定應用程式的方式，您可能會在索引中看到重複的訊息。其中一個常見原因是應用程式重新啟動。根據預設，應用程式會設定為從來源主題中最早的訊息開始讀取。當您變更組態時，應用程式會重新啟動，並再次處理主題中的所有訊息。若要避免重新處理，請參閱有關如何使用 source.msk.starting.offset 的文件，並正確設定應用程式的起始位移。

## 我可以將資料傳送至多個 OpenSearch 索引嗎？
<a name="troubleshooting-blueprints-14"></a>

否，應用程式支援將資料儲存到單一 OpenSearch 索引。若要將向量化輸出設定為多個索引，您必須部署個別的 Managed Service for Apache Flink 應用程式。

## 我可以在單一 中部署多個即時向量內嵌應用程式 AWS 帳戶嗎？
<a name="troubleshooting-blueprints-15"></a>

可以， AWS 帳戶 如果每個應用程式都有唯一的名稱，您可以在單一 中部署多個即時向量內嵌 Managed Service for Apache Flink 應用程式。

## 多個即時向量內嵌應用程式是否可以使用相同的資料來源或接收器？
<a name="troubleshooting-blueprints-16"></a>

可以，您可以建立多個即時向量內嵌 Managed Service for Apache Flink 應用程式 （從相同主題讀取資料），或將資料儲存在相同索引中。

## 應用程式是否支援跨帳戶連線？
<a name="troubleshooting-blueprints-17"></a>

否，若要讓應用程式成功執行，Amazon MSK 叢集和 OpenSearch 集合必須位於您嘗試設定 Managed Service for Apache Flink 應用程式的相同 AWS 帳戶 位置。

## 應用程式是否支援跨區域連線？
<a name="troubleshooting-blueprints-18"></a>

否，應用程式只允許您在 Managed Service for Apache Flink 應用程式的相同區域中，使用 Amazon MSK 叢集和 OpenSearch 集合部署 Managed Service for Apache Flink 應用程式。

## 我的 Amazon MSK 叢集和 OpenSearch 集合是否可以位於不同的 VPCs或子網路中？
<a name="troubleshooting-blueprints-19"></a>

是，我們支援不同 VPCs 和子網路中的 Amazon MSK 叢集和 OpenSearch 集合，只要它們位於相同位置即可 AWS 帳戶。請參閱 （一般 MSF 疑難排解） 以確保您的設定正確。

## 應用程式支援哪些內嵌模型？
<a name="troubleshooting-blueprints-20"></a>

目前，應用程式支援 Bedrock 支援的所有模型。其中包含：
+ Amazon Titan Embeddings G1 - Text
+  Amazon Titan 文本嵌入 V2
+  Amazon Titan Multimodal Embeddings G1 
+  Cohere Embed 英文 
+  Cohere Embed 多語言 

## 我可以根據工作負載微調應用程式的效能嗎？
<a name="troubleshooting-blueprints-21"></a>

是。應用程式輸送量取決於多種因素，所有因素都可以由客戶控制：

1. **AWS MSF KPUs**：以預設平行處理係數 2 和每個 KPU 1 的平行處理來部署應用程式，並開啟自動擴展。不過，我們建議您根據您的工作負載設定 Managed Service for Apache Flink 應用程式的擴展。如需詳細資訊，請參閱[檢閱 Managed Service for Apache Flink 應用程式資源](https://docs.aws.amazon.com/managed-flink/latest/java/how-resources.html)。

1. **Amazon Bedrock**：根據選取的 Amazon Bedrock 隨需模型，可能會套用不同的配額。檢閱 Bedrock 中的服務配額，以查看服務能夠處理的工作負載。如需詳細資訊，請參閱 [Amazon Bedrock 的配額](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html)。

1. **Amazon OpenSearch Service**：此外，在某些情況下，您可能會注意到 OpenSearch 是管道中的瓶頸。如需擴展資訊，請參閱 OpenSearch 擴展[規模調整 Amazon OpenSearch Service 網域](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/sizing-domains.html)。

## 支援哪些 Amazon MSK 身分驗證類型？
<a name="troubleshooting-blueprints-22"></a>

我們僅支援 IAM MSK 身分驗證類型。

## 什麼是 `sink.os.bulkFlushIntervalMillis` 以及如何設定它？
<a name="troubleshooting-blueprints-23"></a>

將資料傳送至 Amazon OpenSearch Service 時，大量排清間隔是執行大量請求的間隔，無論動作數目或請求大小為何。預設值設定為 1 毫秒。

設定排清間隔有助於確保資料及時編製索引，如果設定過低，也可能會導致額外負荷增加。考慮您的使用案例，以及在選擇排清間隔時及時編製索引的重要性。

## 當我部署 Managed Service for Apache Flink 應用程式時，會從 Amazon MSK 主題的哪個時間點開始讀取訊息？
<a name="troubleshooting-blueprints-24"></a>

應用程式將以應用程式執行時間`source.msk.starting.offset`組態中組態設定所指定的位移，開始從 Amazon MSK 主題讀取訊息。如果 `source.msk.starting.offset` 未明確設定，應用程式的預設行為是從主題中最早的可用訊息開始讀取。

## 如何使用 `source.msk.starting.offset`？
<a name="troubleshooting-blueprints-25"></a>

根據所需的行為，將 明確設為`ource.msk.starting.offset`下列其中一個值：


+  EARLIEST：預設設定，從分割區中最舊的位移讀取。這是一個不錯的選擇，特別是在以下情況：
  +  您已建立新的 Amazon MSK 主題和取用者應用程式。
  +  您需要重播資料，才能建置或重建狀態。這與實作事件來源模式或初始化需要完整檢視資料歷史記錄的新服務相關。
+ LATEST：Managed Service for Apache Flink 應用程式會從分割區結尾讀取訊息。如果您只關心正在產生的新訊息，而且不需要處理歷史資料，建議您使用此選項。在此設定中，消費者會忽略現有的訊息，並只讀取上游生產者發佈的新訊息。
+ COMMITTED：Managed Service for Apache Flink 應用程式將從耗用群組的遞交偏移開始耗用訊息。如果遞交的位移不存在，則會使用 EARLIEST 重設策略。

## 支援哪些區塊策略？
<a name="troubleshooting-blueprints-26"></a>

我們使用 [langchain](https://js.langchain.com/v0.1/docs/get_started/introduction/) 程式庫來區塊輸入。只有在輸入的長度大於選擇的 時，才會套用區塊。 `maxSegmentSizeInChars`我們支援以下五種區塊類型：
+ `SPLIT_BY_CHARACTER`：將盡可能多的字元放入每個區塊，其中每個區塊的長度不大於 maxSegmentSizeInChars。不在乎空格，因此可以截斷單字。
+ `SPLIT_BY_WORD`：將尋找要區塊的空格字元。沒有任何單字被截斷。
+ `SPLIT_BY_SENTENCE`：句子界限是使用 Apache OpenNLP 程式庫搭配英文句子模型進行偵測。
+ `SPLIT_BY_LINE`： 會尋找要區塊的新行字元。
+ `SPLIT_BY_PARAGRAPH`：將尋找要區塊的連續新行字元。

分割策略會根據上述順序回復，而較大的區塊策略如 `SPLIT_BY_PARAGRAPH` 會回復為 `SPLIT_BY_CHARACTER`。例如，使用 時`SPLIT_BY_LINE`，如果某行太長，則該行將依句子子區塊化，其中每個區塊將盡可能放入任意數量的句子中。如果有任何句子太長，則會在單字層級將其區塊化。如果單字太長，則會依字元分割。

## 如何讀取向量資料存放區中的記錄？
<a name="troubleshooting-blueprints-27"></a>

1. 當 `source.msk.data.type`為 時 `STRING`
   + **original\$1data**：來自 Amazon MSK 訊息的整個原始字串。
   + **embedded\$1data**：`chunk_data`如果不是空的 （套用區塊），則從 建立內嵌向量，如果未套用區塊，`original_data`則從 建立內嵌向量。
   + **chunk\$1data**：只有在原始資料被區塊化時才會出現。包含用於在 中建立內嵌的原始訊息區塊`embedded_data`。

1. 當 `source.msk.data.type`為 時 `JSON`
   + **original\$1data**：套用 JSON 金鑰篩選*後*，來自 Amazon MSK 訊息的整個原始 JSON。
   + **embedded\$1data**：`chunk_data`如果不是空的 （套用區塊），則從 建立內嵌向量，如果未套用區塊，`original_data`則從 建立內嵌向量。
   + **chunk\$1key**：只有在原始資料被區塊化時才會出現。包含區塊來自 的 JSON 金鑰`original_data`。例如，它看起來像 `jsonKey1.nestedJsonKeyA` 範例中的巢狀金鑰或*中繼資料*`original_data`。
   + **chunk\$1data**：只有在原始資料被區塊化時才存在。包含用於在 中建立內嵌的原始訊息區塊`embedded_data`。

可以，您可以使用此應用程式從多個 Amazon MSK 主題讀取資料。來自所有主題的資料必須屬於相同類型 (STRING 或 JSON)，否則可能會導致應用程式失敗。來自所有主題的資料一律存放在單一 OpenSearch 索引中。

## 哪裡可以找到原始程式碼的新更新？
<a name="troubleshooting-blueprints-28"></a>

前往 https：//[https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases](https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases)。

## 我可以變更 AWS CloudFormation 範本並更新 Managed Service for Apache Flink 應用程式嗎？
<a name="troubleshooting-blueprints-29"></a>

否，變更 AWS CloudFormation 範本並不會更新 Managed Service for Apache Flink 應用程式。中的任何新變更都 AWS CloudFormation 意味著需要部署新的堆疊。

## 會代表我 AWS 監控和維護應用程式嗎？
<a name="troubleshooting-blueprints-30"></a>

否， AWS 不會代表您監控、擴展、更新或修補此應用程式。

## 這個應用程式是否會將我的資料移動到我的 之外 AWS 帳戶？
<a name="troubleshooting-blueprints-31"></a>

Managed Service for Apache Flink 應用程式讀取和儲存的所有資料都會保留在您的 中 AWS 帳戶 ，絕不會離開您的帳戶。