自定义数据来源连接器 - Amazon Kendra

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

自定义数据来源连接器

如果您的存储库尚未为其提供数据源连接器, Amazon Kendra 请使用自定义数据源。即使您无法使用 Amazon Kendra 数据源同步存储库,也可以使用 Amazon Kendra它来查看数据源提供的相同运行历史指标。使用它可以在 Amazon Kendra 数据源和自定义数据源之间创建一致的同步监控体验。具体而言,使用自定义数据源来查看您使用 Document and D BatchPutoc ument API 创建的数据源连接器的同步指标。BatchDelete

要对 Amazon Kendra 数据来源连接器进行故障排除,请参阅数据来源故障排除

创建自定义数据源时,您可以完全控制要编制索引的文档的选择方式。 Amazon Kendra 仅提供可用于监控数据源同步作业的指标信息。您必须创建并运行用于确定数据来源索引文档的爬网程序。

您必须使用 Document 对象和_source_uri来指定文档的主标题,才能DocumentTitleDocumentURI包含在Query结果的响应中。DocumentAttribute

您可以使用控制台或源 API 为自定义数据CreateData源创建标识符。要使用控制台,请为您的数据来源命名,并可选择提供描述和资源标签。创建数据来源后,将显示数据来源 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. 调用BatchDelete文档 API 从索引中移除文档。您可以提供数据来源 ID 和执行 ID 来标识正在同步的数据来源以及与此更新关联的作业。

  4. 调用 StopDataSourceSyncJob API 以发出同步任务结束的信号。调用 StopDataSourceSyncJob API 后,关联的执行 ID 不再有效。

  5. 使用索引和数据源标识符调用 J ListDataSourceSyncob s API,列出数据源的同步任务并查看同步作业的指标。

结束同步作业后,您可以开始新的同步作业。可能需要一段时间才能将所有提交的文档添加到索引中。使用 ListDataSourceSyncJobs API 查看同步任务的状态。如果同步作业返回的 StatusSYNCING_INDEXING,则某些文档仍在编制索引。当上一个任务的状态为FAILED或时,您可以开始新的同步作业SUCCEEDED

调用 StopDataSourceSyncJob API 后,您不能在调用 BatchPutDocumentBatchDeleteDocument API 时使用同步任务标识符。如果您这样做,则提交的所有文档都将在 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" }

查看 指标

同步任务完成后,你可以使用 M DataSourceSyncJobetrics API 来获取与同步任务相关的指标。使用它来监控您的自定义数据来源同步。

如果您多次提交同一个文档,无论是作为 BatchPutDocument API、BatchDeleteDocument API 的一部分,还是为添加和删除提交该文档,该文档在指标中仅计入一次。

  • DocumentsAdded - 使用与首次添加到索引中的此同步作业关联的 BatchPutDocument API 提交的文档数量。如果在同步中为添加多次提交文档,则该文档在指标中仅计入一次。

  • DocumentsDeleted - 使用与从索引中删除的此同步作业关联的 BatchDeleteDocument API 提交的文档数量。如果在同步中为删除多次提交文档,则该文档在指标中仅计入一次。

  • DocumentsFailed - 与该同步作业关联但编制索引失败的文档数量。 Amazon Kendra 已接受为这些文档编制索引,但无法编制索引或已删除。如果文档未被接受 Amazon Kendra,则该文档的标识符将在BatchPutDocumentBatchDeleteDocument API 的FailedDocuments响应属性中返回。

  • DocumentsModified— 使用与此同步作业关联的 BatchPutDocument API 提交的已修改文档的数量,这些文档已在 Amazon Kendra 索引中进行了修改。

Amazon Kendra 在为文档编制索引时也会发出 Amazon CloudWatch 指标。有关更多信息,请参阅Amazon Kendra 使用进行监控 Amazon CloudWatch

Amazon Kendra 不返回自定义数据源的DocumentsScanned指标。它还会 CloudWatch 发出文档中列出的Amazon Kendra 数据源指标

了解更多信息

要了解有关 Amazon Kendra 与自定义数据源集成的更多信息,请参阅: