Créer une ressource

La création d’une ressource est nécessaire pour définir et planifier l’ingestion de données à partir d’un système source. La procédure PUBLIC.CREATE_RESOURCE est le point d’entrée de l’UI ou une feuille de calcul pour créer une nouvelle ressource.

Pour lancer cette procédure, l’utilisateur doit avoir le rôle d’application ADMIN.

Le processus de création de 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 création d’une ressource

  4. Création de la définition de l’ingestion des ressources et des processus d’ingestion

  5. Logique personnalisée après la création d’une ressource

Validation initiale

La validation initiale est effectuée au tout début du processus de création de ressources et vérifie :

  • si les données d’entrée fournies représentent un objet de définition d’ingestion de ressources valide

  • si une ressource avec un id et un resourceId donnés n’existe pas

Validation personnalisée

La validation personnalisée s’exécute après la validation initiale et est conçue pour prendre en charge la logique personnalisée spécifique au connecteur. Par exemple, elle peut être utilisée pour vérifier qu’une ressource donnée existe dans un système source.

Par défaut, elle appelle PUBLIC.CREATE_RESOURCE_VALIDATE(resource VARIANT), qui renvoie 'response_code': 'OK'. Elle peut être remplacée par un script SQL ou en utilisant un CreateResourceHandlerBuilder pour fournir une implémentation personnalisée de l’interface CreateResourceValidator.

Si la validation personnalisée renvoie une erreur, les étapes suivantes ne seront pas exécutées et la réponse d’erreur sera renvoyée par la procédure CREATE_RESOURCE.

Logique personnalisée avant la création d’une ressource

Vous pouvez implémenter une logique personnalisée avant qu’une ressource ne soit créée et planifiée. Par exemple, elle peut être utilisée pour créer une nouvelle table de destination dans laquelle les données d’ingestion seront enregistrées.

Par défaut, elle appelle PUBLIC.PRE_CREATE_RESOURCE(resource VARIANT), qui renvoie 'response_code': 'OK'. Elle peut être remplacée par le script SQL ou en utilisant un CreateResourceHandlerBuilder pour fournir une implémentation personnalisée de l’interface PreCreateResourceCallback.

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 CREATE_RESOURCE.

Création de la définition de l’ingestion des ressources et des processus d’ingestion

Au cours de cette étape, un nouvel enregistrement est ajouté à la table STATE.RESOURCE_INGESTION_DEFINITION. De plus, lorsqu’une ressource doit être initialement activée (paramètre enabled égal à true), un nouveau processus d’ingestion est ajouté pour chaque configuration d’ingestion fournie. Les processus d’ingestion sont créés avec le statut SCHEDULED qui signifie que l’ingestion commencera plus tard. Si l’indicateur enabled est défini sur false, aucun processus d’ingestion n’est créé et la procédure ENABLE_RESOURCE doit être appelée pour permettre l’ingestion.

Logique personnalisée après la création d’une ressource

Une logique personnalisée peut être spécifiée après la création et la planification d’une ressource. Par exemple, elle peut être utilisée pour créer une nouvelle table de destination dans laquelle les données d’ingestion seront enregistrées.

Par défaut, elle appelle PUBLIC.POST_CREATE_RESOURCE(id VARCHAR), qui renvoie 'response_code': 'OK'. Elle peut être remplacée par le script SQL ou en utilisant un CreateResourceHandlerBuilder pour fournir une implémentation personnalisée de l’interface PostCreateResourceCallback.

Si la logique personnalisée renvoie une erreur, la réponse d’erreur donnée sera renvoyée par la procédure CREATE_RESOURCE mais la création de la définition d’ingestion des ressources et des processus d’ingestion ne sera pas annulée.

Réponse

Réponse aboutie

En cas de réussite, la procédure renvoie une réponse ressemblant à ceci :

{
  "response_code": "OK",
  "id": "<new resource ingestion definition id>"
}
Copy

L”id renvoyé dans la réponse est un identifiant de définition d’ingestion de ressources et peut être utilisé pour activer, désactiver ou mettre à jour la ressource par la suite.

Erreur de réponse

En cas d’erreur, la procédure renvoie une réponse ressemblant à ceci :

{
  "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 créer un objet de ressource valide, ou une ressource avec l’ID donné existe déjà.

  • CREATE_RESOURCE_ERROR - Quelque chose d’inattendu s’est produit lors de la création de la nouvelle définition d’ingestion de ressources ou lors de la création de processus d’ingestion. Toutes les modifications sont annulées.