Atualização de recurso¶
A atualização de um recurso é usada para redefinir as configurações de ingestão de um recurso específico. O procedimento PUBLIC.UPDATE_RESOURCE
é o ponto de entrada da UI ou planilha para atualizar um recurso.
Para chamar este procedimento o usuário precisa ter recebido a função de aplicativo ADMIN
.
O processo de atualização de recurso consiste em várias fases. Várias das quais são personalizáveis, mas incluem padrões razoáveis. As fases são:
Validação inicial
Validação personalizada
Lógica personalizada antes que um recurso seja atualizado
Atualização das configurações de ingestão
Finalização de processos de ingestão para configurações de ingestão removidas
Agendamento de processos de ingestão para nova configuração de ingestão
Lógica personalizada após a atualização de um recurso e o gerenciamento dos processos de ingestão
Validação inicial¶
A validação inicial é realizada logo no início do processo de atualização do recurso. Ele verifica:
se os dados de entrada fornecidos representam um objeto de configuração de ingestão de recurso válido
se um recurso com determinado
id
eresourceId
existe
Validação personalizada¶
A validação personalizada é executada logo após a validação inicial. É uma parte do processo que foi projetada para ser personalizada com a lógica específica do conector.
Por padrão, ele invoca PUBLIC.UPDATE_RESOURCE_VALIDATE(resource_ingestion_definition_id VARCHAR, ingestion_configurations VARIANT)
, que retorna 'response_code': 'OK'
. Pode ser sobrescrito através do script SQL ou usando um UpdateResourceHandlerBuilder
para fornecer implementação personalizada da interface UpdateResourceValidator
.
Se a validação personalizada retornar erro, as próximas etapas não serão executadas e a resposta de erro fornecida será retornada do procedimento UPDATE_RESOURCE
.
Lógica personalizada antes que um recurso seja atualizado¶
A lógica personalizada pode ser definida e executada antes que um recurso seja atualizado e reprogramado.
Por padrão, ele invoca PUBLIC.PRE_UPDATE_RESOURCE(resource_ingestion_definition_id VARCHAR, ingestion_configurations VARIANT)
, que retorna 'response_code': 'OK'
. Pode ser sobrescrito através do script SQL ou usando um UpdateResourceHandlerBuilder
para fornecer implementação personalizada da interface PreUpdateResourceCallback
.
Se a lógica personalizada retornar erro, as próximas etapas não serão executadas e a resposta de erro fornecida será retornada do procedimento UPDATE_RESOURCE
.
Atualização das configurações de ingestão de recurso¶
Nesta etapa, novas configurações de ingestão são salvas na tabela STATE.RESOURCE_INGESTION_DEFINITION
para o recurso com um determinado resource_ingestion_definition_id
.
Finalização de processos de ingestão para configurações de ingestão removidas¶
Nesta etapa, quando um recurso é habilitado (parâmetro enabled
igual a true
), todos os processos de ingestão ativos (com status SCHEDULED
ou IN_PROGRESS
) com configurações de ingestão cujos IDs não estão incluídos no conjunto de configurações de ingestão atualizadas são concluídos, o que significa que seu status é alterado para FINISHED
.
Agendamento de processos de ingestão para nova configuração de ingestão¶
Nesta etapa, quando um recurso é habilitado (parâmetro enabled
igual a true
), novos processos de ingestão são criados para configurações de ingestão atualizadas que não existiam em um estado de configurações de ingestão anterior para um determinado recurso.
Lógica personalizada após a atualização de um recurso¶
A lógica personalizada pode ser implementada e executada após as configurações de ingestão de recurso serem atualizadas.
Por padrão, ele invoca PUBLIC.POST_UPDATE_RESOURCE(resource_ingestion_definition_id VARCHAR, ingestion_configurations VARIANT)
, que retorna 'response_code': 'OK'
. Pode ser sobrescrito através do script SQL ou usando um UpdateResourceHandlerBuilder
para fornecer implementação personalizada da interface PostUpdateResourceCallback
.
Se a lógica personalizada retornar um erro, a resposta de erro fornecida será retornada do procedimento UPDATE_RESOURCE
, mas a atualização da definição de ingestão de recurso e dos processos de ingestão não serão revertidos; portanto, se necessário, eles deverão ser tratados pela implementação personalizada.
Resposta¶
Resposta bem-sucedida¶
Em caso de sucesso, o procedimento retorna um resultado semelhante a:
{ "response_code": "OK", "message": "Resource successfully updated." }
Resposta de erro¶
Em caso de erro, uma resposta semelhante à seguinte é retornada:
{ "response_code": "<ERROR_CODE>", "message": "<error message>" }
Possíveis códigos de erro incluem:
INVALID_INPUT
– Os argumentos do procedimento fornecido são inválidos e não é possível atualizar as configurações de ingestão de recurso ou um recurso com o dado não existe.UPDATE_RESOURCE_ERROR
– Algo inesperado aconteceu ao atualizar a definição de ingestão de recurso com novas configurações de ingestão ou ao gerenciar processos de ingestão. Todas as alterações são revertidas.