View a markdown version of this page

自訂資料來源連接器 - Amazon Kendra

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

自訂資料來源連接器

當您的儲存庫 Amazon Kendra 尚未提供資料來源連接器時,請使用自訂資料來源。您可以使用它來查看 Amazon Kendra 資料來源提供的相同執行歷史記錄指標,即使您無法使用 Amazon Kendra的資料來源來同步儲存庫。使用此項目可在 Amazon Kendra 資料來源和自訂來源之間建立一致的同步監控體驗。具體而言,使用自訂資料來源來查看您使用 BatchPutDocumentBatchDeleteDocument APIs 建立之資料來源連接器的同步指標。

如需對 Amazon Kendra 自訂資料來源連接器進行故障診斷,請參閱 對資料來源進行故障診斷

當您建立自訂資料來源時,您可以完全控制如何選取要編製索引的文件。 Amazon Kendra 僅提供指標資訊,可用來監控資料來源同步任務。您必須建立並執行編目程式,用以決定資料來源中哪些文件會被編入索引。

您必須使用文件物件和 _source_uri DocumentAttribute 指定文件的主要標題,才能在Query結果的回應DocumentURI中包含 DocumentTitle 和 。

您可以使用 主控台或使用 CreateDataSource API 建立自訂資料來源的識別符。若要使用 主控台,請為您的資料來源命名,並選擇性地提供描述和資源標籤。建立完成後,系統會顯示資料來源 ID。請複製此 ID,以便在同步資料來源與索引時使用。

用於指定資料來源詳細資訊的表單,包括名稱、描述和選用標籤。

您也可以使用 CreateDataSource API 建立自訂資料來源。API 會傳回要在同步資料來源時使用的 ID。當您使用 CreateDataSource API 建立自訂資料來源時,您無法設定 ConfigurationRoleArnSchedule 參數。如果您設定這些參數, 會 Amazon Kendra 傳回ValidationException例外狀況。

若要使用自訂資料來源,請建立負責更新 Amazon Kendra 索引的應用程式。應用程式取決於您建立的爬蟲程式。爬蟲程式會讀取儲存庫中的文件,並判斷哪些應該傳送至 Amazon Kendra。您的應用程式應執行下列步驟:

  1. 爬取您的儲存庫,建立包含新增、更新或刪除文件的清單。

  2. 呼叫 StartDataSourceSyncJob API 以發出同步任務正在啟動的訊號。您提供資料來源 ID 來識別同步的資料來源。 Amazon Kendra 會傳回執行 ID 來識別特定的同步任務。

  3. 呼叫 BatchDeleteDocument API 以從索引中移除文件。您需提供資料來源 ID 與執行 ID,用以識別進行同步的資料來源及此更新所屬的任務。

  4. 呼叫 StopDataSourceSyncJob API 來發出同步任務結束的訊號。呼叫 StopDataSourceSyncJob API 之後,相關聯的執行 ID 不再有效。

  5. 使用索引和資料來源識別符呼叫 ListDataSourceSyncJobs API,列出資料來源的同步任務,並查看同步任務的指標。

在您結束同步任務後,您可以啟動新的同步任務。在所有提交文件新增至索引前,可能會有短暫延遲。使用 ListDataSourceSyncJobs API 來查看同步任務的狀態。若同步作業的 Status 回傳值為 SYNCING_INDEXING,則表示部分文件仍在編索中。當上一個同步作業的狀態為 FAILEDSUCCEEDED 時,您即可啟動新的同步作業。

呼叫 StopDataSourceSyncJob API 之後,您無法在呼叫 BatchPutDocumentBatchDeleteDocument APIs 時使用同步任務識別符。若執行此操作,所有提交的文件將於 API 的 FailedDocuments 回應訊息中返回。

必要屬性

當您 Amazon Kendra 使用 BatchPutDocument API 將文件提交至 時,每個文件都需要兩個屬性來識別其所屬的資料來源和同步執行。您必須提供下列兩個屬性,才能將文件從自訂資料來源正確對應至 Amazon Kendra 索引:

  • _data_source_id- 資料來源的識別符。當您使用主控台或 CreateDataSource API 建立資料來源時,會傳回此值。

  • _data_source_sync_job_execution_id- 同步執行的識別符。當您啟動與 StartDataSourceSyncJob API 的索引同步時,會傳回此值。

以下為使用自訂資料來源進行文件索引所需的 JSON。

{ "Documents": [ { "Attributes": [ { "Key": "_data_source_id", "Value": { "StringValue": "data source identifier" } }, { "Key": "_data_source_sync_job_execution_id", "Value": { "StringValue": "sync job identifier" } } ], "Blob": "document content", "ContentType": "content type", "Id": "document identifier", "Title": "document title" } ], "IndexId": "index identifier", "RoleArn": "IAM role ARN" }

當您使用 BatchDeleteDocument API 從索引移除文件時,您需要在 DataSourceSyncJobMetricTarget 參數中指定下列兩個欄位:

  • DataSourceId- 資料來源的識別符。當您使用主控台或 CreateDataSource API 建立資料來源時,會傳回此值。

  • DataSourceSyncJobId- 同步執行的識別符。當您啟動與 StartDataSourceSyncJob API 的索引同步時,會傳回此值。

以下是使用 BatchDeleteDocument API 從索引刪除文件所需的 JSON。

{ "DataSourceSyncJobMetricTarget": { "DataSourceId": "data source identifier", "DataSourceSyncJobId": "sync job identifier" }, "DocumentIdList": [ "document identifier" ], "IndexId": "index identifier" }

檢視 指標

同步任務完成後,您可以使用 DataSourceSyncJobMetrics API 取得與同步任務相關聯的指標。使用此項目來監控您的自訂資料來源同步。

如果您多次提交相同的文件,無論是做為 BatchPutDocument API、BatchDeleteDocumentAPI 的一部分,或是同時提交新增和刪除的文件,則文件只會在指標中計算一次。

  • DocumentsAdded- 使用與此同步任務相關聯的 BatchPutDocument API 提交的文件數量,首次新增到索引。若文件於同步過程中重複提交新增,則在指標中僅計算一次。

  • DocumentsDeleted- 使用與此同步任務相關聯的 BatchDeleteDocument API 提交的文件數量,已從索引中刪除。若文件於同步中多次提交刪除,則在指標中僅計算一次。

  • DocumentsFailed- 與此同步任務相關聯的失敗索引的文件數量。這些是 接受 Amazon Kendra 用於編製索引但無法編製索引或刪除的文件。如果未接受文件 Amazon Kendra,文件的識別符會在 BatchPutDocumentBatchDeleteDocument APIs的FailedDocuments回應屬性中傳回。

  • DocumentsModified- 使用與此同步任務相關聯之 BatchPutDocument API 提交的修改後文件數量,該 API 已在 Amazon Kendra 索引中修改。

Amazon Kendra 也會在編製文件索引時發出 Amazon CloudWatch 指標。如需詳細資訊,請參閱Amazon Kendra 使用 監控 Amazon CloudWatch

Amazon Kendra 不會傳回自訂資料來源的 DocumentsScanned 指標。它也會發出文件中列出的 CloudWatch 指標 Amazon Kendra 資料來源的指標

進一步了解

若要進一步了解 Amazon Kendra 如何與您的自訂資料來源整合,請參閱: