カスタムデータソースコネクタ - Amazon Kendra

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

カスタムデータソースコネクタ

Amazon Kendra がまだデータソースコネクタを提供していないリポジトリがある場合は、カスタムデータソースを使用します。Amazon Kendra のデータソースを使用してリポジトリを同期できない場合でも、Amazon Kendra データソースが提供する同じ実行履歴メトリクスを確認できます。これを使用して、Amazon Kendra データソースとカスタムデータソース間で一貫した同期モニタリングエクスペリエンスを作成します。具体的には、カスタムデータソースを使用して、 BatchPutDocumentおよび BatchDeleteDocument APIs を使用して作成したデータソースコネクタの同期メトリクスを確認します。

Amazon Kendra データソースコネクタのトラブルシューティングについては、「データソースのトラブルシューティング」を参照してください。

カスタムデータソースを作成すると、インデックスを作成するドキュメントの選択方法を完全に制御できます。Amazon Kendra はデータソース同期ジョブのモニタリングに使用できるメトリクス情報のみを提供します。データソースインデックスを決定するクローラを作成し、実行する必要があります。

Query 結果のレスポンスに と DocumentTitleDocumentURIを含める_source_uriDocumentAttributeには、ドキュメントオブジェクトを使用してドキュメントのメインタイトルを指定する必要があります。

コンソールまたは CreateDataSource API を使用して、カスタムデータソースの識別子を作成します。コンソールを使用するには、データソースに名前を付け、オプションで説明とリソースタグを指定します。データソースが作成されると、データソース ID が表示されます。この ID をコピーして、データソースをインデックスと同期するときに使用します。

CreateDataSource API を使用して、カスタムデータソースを作成することもできます。この API は、データソースを同期するときに使用する ID を返します。CreateDataSource API を使用してカスタムデータソースを作成する場合、ConfigurationRoleArn または Schedule パラメータは設定できません。これらのパラメータを設定すると、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 を使用して、同期ジョブのステータスを確認します。同期ジョブに対して返された StatusSYNCING_INDEXING の場合、一部のドキュメントはまだインデックス作成中です。前のジョブのステータスが FAILEDまたは になったら、新しい同期ジョブを開始できますSUCCEEDED

StopDataSourceSyncJob API を呼び出した後、同期ジョブ識別子は、BatchPutDocument または BatchDeleteDocument API への呼び出には使えません。呼び出しに使用した場合、送信されたすべてのドキュメントは、API からの FailedDocuments レスポンスメッセージに返されます。

必須属性

BatchPutDocument API を使用して Amazon Kendra にドキュメントを送信すると、各ドキュメントにはドキュメントが属するデータソースと同期実行を識別するために 2 つの属性が必要です。カスタムデータソースのドキュメントを Amazon Kendra インデックスに正しくマッピングするには、次の 2 つの属性を指定する必要があります。

  • _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 パラメータで次の 2 つのフィールドを指定する必要があります。

  • 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、BatchDeleteDocument API のいずれかの一部で、ドキュメントが追加と削除の両方で送信された場合、ドキュメントはメトリクスで一度だけカウントされます。

  • DocumentsAdded - インデックスに初めて追加されたこの同期ジョブに関連付けられた BatchPutDocument API で送信されたドキュメントの数。ドキュメントが同期で複数回追加されるように送信された場合、そのドキュメントはメトリクスで 1 回だけカウントされます。

  • DocumentsDeleted - インデックスから削除されたこの同期ジョブに関連付けられた BatchDeleteDocument API を使用して送信されたドキュメントの数。ドキュメントが同期で複数回削除されるように送信された場合、そのドキュメントはメトリクスで 1 回だけカウントされます。

  • DocumentsFailed - インデックス作成に失敗したこの同期ジョブに関連付けられているドキュメントの数。これらは、Amazon Kendra がインデックス作成のために受け入れましたが、インデックス作成または削除はできなかったドキュメントです。Amazon Kendra によってドキュメントが受け入れられない場合、ドキュメントの識別子は BatchPutDocument および BatchDeleteDocument API の FailedDocuments レスポンスプロパティに返されます。

  • DocumentsModified - Amazon Kendra インデックスで変更されたこの同期ジョブに関連付けられた BatchPutDocument API を使用して送信された、変更されたドキュメントの数。

Amazon Kendra は、ドキュメントのインデックス作成中に Amazon CloudWatch メトリクスも発行します。詳細については、「Amazon CloudWatch による Amazon Kendra のモニタリング」を参照してください。

Amazon Kendra はカスタムデータソースの DocumentsScanned メトリクスを返しません。また、Amazon Kendra データソースのメトリクスドキュメントに記載されている CloudWatch メトリクスも出力します。

詳細

Amazon Kendra とカスタムデータソースの統合について詳しくは、以下をご覧ください。