Mettre à jour la ressource¶
La mise à jour d’une ressource permet de redéfinir les configurations d’ingestion pour une ressource particulière. La procédure PUBLIC.UPDATE_RESOURCE
est le point d’entrée de l’UI ou une feuille de calcul pour mettre à jour une ressource.
L’appel de cette procédure nécessite que l’utilisateur ait été affecté au rôle d’application ADMIN
.
Le processus de mise à jour des ressources comprend plusieurs phases. Plusieurs d’entre elles sont personnalisables, mais incluent des valeurs par défaut raisonnables. Les phases sont les suivantes :
Validation initiale
Validation personnalisée
Logique personnalisée avant la mise à jour d’une ressource
Mise à jour des configurations d’ingestion
Fin des processus d’ingestion pour les configurations d’ingestion supprimées
Planification des processus d’ingestion pour une nouvelle configuration d’ingestion
Logique personnalisée après la mise à jour d’une ressource et la gestion des processus d’ingestion
Validation initiale¶
La validation initiale est effectuée au tout début du processus de mise à jour des ressources. Elle vérifie :
si les données d’entrée fournies représentent un objet de configuration d’ingestion de ressources valide
si une ressource avec un
id
et unresourceId
donnés existe
Validation personnalisée¶
La validation personnalisée est exécutée juste après la validation initiale. Il s’agit d’une partie du processus conçue pour être personnalisée avec la logique spécifique au connecteur.
Par défaut, elle appelle PUBLIC.UPDATE_RESOURCE_VALIDATE(resource_ingestion_definition_id VARCHAR, ingestion_configurations VARIANT)
, qui renvoie 'response_code': 'OK'
. Elle peut être remplacée par le script SQL ou en utilisant un UpdateResourceHandlerBuilder
pour fournir une implémentation personnalisée de l’interface UpdateResourceValidator
.
Si la validation personnalisée renvoie une erreur, les étapes suivantes ne seront pas exécutées et la réponse d’erreur fournie sera renvoyée par la procédure UPDATE_RESOURCE
.
Logique personnalisée avant la mise à jour d’une ressource¶
Une logique personnalisée peut être définie et exécutée avant qu’une ressource ne soit mise à jour et replanifiée.
Par défaut, elle appelle PUBLIC.PRE_UPDATE_RESOURCE(resource_ingestion_definition_id VARCHAR, ingestion_configurations VARIANT)
, qui renvoie 'response_code': 'OK'
. Elle peut être remplacée par le script SQL ou en utilisant un UpdateResourceHandlerBuilder
pour fournir une implémentation personnalisée de l’interface PreUpdateResourceCallback
.
Si la logique personnalisée renvoie une erreur, les étapes suivantes ne seront pas exécutées et la réponse d’erreur fournie sera renvoyée par la procédure UPDATE_RESOURCE
.
Mise à jour des configurations d’ingestion de ressources¶
Au cours de cette étape, de nouvelles configurations d’ingestion sont enregistrées dans la table STATE.RESOURCE_INGESTION_DEFINITION
pour la ressource avec un resource_ingestion_definition_id
donné.
Fin des processus d’ingestion pour les configurations d’ingestion supprimées¶
Dans cette étape, lorsqu’une ressource est activée (paramètre enabled
égal à true
) tous les processus d’ingestion actifs (avec les statuts SCHEDULED
ou IN_PROGRESS
) avec des configurations d’ingestion dont les ID ne sont pas inclus dans l’ensemble des configurations d’ingestion mises à jour sont terminés, ce qui signifie que leur statut est passé à FINISHED
.
Planification des processus d’ingestion pour une nouvelle configuration d’ingestion¶
Dans cette étape, lorsqu’une ressource est activée (paramètre enabled
égal à true
) de nouveaux processus d’ingestion sont créés pour les configurations d’ingestion mises à jour qui n’existaient pas dans un état de configurations d’ingestion précédent pour une ressource donnée.
Logique personnalisée après la mise à jour d’une ressource¶
Une logique personnalisée peut être implémentée et exécutée après la mise à jour des configurations d’ingestion de ressources.
Par défaut, elle appelle PUBLIC.POST_UPDATE_RESOURCE(resource_ingestion_definition_id VARCHAR, ingestion_configurations VARIANT)
, qui renvoie 'response_code': 'OK'
. Elle peut être remplacée par le script SQL ou en utilisant un UpdateResourceHandlerBuilder
pour fournir une implémentation personnalisée de l’interface PostUpdateResourceCallback
.
Si la logique personnalisée renvoie une erreur, la réponse d’erreur donnée sera renvoyée par la procédure UPDATE_RESOURCE
mais la mise à jour de la définition d’ingestion des ressources et des processus d’ingestion ne sera pas annulée. Par conséquent, si nécessaire, elle doit être gérée par l’implémentation personnalisée.
Réponse¶
Réponse aboutie¶
En cas de succès, la procédure renvoie un résultat ressemblant à :
{ "response_code": "OK", "message": "Resource successfully updated." }
Erreur de réponse¶
En cas d’erreur, une réponse ressemblant à ce qui suit est renvoyée :
{ "response_code": "<ERROR_CODE>", "message": "<error message>" }
Les codes d’erreur possibles sont les suivants :
INVALID_INPUT
- Les arguments de la procédure fournie ne sont pas valides et il n’est pas possible de mettre à jour les configurations d’ingestion de ressources ou une ressource avec les informations données n’existe pas.UPDATE_RESOURCE_ERROR
- Un événement inattendu s’est produit lors de la mise à jour de la définition d’ingestion des ressources avec de nouvelles configurations d’ingestion ou lors de la gestion des processus d’ingestion. Toutes les modifications sont annulées.