

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

# 將您的資料與您的 Amazon Bedrock 知識庫同步
<a name="kb-data-source-sync-ingest"></a>

建立知識庫之後，您可以擷取或同步資料，以便查詢資料。擷取會根據您指定的向量嵌入模型和組態，將資料來源中的原始資料轉換為向量嵌入。

開始擷取之前，請檢查您的資料來源是否符合下列條件：
+ 您已設定資料來源的連線資訊。若要設定資料來源連接器從資料來源儲存庫中擷取資料，請參閱[支援的資料來源連接器](https://docs.aws.amazon.com/bedrock/latest/userguide/data-source-connectors.html)。您可以將資料來源設定為建立知識庫的一部分。
+ 您已設定所選的向量內嵌模型和向量存放區。請參閱[支援的向量內嵌模型](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-supported.html)和[知識庫向量存放區](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-setup.html)。您可以將向量內嵌設定為建立知識庫的一部分。
+ 檔案採用支援的格式。如需詳細資訊，請參閱[支援文件格式](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-ds.html#kb-ds-supported-doc-formats-limits)。
+ 檔案不超過 AWS 一般參考中 [Amazon Bedrock 端點和配額](https://docs.aws.amazon.com/general/latest/gr/bedrock.html)中指定的**擷取任務檔案大小**。
+ 如果您的資料來源包含中繼資料檔案，請檢查下列條件，以確保中繼資料檔案不會被忽略：
  + 每個 `.metadata.json` 檔案與其相關聯的來源檔案共用相同的檔案名稱和副檔名。
  + 如果知識庫的向量索引位於 Amazon OpenSearch Serverless 向量存放區中，請檢查向量索引是否已使用 `faiss` 引擎設定。如果向量索引是使用 `nmslib` 引擎設定，您必須執行下列其中一項操作：
    + 在主控台中[建立新的知識庫](knowledge-base-create.md)，讓 Amazon Bedrock 自動為您在 Amazon OpenSearch Serverless 中建立向量索引。
    + 在向量存放區中[建立另一個向量索引](knowledge-base-setup.md)，然後選取 `faiss` 作為**引擎**。然後[建立新的知識庫](knowledge-base-create.md)並指定新的向量索引。
  + 如果知識庫的向量索引位於 Amazon Aurora 資料庫叢集中，建議您使用自訂中繼資料欄位，將所有中繼資料存放在單一資料欄中，並在此資料欄上建立索引。如果您未提供自訂中繼資料欄位，則必須先檢查索引的資料表是否包含中繼資料檔案中每個中繼資料屬性的資料欄，然後才能開始擷取。如需詳細資訊，請參閱[使用您為知識庫建立的向量存放區的先決條件](knowledge-base-setup.md)。

每次從資料來源新增、修改或移除檔案時，都必須同步資料來源，使其重新編製索引至知識庫。同步是增量的，因此 Amazon Bedrock 只會處理自上次同步以來新增、修改或刪除的文件。

## 知識庫如何處理重新同步
<a name="kb-data-source-sync-ingest-resync"></a>

每次從資料來源新增、修改或移除檔案時，都必須同步資料來源，以便在知識庫中重新編製索引。同步是增量的，因此 Amazon Bedrock 只會處理自上次同步以來新增、修改或刪除的文件。當您同步資料來源時，Amazon Bedrock 會重新擷取文件，以確保準確性和一致性。重新擷取包括剖析、區塊化、產生內嵌和編製向量存放區的索引。


**同步案例**  

| 案例 | 發生的情況 | 
| --- | --- | 
| 未偵測到變更 | 文件已略過。 | 
| 內容或中繼資料已變更 | 文件會重新擷取 （重新剖析、重新區塊化、重新內嵌和重新索引）。 | 
| 新增的文件 | 只會擷取新文件。 | 
| 文件已刪除 | 文件會從向量存放區中移除。 | 

### 僅限中繼資料的最佳化
<a name="kb-data-source-sync-ingest-metadata-optimization"></a>

在某些情況下，Amazon Bedrock 可以更新中繼資料，而無需重新擷取與該中繼資料檔案相關聯的文件。此最佳化會從向量存放區擷取現有的向量內嵌，合併新的中繼資料，並將更新的內嵌寫入回去，以避免呼叫內嵌模型。

此最佳化僅適用於滿足下列所有條件時：
+ 只會修改`metadata.json`檔案。不會變更任何內容檔案。
+ 相關聯的內容檔案不是 CSV 檔案。
+ 資料來源不使用自訂轉換 Lambda 函數。

### CSV 檔案的重新擷取行為
<a name="kb-data-source-sync-ingest-csv-reingestion"></a>

CSV 檔案使用中繼資料中的 `documentStructureConfiguration` 欄位來控制要編製索引的資料欄。由於 Amazon Bedrock 無法在未重新處理檔案的情況下判斷此結構組態是否變更，因此更新中繼資料檔案時，一律會重新擷取 CSV 檔案。

若要了解如何將資料擷取至知識庫並與最新資料同步，請選擇您偏好方法的索引標籤，然後遵循下列步驟：

------
#### [ Console ]

**將資料擷取到您的知識庫，並與最新的資料同步**

1. 開啟位於 [https://console.aws.amazon.com/bedrock/](https://console.aws.amazon.com/bedrock/) 的 Amazon Bedrock 主控台。

1. 從左側導覽窗格選取**知識庫**，然後選擇您的知識庫。

1. 在**資料來源**區段中，選取**同步**以開始進行資料擷取或同步您最新的資料。若要停止目前正在同步的資料來源，請選取**停止**。資料來源必須目前正在進行同步，才能停止同步資料來源。您可以再次選取**同步**，以擷取剩餘的資料。

1. 資料擷取完成時若顯示成功，就會出現綠色的成功橫幅。
**注意**  
資料同步完成後，新同步資料的向量內嵌可能需要幾分鐘的時間，才能反映在您的知識庫中，如果您使用 Amazon Aurora (RDS) 以外的向量存放區，則可以進行查詢。

1. 您可以選擇資料來源以檢視其**同步歷史記錄**。選取**檢視警告**，查看資料擷取作業失敗的原因。

------
#### [ API ]

若要將資料擷取到您的知識庫並與最新資料同步，請使用 [Amazon Bedrock 代理人建置時期端點](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)傳送 [StartIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StartIngestionJob.html) 請求。指定 `knowledgeBaseId` 和 `dataSourceId`。您也可以傳送 [StopIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StopIngestionJob.html) 請求來停止目前正在執行的資料擷取任務。指定 `dataSourceId`、`ingestionJobId` 和 `knowledgeBaseId`。資料擷取任務必須目前正在執行，才能停止資料擷取。當您準備好時，可以再次傳送 `StartIngestionJob` 請求，以擷取您的其餘資料。

使用透過 [Amazon Bedrock 代理人建置時期端點](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)的 [GetIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetIngestionJob.html) 請求中傳回的 `ingestionJobId`，以追蹤擷取任務的狀態。此外，指定 `knowledgeBaseId` 和 `dataSourceId`。
+ 擷取任務完成時，回應中的 `status` 為 `COMPLETE`。
**注意**  
資料擷取完成後，如果您使用 Amazon Aurora (RDS) 以外的向量存放區，則新擷取資料的向量內嵌可能需要幾分鐘的時間，才能在向量存放區中用於查詢。
+ 回應中的 `statistics` 物件會傳回資料來源中文件擷取是否成功的相關資訊。

您也可以使用 [Amazon Bedrock 代理人建置時期端點](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)傳送 [ListIngestionJobs](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ListIngestionJobs.html) 請求，來查看資料來源所有擷取任務的資訊。指定要擷取資料的目的地知識庫的 `dataSourceId` 和 `knowledgeBaseId`。
+ 透過指定在 `filters` 物件中搜尋狀態來篩選結果。
+ 透過指定 `sortBy` 物件，依任務開始時間或任務狀態排序。您可以依遞增或遞減順序排序。
+ 設定在 `maxResults` 欄位中在回應中傳回的結果數量上限。如果結果數目多於您設定的數目，回應會傳回您可以在另一個 [ListIngestionJobs](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ListIngestionJobs.html) 請求中傳送的 `nextToken`，如此即可查看下一批任務。

------