Conector de orígenes de datos personalizados
Utilice un origen de datos personalizado cuando tenga un repositorio para el que Amazon Kendra aún no proporcione un conector de origen de datos. Puede usarlo para ver las mismas métricas del historial de ejecución que proporcionan los orígenes de datos de Amazon Kendra, aunque no pueda utilizarlos para sincronizar los repositorios. Utilícelo para crear una experiencia de supervisión de sincronización coherente entre los orígenes de datos de Amazon Kendra y los personalizados. En concreto, utilice un origen de datos personalizado para ver las métricas de sincronización de un conector de origen de datos que haya creado con las API BatchPutDocument y BatchDeleteDocument.
Para solucionar problemas del conector de origen de datos personalizado de Amazon Kendra, consulte Solución de problemas con los orígenes de datos.
Al crear un origen de datos personalizado, tiene el control total sobre cómo se seleccionan los documentos que se van a indexar. Amazon Kendra solo proporciona información de métricas que se puede utilizar para monitorizar los trabajos de sincronización del origen de datos. Debe crear y ejecutar el rastreador que determina los documentos que indexa su origen de datos.
Debe especificar el título principal de los documentos mediante el objeto Document y _source_uri en DocumentAttribute para poder incluir DocumentTitle y DocumentURI en la respuesta del resultado de la Query.
Puede crear un identificador para su origen de datos personalizado mediante la consola o mediante la API CreateDataSource. Para usar la consola, asigne un nombre al origen de datos y, si lo desea, una descripción y etiquetas de recursos. Una vez creado el origen de datos, se muestra el ID correspondiente. Copie este ID para usarlo cuando sincronice el origen de datos con el índice.
También puede crear un origen de datos personalizada mediante la API CreateDataSource. La API devuelve un ID para usarlo al sincronizar el origen de datos. Cuando utiliza la API CreateDataSource para crear un origen de datos personalizado, no puede configurar los parámetros Configuration, RoleArn o Schedule. Si establece estos parámetros, Amazon Kendra devuelve una excepción ValidationException.
Para usar un origen de datos personalizado, cree una aplicación que se encargue de actualizar el índice de Amazon Kendra. La aplicación depende del rastreador que cree. El rastreador lee los documentos del repositorio y determina cuáles se deben enviar a Amazon Kendra. La aplicación debe realizar los pasos siguientes:
-
Rastrear el repositorio y hacer una lista de los documentos del repositorio que se han agregado, actualizado o eliminado.
-
Llamar a la API StartDataSourceSyncJob para indicar que se está iniciando un trabajo de sincronización. Se proporciona un ID de origen de datos para identificar el origen de datos que se está sincronizando. Amazon Kendra devuelve un ID de ejecución para identificar un trabajo de sincronización concreto.
-
Llamar a la API BatchDeleteDocument para eliminar documentos del índice. Se proporciona el ID del origen de datos y el ID de ejecución para identificar el origen de datos que se está sincronizando y el trabajo al que está asociada esta actualización.
-
Llamar a la API StopDataSourceSyncJob para indicar el final del trabajo de sincronización. Después de llamar a la API
StopDataSourceSyncJob, el ID de ejecución asociado deja de ser válido. -
Llamar a la API ListDataSourceSyncJobs con los identificadores del índice y del origen de datos para enumerar los trabajos de sincronización del origen de datos y ver las métricas correspondientes.
Tras finalizar un trabajo de sincronización, se puede iniciar uno nuevo. Puede transcurrir un tiempo antes de que todos los documentos enviados se añadan al índice. Use la API ListDataSourceSyncJobs para ver el estado del trabajo de sincronización. Si el Status devuelto para el trabajo de sincronización es SYNCING_INDEXING, algunos documentos aún se están indexando. Se puede iniciar un nuevo trabajo de sincronización cuando el estado del trabajo anterior sea FAILED o SUCCEEDED.
Después de llamar a la API StopDataSourceSyncJob, no se puede usar un identificador de trabajo de sincronización en una llamada a las API BatchPutDocument o BatchDeleteDocument. Si lo hace, todos los documentos enviados se devolverán en el mensaje de respuesta FailedDocuments de la API.
Atributos obligatorios
Al enviar un documento a Amazon Kendra mediante la API BatchPutDocument, cada documento requiere dos atributos para identificar el origen de datos y la ejecución de sincronización a la que pertenece. Debe proporcionar los dos atributos siguientes para asignar correctamente los documentos del origen de datos personalizado a un índice de Amazon Kendra:
-
_data_source_id: el identificador del origen de datos. Este se devuelve al crear el origen de datos con la consola o la APICreateDataSource. -
_data_source_sync_job_execution_id: el identificador de la ejecución de sincronización. Se devuelve al iniciar la sincronización del índice con la APIStartDataSourceSyncJob.
El siguiente es el JSON necesario para indexar un documento mediante un origen de datos personalizado.
{
"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"
}
Al eliminar un documento del índice mediante la API BatchDeleteDocument, se deben especificar los dos campos siguientes en el parámetro DataSourceSyncJobMetricTarget:
-
DataSourceId: el identificador del origen de datos. Este se devuelve al crear el origen de datos con la consola o la APICreateDataSource. -
DataSourceSyncJobId: el identificador de la ejecución de sincronización. Se devuelve al iniciar la sincronización del índice con la APIStartDataSourceSyncJob.
El siguiente es el JSON necesario para eliminar un documento del índice mediante la API BatchDeleteDocument.
{
"DataSourceSyncJobMetricTarget": {
"DataSourceId": "data source identifier",
"DataSourceSyncJobId": "sync job identifier"
},
"DocumentIdList": [
"document identifier"
],
"IndexId": "index identifier"
}
Visualización de métricas
Una vez finalizado un trabajo de sincronización, se puede usar la API DataSourceSyncJobMetrics para obtener las métricas asociadas al trabajo de sincronización. Utilícela para supervisar las sincronizaciones de sus orígenes de datos personalizados.
Si se envía el mismo documento varias veces, ya sea como parte de la API BatchPutDocument, la API BatchDeleteDocument o si el documento se envía tanto para su adición como para su eliminación, el documento solo se cuenta una vez en las métricas.
-
DocumentsAdded: la cantidad de documentos enviados mediante la APIBatchPutDocumentasociada a este trabajo de sincronización agregados al índice por primera vez. Si un documento se envía para agregarlo más de una vez en una sincronización, el documento solo se cuenta una vez en las métricas. -
DocumentsDeleted: la cantidad de documentos enviados mediante la APIBatchDeleteDocumentasociada a este trabajo de sincronización eliminados del índice. Si un documento se envía para eliminarlo más de una vez en una sincronización, el documento solo se cuenta una vez en las métricas. -
DocumentsFailed: el número de documentos asociados a este trabajo de sincronización que no se pudieron indexar. Se trata de documentos que fueron aceptados por Amazon Kendra para su indexación, pero que no se pudieron indexar ni eliminar. Si un documento no es aceptado por Amazon Kendra, el identificador del documento se devuelve en la propiedad de respuestaFailedDocumentsde las APIBatchPutDocumentyBatchDeleteDocument. -
DocumentsModified: la cantidad de documentos modificados enviados mediante la APIBatchPutDocumentasociada a este trabajo de sincronización que se modificaron en el índice de Amazon Kendra.
Amazon Kendra también emite métricas de Amazon CloudWatch al indexar los documentos. Para obtener más información, consulte Monitorización de Amazon Kendra con Amazon CloudWatch.
Amazon Kendra no devuelve la métrica DocumentsScanned de los orígenes de datos personalizados. También emite las métricas de CloudWatch que figuran en el documento Métricas de los orígenes de datos de Amazon Kendra.
Más información
Para obtener más información acerca de la integración de Amazon Kendra con el origen de datos personalizado, consulte: