Gestion, mise à jour et désinstallation du Snowflake Connector for ServiceNow®V2

Snowflake Connector pour ServiceNow® V2 est soumis aux Conditions de Snowflake Connector.

Ce chapitre et ses sections décrivent les tâches types que vous devrez peut-être effectuer après l’installation et la configuration du connecteur.

Mise en pause et reprise de Snowflake Connector for ServiceNow®V2

Les sections suivantes expliquent comment mettre en pause et reprendre le connecteur.

Mise en pause de Snowflake Connector for ServiceNow®V2

Pour arrêter toutes les tâches lancées par le connecteur, appelez la procédure stockée PAUSE_CONNECTOR :

CALL PAUSE_CONNECTOR();
Copy

La mise en pause du connecteur empêche toute interaction avec celui-ci (par exemple, l’activation/la désactivation des tables ou la configuration du connecteur) jusqu’à la reprise du connecteur via l’appel de la procédure stockée RESUME_CONNECTOR.

La mise en pause du connecteur met également fin à toute génération de coûts pour le connecteur.

Reprise du Snowflake Connector for ServiceNow®V2

Pour reprendre toutes les tâches arrêtées par la procédure stockée PAUSE_CONNECTOR appelez la procédure stockée RESUME_CONNECTOR :

CALL RESUME_CONNECTOR();
Copy

Modification de l’entrepôt utilisé par le connecteur

Si vous souhaitez modifier l’entrepôt utilisé par le connecteur ou ajouter un entrepôt dédié, vous pouvez le faire en appelant :

CALL UPDATE_WAREHOUSE('<warehouse_name>');
Copy

Où :

warehouse_name

Spécifie le nom de l’entrepôt que le connecteur doit utiliser.

Note

Avant de configurer le connecteur pour qu’il utilise un entrepôt différent, vérifiez que l”application de connecteur dispose du privilège USAGE sur le nouvel entrepôt.

En outre, le connecteur doit être à l’état paused. Voir Mise en pause du connecteur.

Suppression de tables

Pour supprimer une table (par exemple activée involontairement) et ne pas l’afficher dans les vues pour la surveillance du connecteur, utilisez la procédure suivante :

CALL DELETE_TABLE('<table_name>');
Copy

Où :

table_name

Spécifie le nom de la table à supprimer. Cette table doit être désactivée et ne pas être en cours de rechargement.

Note

La procédure DELETE_TABLE ne retire pas les objets créés pour cette table dans la base de données et le schéma qui contiennent les données ServiceNow® dans Snowflake (table de données brutes, table de journaux d’événements et vues aplaties). Vous pouvez supprimer ces objets manuellement. Pour ce faire, vous devez faire en sorte que le connecteur ne soit plus propriétaire de ces éléments à l’aide d’un rôle doté du privilège MANAGE GRANTS. Par exemple :

USE ROLE ACCOUNTADMIN;
GRANT OWNERSHIP ON TABLE <destination_database>.<destination_schema>.<table_name> TO ROLE <account_role> REVOKE CURRENT GRANTS;
USE ROLE <account_role>;
DROP TABLE <destination_database>.<destination_schema>.<table_name>;
Copy

Mise à jour du jeton d’actualisation utilisé par le connecteur

Si vous configurez le connecteur avec l’authentification OAuth, vous devez mettre à jour le jeton d’actualisation régulièrement. Sinon, une fois le jeton expiré, le connecteur ne peut plus accéder à ServiceNow®. Par défaut, le jeton expire 90 jours après sa génération.

Si vous configurez des alertes e-mail pour le connecteur, vous recevrez un rappel pour mettre à jour le jeton d’actualisation le premier jour de chaque mois. Si le jeton expire, vous recevez un e-mail dès que le connecteur rencontre des problèmes d’accès à ServiceNow®.

Mise à jour du jeton d’actualisation du connecteur installé à l’aide de Snowsight

Pour mettre à jour le jeton d’actualisation si le connecteur a été installé à l’aide de Snowsight, procédez comme suit :

  1. Connectez-vous à Snowsight en tant qu’utilisateur ayant le rôle ACCOUNTADMIN.

    Note

    Assurez-vous que l’URL Snowsight que vous utilisez correspond à l’URL Snowsight qui a été utilisée lors de la configuration de l’URL de redirection OAuth. Autrement dit, si l’URL de redirection OAuth définie dans ServiceNow® a été fournie par Snowsight via Private Link, vous devez être connecté(e) à Snowsight via Private Link pour pouvoir actualiser le jeton. De même, lorsque l’URL de redirection a été configurée avec l’URL Snowsight publiquement accessible, l’actualisation doit être effectuée par Snowsight via une URL publique.

  2. Dans le menu de navigation, sélectionnez Data Products » Apps.

  3. Recherchez le Snowflake Connector for ServiceNow, puis sélectionnez la vignette du connecteur.

  4. Dans le menu de navigation supérieur, sélectionnez Settings » Authentication » Reauthenticate.

    Note

    Assurez-vous d’être connecté(e) à ServiceNow® sous le même utilisateur que celui avec lequel le connecteur a été initialement configuré. Vous pouvez vérifier l’utilisateur actuellement connecté dans le coin supérieur droit de la boîte de dialogue.

  5. Pour confirmer que vous autorisez le connecteur à se connecter à votre compte ServiceNow®, sélectionnez Allow dans la boîte de dialogue. Le jeton d’actualisation est maintenant mis à jour.

Pour savoir comment mettre à jour le jeton d’actualisation à l’aide des commandes SQL, reportez-vous à Mise à jour du jeton d’actualisation à l’aide de commandes SQL.

Mise à jour du jeton d’actualisation à l’aide de commandes SQL

Pour mettre à jour le jeton d’actualisation à l’aide de commandes SQL, procédez comme suit :

  1. Obtenez un nouveau jeton d’actualisation OAuth. Veillez à utiliser les mêmes client_id, client_secret et identifiants de connexion utilisateur que le connecteur utilise actuellement.

  2. Découvrez le nom complet de l’objet secret en interrogeant la vue CONNECTOR_CONFIGURATION :

    SELECT value FROM connector_configuration WHERE config_key = 'secret';
    
    Copy
  3. Mettez à jour l’objet secret en exécutant les commandes ALTER SECRET en modifiant les paramètres suivants :

    • Définissez OAUTH_REFRESH_TOKEN comme étant le jeton d’actualisation OAuth que vous avez récupéré dans la première étape.

    • Définissez OAUTH_REFRESH_TOKEN_EXPIRY_TIME sur l’horodatage d’expiration du jeton d’actualisation dans le fuseau horaire UTC. Vous pouvez le calculer en ajoutant la durée de vie du jeton d’actualisation de ServiceNow® à la date d’émission du jeton. Par défaut, le jeton expire dans 100 jours.

    Par exemple, pour mettre à jour le secret secretsdb.apiauth.servicenow_creds_oauth_code , exécutez la commande suivante :

    ALTER SECRET secretsdb.apiauth.servicenow_creds_oauth_code SET OAUTH_REFRESH_TOKEN = '34n;vods4nQsdg09wee4qnfvadH', OAUTH_REFRESH_TOKEN_EXPIRY_TIME = '2022-01-06 20:00:00';
    
    Copy

    Note

    Pour mettre à jour le secret, vous devez utiliser le rôle avec le privilège OWNERSHIP.

Mise à jour du mot de passe ServiceNow® pour l’authentification de base

Pour mettre à jour le mot de passe, vous devez trouver un secret existant et le modifier à l’aide de la commande ALTER SECRET.

  1. Déterminez le nom complet de l’objet secret à l’aide d’une commande Snowsight ou SQL.

    1. Pour obtenir un secret en utilisant Snowsight, procédez comme suit :

      1. Connectez-vous à Snowsight en tant qu’utilisateur ayant le rôle ACCOUNTADMIN.

      2. Dans la navigation de gauche, sélectionnez Data Products » Apps.

      3. Recherchez le Snowflake Connector for ServiceNow, puis sélectionnez la vignette du connecteur.

      4. Dans le menu de navigation supérieur, sélectionnez Settings » Authentication.

        La section Authentication indique l’objet secret, par exemple : CONNECTORS_UI.SERVICENOW_GZSTZTP0KHD.SECRET.

    2. Pour obtenir le nom complet de l’objet secret à l’aide de la commande SQL, interrogez la vue CONNECTOR_CONFIGURATION :

      SELECT value FROM connector_configuration WHERE config_key = 'secret';
      
      Copy
  2. Interrompez le connecteur.

  3. Mettez à jour l’objet secret en exécutant la commande ALTER SECRET en modifiant le paramètre PASSWORD.

  4. Reprenez le connecteur.

    Le mot de passe est maintenant mis à jour et utilisé par le connecteur.

Note

Comme pour la modification de mot de passe, vous avez la possibilité de mettre à jour le nom d’utilisateur à l’aide de la commande ALTER SECRET. Il suffit de remplacer le paramètre USERNAME par le nouveau nom d’utilisateur. Avant de modifier le nom d’utilisateur, assurez-vous que le nouveau nom d’utilisateur a, au minimum, les mêmes privilèges que le précédent, sinon le connecteur risque de ne pas fonctionner correctement.

Mise à jour de la connexion à l’instance ServiceNow®

Il est possible de mettre à jour la connexion à l’instance ServiceNow®. Cela permet de modifier l’intégration d’accès externe et le secret utilisés par le connecteur. Cela permet également de résoudre le problème de détachement du secret de l’UDF d’accès externe dans le connecteur.

La configuration de la connexion peut être mise à jour à l’aide de la procédure suivante :

CALL UPDATE_CONNECTION_CONFIGURATION({
  'service_now_url': '<servicenow_base_url>',
  'secret': '<secret_name>',
  'external_access_integration': '<external_access_integration_name>'
});
Copy

Où :

servicenow_base_url

Spécifie l’URL de l’instance ServiceNow® que le connecteur doit utiliser. L’URL doit être définie sur la même valeur que lors de l’installation du connecteur et doit se présenter au format suivant :

https://<servicenow_instance_name>.service-now.com
Copy

La modification de l’URL de l’instance ServiceNow® n’est pas prise en charge.

secret_name

Spécifie le nom complet de l”objet secret contenant les identifiants de connexion pour s’authentifier auprès de ServiceNow®.

Vous devez spécifier le nom complet de l’objet secret au format suivant :

<database_name>.<schema_name>.<secret_name>
Copy

Les noms de la base de données, du schéma et du secret doivent être des identificateurs d’objets valides.

external_access_integration_name

Spécifie le nom de l”intégration d’accès externe de ServiceNow®.

Le nom de l’intégration doit être un identificateur d’objet valide.

Par exemple, pour mettre à jour la connexion à une instance ServiceNow® qui :

  • Possède l’URL https://myinstance.service-now.com.

  • Utilise le secret stocké dans secretsdb.apiauth.servicenow_creds_oauth_code.

  • Utilise l’intégration d’accès externe nommée servicenow_external_access_integration.

Exécutez la commande suivante :

CALL UPDATE_CONNECTION_CONFIGURATION({
  'service_now_url': 'https://myinstance.service-now.com',
  'secret': 'SECRETSDB.APIAUTH.SERVICENOW_CREDS_OAUTH_CODE',
  'external_access_integration': 'SERVICENOW_API_INTEGRATION'
});
Copy

La mise à jour de la configuration ne peut être effectuée que par un utilisateur ayant le rôle d’application ADMIN. En outre, pour que la procédure puisse être exécutée, il faut que le connecteur soit à l’état paused. Voir Mise en pause du connecteur.

Exportation de l’état du connecteur

Il est possible d’exporter un instantané de l’état et de la configuration actuels du connecteur. L’instantané avec l’état de connecteur exporté est utile lors de la réinstallation du connecteur pour préserver les tables déjà activées et l’état d’ingestion, ou lorsque la réplication du schéma de destination vers la région de basculement est configurée pour faciliter la reprise après sinistre.

L’état peut être exporté à l’aide de la procédure suivante :

CALL EXPORT_CONNECTOR_STATE();
Copy

La procédure crée une nouvelle table __CONNECTOR_STATE_EXPORT dans le schéma de destination avec un état exporté. Pour effectuer une exportation, il faut que les conditions suivantes soient remplies :

  • L’exportation ne peut être effectuée que par un utilisateur ayant le rôle d’application ADMIN.

  • Il n’existe pas de rechargement de table en cours.

Note

La table __CONNECTOR_STATE_EXPORT contient toutes les informations nécessaires pour restaurer l’état du connecteur lors de la réinstallation, mais il convient de noter qu’il manque certaines informations :

  • La base de données et le schéma de destination, l’entrepôt, le rôle de lecteur de données, l’URL ServiceNow, l’objet secret, l’intégration d’accès externe et le nom de la table de journal (s’il est configuré) ne sont pas exportés. Ces informations doivent être fournies de nouveau lors de la réinstallation du connecteur. Cela peut être l’occasion de modifier, par exemple, l’objet secret ou le nom de la table de journal utilisé(e) par le connecteur, à condition qu’après la réinstallation, la même instance ServiceNow et le même schéma de destination soient utilisés.

  • Pour chaque table ingérée et chaque mode d’ingestion, seul l’état d’ingestion le plus récent est exporté. Par conséquent, après l’importation de l’état du connecteur, les données historiques et les statistiques ne seront pas disponibles.

La configuration est également automatiquement exportée chaque fois que le connecteur déclenche l’ingestion en fonction de la planification configurée, à condition que les conditions suivantes soient remplies :

  • Au moins une table est activée pour l’ingestion.

  • Il n’existe pas de rechargement de table en cours.

Désinstallation de l’application

Cette section explique comment désinstaller l’application avec Snowsight et avec des feuilles de calcul et comment retirer les objets créés par le connecteur, mais qui doivent être retirés intentionnellement par l’utilisateur.

Désinstallation de l’application à l’aide de Snowsight

  1. Connectez-vous à Snowsight en tant qu’utilisateur ayant le rôle ACCOUNTADMIN.

  2. Dans le menu de navigation, sélectionnez Data Products » Apps.

  3. Recherchez Snowflake Connector for ServiceNow, puis sélectionnez le menu à trois points pour ouvrir la vue contextuelle et sélectionnez Uninstall.

  4. Si toutes les données ingérées qui se trouvent dans la base de données de destination doivent être préservées, sélectionnez Transfer object ownership to another role et le rôle qui doit devenir propriétaire de tous les objets appartenant à l’application. Sinon, sélectionnez Delete all objects pour retirer toutes les données.

    Note

    Pour voir quels objets seraient transférés au rôle sélectionné (ou retirés), développez le menu Show objects.

  5. Sélectionnez Uninstall pour confirmer les modifications. L’application du connecteur est maintenant désinstallée.

Désinstallation de l’application à l’aide de feuilles de calcul

Les données ingérées par le connecteur restent dans la base de données et le schéma de destination sélectionnés, qui appartiennent au rôle utilisé pour l’installation du connecteur (il s’agira généralement de ACCOUNTADMIN). Cependant, toutes les vues et tables réceptrices contenant vos données ServiceNow® dans le schéma de destination appartiennent à l’application Snowflake Connector for ServiceNow®V2. Par conséquent, si vous désinstallez le connecteur avant de transférer la propriété de ces tables et vues à un rôle de compte, elles seront également supprimées.

Note

Si vous ne souhaitez pas que les données soient supprimées en même temps que le connecteur, transférez la possession de toutes les tables et vues du schéma de destination à un rôle de compte et révoquez les autorisations actuelles de l’application.

Pour éviter toute perturbation dans les pipelines existants qui utilisent des données ingérées, nous recommandons que tous les pipelines utilisent un rôle de propriétaire de données dédié pour accéder aux données, qui devrait être temporairement propriétaire des données.

Si vous avez accordé des privilèges supplémentaires sur les tables et les vues du schéma de destination dont dépendent vos pipelines, vous pouvez exécuter la requête de transfert de possession ci-dessous avec la clause COPY CURRENT GRANTS au lieu de REVOKE CURRENT GRANTS pour conserver ces autorisations.

Pour transférer la propriété de toutes les tables et vues du schéma de destination à un rôle de compte, exécutez les requêtes suivantes :

USE ROLE ACCOUNTADMIN;

GRANT OWNERSHIP ON ALL TABLES IN SCHEMA <destination_database>.<destination_schema>
TO ROLE <account_role>
REVOKE CURRENT GRANTS;

GRANT OWNERSHIP ON ALL VIEWS IN SCHEMA <destination_database>.<destination_schema>
TO ROLE <account_role>
REVOKE CURRENT GRANTS;
Copy

Pour vous assurer que le connecteur ne possède pas d’objets que vous ne souhaitez pas supprimer, exécutez la requête suivante :

SHOW OBJECTS OWNED BY APPLICATION <application_name>;
Copy

Pour finir, pour supprimer l’application du connecteur, exécutez la requête suivante :

DROP APPLICATION <application_name>;
Copy

Avertissement

Si vous avez décidé de ne pas retirer au connecteur la propriété des tables et des vues du schéma de destination, vous pouvez exécuter cette requête pour les supprimer avec le connecteur à la place :

DROP APPLICATION <application_name> CASCADE;
Copy

Suppression des objets créés lors de l’installation

La suppression de la base de données du connecteur ne supprime pas les données ingérées qui sont stockées dans une base de données distincte ni les objets qui ont été créés lors de l’installation effectuée avec Snowsight.

Pour voir les objets créés lors de l’installation, procédez comme suit :

  1. Connectez-vous à Snowsight en tant qu’utilisateur ayant le rôle ACCOUNTADMIN.

  2. Dans le menu de navigation, sélectionnez Data Products » Apps.

  3. Recherchez le Snowflake Connector for ServiceNow, puis sélectionnez-le.

  4. Dans le menu de navigation supérieur, sélectionnez Settings » Authentication.

    Secret, External Access Integration et Security Integration sont les objets que vous devez retirer manuellement. En plus de ces objets, il peut également exister un objet Network Rule qui reste dans le même schéma que le secret (si l’application a été installée à l’aide de Snowsight).

    Avertissement

    La base de données et le schéma du secret et de la règle de réseau peuvent également être supprimés. Attention, toutefois, si vous utilisez également d’autres connecteurs de Snowflake, par exemple Snowflake Connector for Google Analytics Raw Data. Les objets de cette application peuvent également se trouver dans la même base de données.

Pour supprimer ces objets, exécutez la commande DROP .

Par exemple, pour supprimer le secret, exécutez l’instruction DROP SECRET.

Mise à niveau du connecteur

Le connecteur est automatiquement mis à niveau, ce qui signifie que l’utilisateur n’a pas besoin d’effectuer quoi que ce soit pour mettre une application à jour.

Adaptation de la taille du connecteur

S’il existe un grand nombre de tables ServiceNow® à ingérer et si vous souhaitez augmenter le nombre de tables ingérées simultanément, vous pouvez remplacer le paramètre par :

CALL CONFIGURE_CONCURRENCY(<number>);
Copy

Où :

number

Spécifie le nombre maximal de travailleurs pouvant ingérer des tables simultanément. Par défaut, cette valeur est définie sur 10.

L’augmentation de la simultanéité doit être envisagée en même temps que la modification de la taille de l’entrepôt utilisé pour l’ingestion de données. Si vous constatez des ralentissements, tentez de redimensionner l’entrepôt. Pour plus d’informations, voir Utilisation d’entrepôts.

Avertissement

L’augmentation de la simultanéité peut entraîner une surcharge de l’instance ServiceNow®, ce qui se traduira par une baisse générale des performances et entraînera des erreurs d’ingestion. Comparez les performances et la stabilité du connecteur avant et après tout changement de taille afin de trouver les meilleurs paramètres.

Réinstallation du connecteur avec la même base de données et le même schéma pour les données ServiceNow®

Pour réinstaller le connecteur, procédez comme suit :

  1. Interrogez la vue TABLES_STATE et vérifiez qu’aucune des tables n’est actuellement à l’état RELOADING :

    SELECT TABLE_NAME FROM TABLES_STATE WHERE STATUS = 'RELOADING';
    
    Copy
  2. Si des tables sont en cours de rechargement, attendez la fin des rechargements ou annulez-les.

  3. Arrêtez le connecteur en appelant la procédure stockée suivante :

    CALL PAUSE_CONNECTOR();
    
    Copy
  4. Exportez l’état et la configuration du connecteur. Voir cette section pour des informations détaillées.

    Important

    Il est recommandé d’exporter l’état et la configuration d’un connecteur avant de supprimer l’application de connecteur. Cela permettra de conserver toutes les options personnalisées (par exemple, les tables activées à des fins de synchronisation et leurs planifications) et l’état avec les changements les plus récents dans la nouvelle installation.

    Si vous avez déjà retiré le connecteur, mais laissé intacts la base de données et le schéma contenant les données ingérées, vous pouvez toujours réinstaller le connecteur en vous basant sur l’état automatiquement exporté, mais le connecteur réinstallé risque de répéter l’ingestion de certains enregistrements.

  5. Retirez le connecteur, en transférant la possession des tables et des vues dans le schéma de destination.

  6. Réinstallez le connecteur comme suit :

Pendant le processus d’installation :

  • Fournir la base de données et le schéma précédemment utilisés.

    Après l’installation, le connecteur détectera que la base de données et le schéma contiennent des données ingérées et poursuivra l’ingestion à partir du point où elle avait été laissée avant la réinstallation. Si vous avez exporté l’état du connecteur et s’il est importé correctement lors de l’installation, les tables précédemment ingérées seront automatiquement activées avec les mêmes planifications et la même configuration. Sinon, vous devrez activer manuellement toutes les tables et, par exemple, configurer leurs planifications pour restaurer l’ingestion.

    Lors de la réinstallation à l’aide de commandes SQL, n’oubliez pas de transférer la possession des vues et des tables du schéma de destination au connecteur, comme décrit dans le guide d’installation SQL. Sinon, le connecteur n’aura pas accès à ces tables et ces vues, ce qui l’empêchera de reprendre l’ingestion.

  • Fournissez le même nom d’instance ServiceNow®.

  • Pour les autres arguments, vous pouvez réutiliser les objets que vous avez créés lors de l’installation du connecteur, ou utiliser de nouveaux objets.