Conectores de fontes de dados personalizados
Use uma fonte de dados personalizada quando você tiver um repositório que o Amazon Kendra ainda não fornece um conector de fonte de dados para ele. Você pode usá-lo para ver as mesmas métricas de histórico de execução que as fontes de dados do Amazon Kendra fornecem, mesmo quando não é possível usar as fontes de dados do Amazon Kendra para sincronizar os repositórios. Use isso para criar uma experiência consistente de monitoramento de sincronização entre fontes de dados do Amazon Kendra e fontes personalizadas. Especificamente, use uma fonte de dados personalizada para ver as métricas de sincronização de um conector de fonte de dados criado usando as APIs BatchputDocument e BatchDeleteDocument.
Para solucionar problemas do conector da fonte de dados do Amazon Kendra, consulte Solucionar problemas de origens de dados.
Ao criar uma fonte de dados personalizada, você tem controle total sobre como os documento indexados são selecionados. O Amazon Kendra fornece apenas informações métricas sobre o que pode ser usado para monitorar as tarefas de sincronização da origem dos dados. Você deve criar e executar o crawler que determina os documentos indexados pela fonte de dados.
Especifique o título principal dos documentos usando o objeto Documento e _source_uri em DocumentAttribute para incluir DocumentTitle e DocumentURI na resposta do resultado da Query.
Você cria um identificador para a fonte de dados personalizada usando o console ou a API CreateDataSource. Para usar o console, dê um nome à sua fonte de dados e, opcionalmente, uma descrição e tags de recursos. Depois que a fonte de dados é criada, um ID da fonte de dados é exibida. Copie esse ID para usar ao sincronizar a fonte de dados com o índice.
Também é possível criar uma fonte de dados personalizada usando a API CreateDataSource. A API retorna um ID para ser usado quando ao sincronizar a fonte de dados. Ao usar a API CreateDataSource para criar uma fonte de dados personalizada, não é possível definir os parâmetros Configuration, RoleArn ou Schedule. Se você definir esses parâmetros, Amazon Kendra retornará uma exceção do ValidationException.
Para usar uma fonte de dados personalizada, crie um aplicativo responsável pela atualização do índice do Amazon Kendra. O aplicativo depende de um crawler criado por você. O crawler lê os documentos em seu repositório e determina quais devem ser enviados para Amazon Kendra. O aplicativo deve executar as seguintes etapas:
-
Rastreie o repositório e faça uma lista dos documentos no repositório que foram adicionados, atualizados ou excluídos.
-
Chame a API StartDataSourceSyncJob para sinalizar que um trabalho de sincronização está sendo iniciado. Forneça um ID da fonte de dados para identificar a fonte de dados que está sincronizando. o Amazon Kendra retorna um ID de execução para identificar um trabalho de sincronização específico.
-
Chame a API BatchDeleteDocument para remover documentos do índice. Forneça o ID da fonte de dados e o ID de execução para identificar a fonte de dados que está sendo sincronizada e o trabalho ao qual essa atualização está associada.
-
Chame a API StopDataSourceSyncJob para sinalizar o fim do trabalho de sincronização. Depois de chamar a API
StopDataSourceSyncJob, o ID de execução associado não é mais válido. -
Chame a API ListDataSourceSyncJobs com os identificadores de índice e fonte de dados para listar os trabalhos de sincronização da fonte de dados e ver as métricas dos trabalhos de sincronização.
Depois de finalizar um trabalho de sincronização, você pode iniciar um novo trabalho de sincronização. Pode haver um período de tempo até que todos os documentos enviados sejam adicionados ao índice. Use a API ListDataSourceSyncJobs para ver o status da tarefa de sincronização. Se o Status retornado para o trabalho de sincronização for SYNCING_INDEXING, alguns documentos ainda estão sendo indexados. Você pode iniciar um novo trabalho de sincronização quando o status do trabalho anterior for FAILED ou SUCCEEDED.
Depois de chamar a API StopDataSourceSyncJob, você não pode usar um identificador de trabalho de sincronização em uma chamada para as APIs BatchPutDocument ou BatchDeleteDocument. Se você fizer isso, todos os documentos enviados serão retornados na mensagem de resposta FailedDocuments da API.
Atributos obrigatórios
Quando você envia um documento para Amazon Kendra usar a API BatchPutDocument, cada documento exige dois atributos para identificar a fonte de dados e a execução de sincronização à qual ela pertence. Você deve fornecer os dois seguintes atributos para mapear documentos da sua fonte de dados personalizada corretamente para um índice do Amazon Kendra:
-
_data_source_id: o identificador da fonte de dados. Ele é retornado quando você cria a fonte de dados com o console ou a APICreateDataSource. -
_data_source_sync_job_execution_id: o identificador da execução da sincronização. Ele é retornado quando você inicia a sincronização do índice com a APIStartDataSourceSyncJob.
Veja a seguir o JSON necessário para indexar um documento usando uma fonte de dados personalizada.
{
"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"
}
Ao remover um documento do índice usando a API BatchDeleteDocument, especifique os dois campos a seguir no parâmetro DataSourceSyncJobMetricTarget:
-
DataSourceId: o identificador da fonte de dados. Ele é retornado quando você cria a fonte de dados com o console ou a APICreateDataSource. -
DataSourceSyncJobId: o identificador da execução da sincronização. Ele é retornado quando você inicia a sincronização do índice com a APIStartDataSourceSyncJob.
Veja a seguir o JSON necessário para excluir um documento do índice usando API BatchDeleteDocument.
{
"DataSourceSyncJobMetricTarget": {
"DataSourceId": "data source identifier",
"DataSourceSyncJobId": "sync job identifier"
},
"DocumentIdList": [
"document identifier"
],
"IndexId": "index identifier"
}
Visualizar métricas
Depois que um trabalho de sincronização for concluído, use a API DataSourceSyncJobMetrics para obter as métricas associadas ao trabalho de sincronização. Use ela para monitorar as sincronizações de fontes de dados personalizadas.
Se você enviar o mesmo documento várias vezes, seja como parte da API BatchPutDocument, da BatchDeleteDocument API ou se o documento for enviado para adição e exclusão, o documento será contado apenas uma vez nas métricas.
-
DocumentsAdded: o número de documentos enviados usando a APIBatchPutDocumentassociada a esse trabalho de sincronização adicionados ao índice pela primeira vez. Se um documento for enviado para adição mais de uma vez em uma sincronização, ele será contabilizado apenas uma vez nas métricas. -
DocumentsDeleted: o número de documentos enviados usando a APIBatchDeleteDocumentassociada a esse trabalho de sincronização excluídos pelo índice.. Se um documento for enviado para exclusão mais de uma vez em uma sincronização, ele será contabilizado apenas uma vez nas métricas. -
DocumentsFailed: o número de documentos associados a essa tarefa de sincronização que falharam na indexação. Esses são documentos que foram aceitos por Amazon Kendra para indexação, mas que não puderam ser indexados ou excluídos. Se um documento não for aceito por Amazon Kendra, o identificador do documento será retornado na propriedade de respostaFailedDocumentsdas APIsBatchPutDocumenteBatchDeleteDocument. -
DocumentsModified: o número de documentos modificados e enviados usando a APIBatchPutDocumentassociada a esse trabalho de sincronização modificados no índice Amazon Kendra.
O Amazon Kendra também emite métricas do Amazon CloudWatch ao indexar documentos. Para obter mais informações, consulte Monitoramento do Amazon Kendra com o Amazon CloudWatch.
O Amazon Kendra não retorna a métrica DocumentsScanned para fontes de dados personalizadas. Ele também emite as métricas CloudWatch listadas no documento Métricas para fontes de dados do Amazon Kendra.
Saiba mais
Para saber mais sobre a integração do Amazon Kendra com a fonte de dados, consulte: