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 :

  1. Validation initiale

  2. Validation personnalisée

  3. Logique personnalisée avant la mise à jour d’une ressource

  4. Mise à jour des configurations d’ingestion

  5. Fin des processus d’ingestion pour les configurations d’ingestion supprimées

  6. Planification des processus d’ingestion pour une nouvelle configuration d’ingestion

  7. 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 un resourceId 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."
}
Copy

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>"
}
Copy

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.