Charger des données ServiceNow dans BigQuery

Vous pouvez charger des données de ServiceNow vers BigQuery à l'aide du service de transfert de données BigQuery pour le connecteur ServiceNow. Avec le service de transfert de données BigQuery, vous pouvez planifier des jobs de transfert récurrents qui ajoutent vos dernières données de ServiceNow à BigQuery.

Limites

Les transferts de données ServiceNow sont soumis aux limites suivantes :

  • Le connecteur ServiceNow n'est compatible qu'avec l'API de table ServiceNow.
  • Nous vous déconseillons d'exécuter des transferts de données simultanés sur la même instance ServiceNow. Cela peut entraîner des retards ou des échecs en raison de la charge sur l'instance ServiceNow.
    • Nous vous recommandons de planifier les heures de début de vos transferts de manière à éviter qu'ils ne se chevauchent.
  • Pour améliorer les performances de transfert de données, nous vous recommandons de limiter le nombre d'éléments à 20 par transfert de données.
  • L'intervalle minimum entre deux transferts de données récurrents est de 15 minutes. L'intervalle par défaut entre transferts récurrents est de 24 heures.
  • Une configuration de transfert ne peut prendre en charge qu'une seule exécution de transfert de données à un moment donné. Si un deuxième transfert de données est planifié avant la fin du premier, seul le premier transfert de données est effectué, tandis que les autres transferts de données qui se chevauchent avec le premier sont ignorés.
    • Pour éviter les transferts ignorés dans une même configuration de transfert, nous vous recommandons d'augmenter la durée entre les transferts de données volumineux en configurant la fréquence de répétition.
  • Pour utiliser un rattachement de réseau avec ce transfert de données, vous devez d'abord créer un rattachement de réseau en définissant une adresse IP statique.

Limites des transferts incrémentiels

Les transferts ServiceNow incrémentiels sont soumis aux limites suivantes :

  • Vous ne pouvez choisir que DATETIME colonnes comme colonnes de filigrane.
  • L'ingestion incrémentielle n'est possible que pour les éléments comportant des colonnes de filigrane valides.
  • Les valeurs d'une colonne de filigrane doivent être croissantes de façon monotone.
  • Les transferts incrémentiels ne peuvent pas synchroniser les opérations de suppression dans la table source.
  • Une même configuration de transfert ne peut prendre en charge qu'une ingestion incrémentielle ou complète.
  • Vous ne pouvez pas mettre à jour les objets de la liste asset après la première exécution d'ingestion incrémentielle.
  • Vous ne pouvez pas modifier le mode d'écriture dans une configuration de transfert après la première exécution d'ingestion incrémentielle.
  • Vous ne pouvez pas modifier la colonne de filigrane ni la clé primaire après la première exécution d'ingestion incrémentielle.
  • La table BigQuery de destination est groupée à l'aide de la clé primaire fournie et est soumise aux limitations des tables groupées.
  • Lorsque vous mettez à jour une configuration de transfert existante pour passer au mode d'ingestion incrémentielle pour la première fois, le premier transfert de données après cette mise à jour transfère toutes les données disponibles de votre source de données. Tous les transferts de données incrémentiels ultérieurs ne transféreront que les lignes nouvelles et mises à jour de votre source de données.

Options d'ingestion de données

Ces sections décrivent les options d'ingestion de données pour configurer un transfert de données ServiceNow.

Transferts complets ou incrémentiels

Vous spécifiez la façon dont les données sont chargées dans BigQuery en sélectionnant la préférence d'écriture Complète ou Incrémentielle dans la configuration du transfert lorsque vous configurez un transfert ServiceNow.

Vous pouvez configurer un transfert de données complet pour transférer toutes les données de vos ensembles de données ServiceNow à chaque transfert de données.

Vous pouvez également configurer un transfert de données incrémentiel pour ne transférer que les données qui ont été modifiées depuis le dernier transfert de données, au lieu de charger l'ensemble de données complet à chaque transfert. Si vous sélectionnez Incrémentiel pour votre transfert de données, vous devez spécifier le mode d'écriture Ajouter ou Upsert pour définir la façon dont les données sont écrites dans BigQuery lors d'un transfert de données incrémentiel. Les sections suivantes décrivent les modes d'écriture disponibles.

Mode d'écriture upsert

Le mode d'écriture "upsert" met à jour une ligne ou en insère une nouvelle dans votre table de destination en vérifiant la présence d'une clé primaire. Vous pouvez spécifier une clé primaire pour permettre au connecteur ServiceNow de déterminer les modifications nécessaires pour que votre table de destination reste à jour avec votre table source. Si la clé primaire spécifiée est présente dans la table BigQuery de destination lors d'un transfert de données, le connecteur ServiceNow met à jour cette ligne avec les nouvelles données de la table source. Si aucune clé primaire n'est présente lors d'un transfert de données, le connecteur ServiceNow insère une nouvelle ligne.

Lorsque vous sélectionnez le mode upsert, vous devez sélectionner une colonne de filigrane et une clé primaire :

  • Une colonne de filigrane est requise pour que le connecteur ServiceNow puisse suivre les modifications apportées à la table source.

    Sélectionnez une colonne de filigrane qui se met à jour chaque fois qu'une ligne est modifiée. Nous vous recommandons d'utiliser des colonnes semblables à celles de UPDATED_AT ou LAST_MODIFIED.

  • La clé primaire peut être une ou plusieurs colonnes de votre tableau qui sont requises pour que le connecteur ServiceNow détermine s'il doit insérer ou mettre à jour une ligne.

    Sélectionnez les colonnes qui contiennent des valeurs non nulles et uniques pour toutes les lignes du tableau. Nous vous recommandons d'utiliser des colonnes incluant des identifiants générés par le système, des codes de référence uniques (par exemple, des ID à incrémentation automatique) ou des ID de séquence temporels immuables.

    Pour éviter toute perte ou corruption de données, les colonnes de clé primaire que vous sélectionnez doivent avoir des valeurs uniques. Si vous avez des doutes sur l'unicité de la colonne de clé primaire choisie, nous vous recommandons d'utiliser l'ingestion complète.

Comportement d'ingestion incrémentielle

Lorsque vous modifiez le schéma de table dans votre source de données, les transferts de données incrémentiels à partir de ces tables sont reflétés dans BigQuery de la manière suivante :

Modifications apportées à la source de données Comportement d'ingestion incrémentielle
Ajouter une colonne Une colonne est ajoutée à la table BigQuery de destination. Les enregistrements précédents pour cette colonne auront des valeurs nulles.
Supprimer une colonne La colonne supprimée reste dans la table BigQuery de destination. Les nouvelles entrées de cette colonne supprimée sont renseignées avec des valeurs nulles.
Modifier le type de données d'une colonne Le connecteur n'accepte que les conversions de types de données compatibles avec l'instruction LDD ALTER COLUMN. Toute autre conversion de type de données entraîne l'échec du transfert de données.

Si vous rencontrez des problèmes, nous vous recommandons de créer une configuration de transfert.

Renommer une colonne La colonne d'origine reste telle quelle dans la table BigQuery de destination, tandis qu'une nouvelle colonne est ajoutée à la table de destination avec le nom modifié.

Avant de commencer

Avant de créer un transfert de données ServiceNow, procédez comme suit pour ServiceNow et BigQuery.

Prérequis pour ServiceNow

  • Pour accéder aux API ServiceNow, créez des identifiants OAuth.
  • Les applications ServiceNow suivantes doivent toutes être activées dans l'instance ServiceNow :

  • Pour démarrer un transfert ServiceNow, vous devez disposer des identifiants appropriés pour vous connecter à l'instance ServiceNow.

    • Pour obtenir vos identifiants pour une instance de développeur ServiceNow, connectez-vous au portail des développeurs ServiceNow. Vous pouvez utiliser le nom d'utilisateur et le mot de passe indiqués sur la page Gérer le mot de passe de l'instance. Pour savoir comment réinitialiser votre mot de passe ServiceNow, consultez Réinitialisation du mot de passe.
    • Pour obtenir vos identifiants pour une instance de production ou de sous-production ServiceNow, contactez votre administrateur client ServiceNow pour demander le nom d'utilisateur et le mot de passe.

Prérequis pour BigQuery

Rôles BigQuery requis

Pour obtenir les autorisations nécessaires pour créer un transfert de données du Service de transfert de données BigQuery, demandez à votre administrateur de vous accorder le rôle IAM Administrateur BigQuery (roles/bigquery.admin) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour créer un transfert de données du service de transfert de données BigQuery. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer un transfert de données du service de transfert de données BigQuery :

  • Autorisations du service de transfert de données BigQuery :
    • bigquery.transfers.update
    • bigquery.transfers.get
  • Autorisations BigQuery :
    • bigquery.datasets.get
    • bigquery.datasets.getIamPolicy
    • bigquery.datasets.update
    • bigquery.datasets.setIamPolicy
    • bigquery.jobs.create

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Pour en savoir plus, consultez Accorder l'accès bigquery.admin.

Configurer un transfert de données ServiceNow

Ajoutez des données ServiceNow à BigQuery en configurant une configuration de transfert à l'aide de l'une des options suivantes :

Console

  1. Accédez à la page "Transferts de données" dans la console Google Cloud .

    Accéder à la page Transferts de données

  2. Cliquez sur Créer un transfert.

  3. Dans le champ Source de la section Type de source, sélectionnez ServiceNow.

  4. Dans la section Data source details (Détails de la source de données), procédez comme suit :

    • (Facultatif) Sous Rattachement de réseau, sélectionnez un rattachement de réseau dans le menu déroulant ou cliquez sur Créer un rattachement de réseau.
    • Dans le champ ID d'instance, saisissez l'ID d'instance ServiceNow. Vous pouvez l'obtenir à partir de votre URL ServiceNow (par exemple, https://INSTANCE_ID.service-now.com).
    • (Facultatif) Dans le champ ServiceNow Cloud Type (Type de cloud ServiceNow), sélectionnez le type de cloud pour votre compte ServiceNow :
      • Sélectionnez Commercial (Professionnel) si l'URL de votre instance ServiceNow suit le modèle https://INSTANCE_ID.service-now.com. Il s'agit de la valeur par défaut.
      • Sélectionnez Government Community Cloud (GCC) si l'URL de votre instance ServiceNow suit le modèle https://INSTANCE_ID.servicenowservices.com.
    • Dans le champ Nom d'utilisateur, saisissez le nom d'utilisateur ServiceNow à utiliser pour la connexion.
    • Dans le champ Mot de passe, saisissez le mot de passe ServiceNow.
    • Dans le champ ID client, saisissez l'ID client à partir de vos identifiants OAuth. Pour générer des identifiants, consultez Créer des identifiants OAuth.
    • Dans le champ Code secret du client, saisissez le code secret du client issu de vos identifiants OAuth.
    • Pour Activer l'ancien mappage, sélectionnez true (par défaut) pour utiliser l'ancien mappage des types de données. Sélectionnez false pour utiliser le nouveau mappage des types de données. Pour en savoir plus sur les mises à jour du mappage des types de données, consultez la section 16 mars 2027.
    • Pour Type d'ingestion, sélectionnez Complet ou Incrémentiel.
      • Si vous sélectionnez Incrémentiel, pour Mode d'écriture, sélectionnez Faire un upsert. Pour en savoir plus sur les modes d'écriture, consultez Transferts complets ou incrémentiels.
    • Dans le champ Tables ServiceNow à transférer, cliquez sur Parcourir :
      • Sélectionnez les objets à transférer vers l'ensemble de données de destination BigQuery. Vous pouvez également saisir manuellement dans ce champ les objets à inclure dans le transfert de données.
      • Si vous avez sélectionné Faire un upsert comme mode d'écriture incrémentielle, vous devez sélectionner une colonne comme colonne de filigrane, puis sélectionner une ou plusieurs colonnes comme clé primaire.
    • Pour Type de valeur, choisissez l'une des options suivantes :
      • Pour transférer les valeurs stockées dans la base de données, sélectionnez Réel.
      • Pour transférer les valeurs d'affichage des colonnes, sélectionnez Display.
  5. Dans la section Paramètres de destination, pour le champ Ensemble de données, sélectionnez l'ensemble de données que vous avez créé pour stocker vos données.

  6. Dans la section Nom de la configuration de transfert, sous Nom à afficher, saisissez le nom du transfert de données.

  7. Dans la section Options de programmation, procédez comme suit :

    • Dans la liste Fréquence de répétition, sélectionnez une option pour spécifier la fréquence d'exécution de ce transfert de données. Pour spécifier une fréquence de répétition personnalisée, sélectionnez Personnalisée. Si vous sélectionnez À la demande, le transfert de données s'exécute lorsque vous le déclenchez manuellement.
    • Le cas échéant, sélectionnez Commencer ou Commencer à l'heure définie, puis indiquez une date de début et une heure d'exécution.
  8. Facultatif : dans la section Options de notification, procédez comme suit :

    • Pour activer les notifications par e-mail, cliquez sur le bouton Notification par e-mail. Lorsque vous activez cette option, l'administrateur du transfert reçoit une notification par e-mail si l'exécution du transfert échoue.
    • Pour activer les notifications d'exécution de transfert Pub/Sub pour ce transfert de données, cliquez sur le bouton Notifications Pub/Sub. Vous pouvez sélectionner le nom de votre sujet ou cliquer sur Créer un sujet pour en créer un.
  9. Cliquez sur Enregistrer.

bq

Saisissez la commande bq mk, puis spécifiez l'indicateur de création de transfert --transfer_config :

bq mk
    --transfer_config
    --project_id=PROJECT_ID
    --data_source=DATA_SOURCE
    --display_name=DISPLAY_NAME
    --target_dataset=DATASET
    --params='PARAMETERS'

Remplacez les éléments suivants :

  • PROJECT_ID (facultatif) : ID de votre projet Google Cloud . Si aucun ID de projet n'est spécifié, le projet par défaut est utilisé.
  • DATA_SOURCE : source de données (par exemple, servicenow).
  • DISPLAY_NAME : nom à afficher de la configuration de transfert. Ce nom peut correspondre à toute valeur permettant d'identifier le transfert de données si vous devez le modifier ultérieurement.
  • DATASET : ensemble de données cible de la configuration de transfert.
  • PARAMETERS correspond aux paramètres de la configuration de transfert créée, au format JSON. Exemple : --params='{"param":"param_value"}'. Voici les paramètres d'un transfert de données ServiceNow :

    Paramètre ServiceNow Obligatoire ou facultatif Description
    connector.networkAttachment Facultatif Nom du rattachement de réseau à utiliser pour assurer la connectivité à l'instance ServiceNow.
    connector.instanceId Obligatoire ID de l'instance ServiceNow
    connector.authentication.username Obligatoire Nom d'utilisateur de l'instance ServiceNow de l'utilisateur.
    connector.authentication.password Obligatoire Mot de passe de l'instance ServiceNow de l'utilisateur.
    connector.authentication.oauth.clientId Obligatoire ID client pour l'authentification OAuth auprès de l'instance ServiceNow.
    connector.authentication.oauth.clientSecret Obligatoire Code secret du client pour l'authentification OAuth avec l'instance ServiceNow.
    connector.instanceCloudType Facultatif Spécifiez le type de cloud de votre compte ServiceNow. Voici les valeurs acceptées :
    • COMMERCIAL_CLOUD, si l'URL de votre instance ServiceNow suit le modèle https://INSTANCE_ID.service-now.com
    • GOVERNMENT_COMMUNITY_CLOUD si l'URL de votre instance ServiceNow suit le modèle https://INSTANCE_ID.servicenowservices.com
    ingestionType Facultatif Définit la méthode de transfert des données de la source ServiceNow vers la destination, en déterminant si un rechargement complet de l'ensemble de données ou une actualisation incrémentielle efficace est effectuée.
    writeMode Facultatif Si vous utilisez l'ingestion incrémentielle, détermine la stratégie de synchronisation pour l'ingestion incrémentielle. Ce champ est obligatoire pour les transferts incrémentaux. La valeur acceptée est WRITE_MODE_UPSERT.
    assets Obligatoire Liste des noms des tables ServiceNow à transférer depuis ServiceNow dans le cadre du transfert.
    watermarkColumns Facultatif Si vous utilisez l'ingestion incrémentielle, champ de la table source (généralement datetime) utilisé pour suivre le dernier point de synchronisation réussi, ce qui permet au connecteur d'interroger et de transférer efficacement uniquement les enregistrements créés ou modifiés depuis ce moment précis. Ce champ est obligatoire pour les transferts incrémentaux.
    primaryKeys Facultatif Si vous utilisez l'ingestion incrémentielle, colonne ou combinaison de colonnes unique permettant d'identifier de manière unique chaque ligne de la table source. Ce champ est obligatoire pour les transferts incrémentaux.
    valueType Facultatif Contrôle la façon dont des types de données spécifiques de ServiceNow sont mappés aux types de données BigQuery.
    connector.legacyMapping Obligatoire Définissez cette option sur true (par défaut) pour utiliser l'ancien mappage des types de données. Définissez cette option sur false pour utiliser le nouveau mappage des types de données. Si vous effectuez un transfert incrémentiel, cette valeur doit être false. Pour en savoir plus sur les modifications apportées au mappage des types de données, consultez 16 mars 2027.

    Lorsque vous spécifiez plusieurs éléments lors d'un transfert incrémentiel, les valeurs des champs watermarkColumns et primaryKeys correspondent à la position des valeurs dans le champ assets. Assurez-vous que l'ordre des tables et de leurs colonnes respectives est conservé de manière cohérente dans toutes les listes de configuration associées.

    Par exemple, la commande suivante crée un transfert de données ServiceNow dans le projet par défaut avec tous les paramètres requis :

      bq mk
        --transfer_config
        --target_dataset=mydataset
        --data_source=servicenow
        --display_name='My Transfer'
        --params='{"connector.authentication.oauth.clientId": "1234567890",
            "connector.authentication.oauth.clientSecret":"ABC12345",
            "connector.authentication.username":"user1",
            "connector.authentication.password":"abcdef1234",
            "connector.instanceId":"dev-instance",
            "connector.networkAttachment": "projects/dev-project1/regions/us-central1/networkattachments/na1"}'
    

    La commande suivante crée un transfert de données ServiceNow incrémentiel dans le projet par défaut et utilise le mode d'écriture UPSERT.

      bq mk
          --transfer_config
          --target_dataset=mydataset
          --data_source=servicenow
          --display_name='My Transfer'
          --params='{"assets": ["incident", "change_request"],
              "connector.authentication.oauth.clientId": "1234567890",
              "connector.authentication.oauth.clientSecret":"ABC12345",
              "connector.authentication.username":"user1",
              "connector.authentication.password":"abcdef1234",
              "connector.instanceId":"dev-instance",
              "ingestionType":"incremental",
              "writeMode":"WRITE_MODE_UPSERT",
              "watermarkColumns":["sys_updated_on","sys_updated_on"],
              "primaryKeys":[["sys_id"], ["sys_id"]]}'
    

API

Utilisez la méthode projects.locations.transferConfigs.create et fournissez une instance de la ressource TransferConfig.

Lorsque vous enregistrez la configuration de transfert, le connecteur ServiceNow déclenche automatiquement une exécution de transfert en fonction de l'option de planification que vous avez choisie. À chaque exécution de transfert, le connecteur ServiceNow transfère toutes les données disponibles de ServiceNow vers BigQuery.

Pour exécuter manuellement un transfert de données en dehors de votre calendrier habituel, vous pouvez démarrer une exécution de remplissage.

Mappage des types de données

Le tableau suivant montre comment les types de données sont mappés dans un transfert de données ServiceNow :

Type de données ServiceNow Type de données BigQuery Type de données BigQuery mis à jour
decimal FLOAT64
integer INTEGER
boolean BOOLEAN
glide_date DATE
glide_date_time DATETIME
glide_list STRING ARRAY
glide_time INT64
reference STRING
currency STRING
sys_class_name STRING
domain_id STRING
domain_path STRING
guid STRING
translated_html STRING
journal STRING
string STRING
list STRING ARRAY

Résoudre les problèmes de transfert

Les sections suivantes décrivent les problèmes courants liés à la configuration d'un transfert de données ServiceNow.

Pour en savoir plus, consultez la page Résoudre les problèmes liés aux configurations de transfert.

Échec du transfert en raison de l'activation de ServiceNow

Un problème survient et entraîne l'échec des transferts de données lorsque les applications Approvisionnement, Catalogue de produits ou Gestion des contrats ne sont pas activées dans ServiceNow. Pour résoudre ce problème, activez les trois applications :

Un problème se produit lors de l'exécution du transfert

Un problème survient si l'exécution de transfert n'est pas créée comme prévu. Pour identifier le problème, procédez comme suit :

  • Vérifiez les identifiants du compte ServiceNow, tels que Nom d'utilisateur, Mot de passe, ID client et Code secret du client. sont valides.
  • Vérifiez que l'ID d'instance est l'ID valide de votre instance ServiceNow.

Autres erreurs

Pour en savoir plus sur les autres erreurs survenues lors d'un transfert de données ServiceNow, consultez Problèmes de transfert ServiceNow.

Tarifs

Pour en savoir plus sur les tarifs des transferts ServiceNow, consultez Tarifs du service de transfert de données.

Étapes suivantes