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. Le service de transfert de données BigQuery vous permet de planifier des tâches de transfert récurrentes qui ajoutent vos dernières données ServiceNow à BigQuery.

Limites

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

  • Le connecteur ServiceNow n'est compatible qu'avec l'API ServiceNow Table.
  • 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 décaler les heures de début de vos transferts pour éviter qu'ils ne se chevauchent.
  • Pour améliorer les performances du transfert de données, nous vous recommandons de limiter le nombre de composants à 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 seule configuration de transfert ne peut prendre en charge qu'une seule exécution de transfert de données à un moment donné. Si une deuxième exécution de transfert de données est planifiée avant la fin de la première, seule la première exécution de transfert de données sera effectuée. Toutes les autres exécutions de transfert de données qui chevauchent la première seront ignorées.
    • 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émentaux 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 composants dont les colonnes de filigrane sont valides.
  • Les valeurs d'une colonne de filigrane doivent augmenter de manière 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 que l'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 mise en cluster à l'aide de la clé primaire fournie et est soumise aux limites des tables en cluster.
  • Lorsque vous mettez à jour une configuration de transfert existante pour la première fois en mode d'ingestion incrémentielle, le premier transfert de données après cette mise à jour transfère toutes les données disponibles à partir 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 comment 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. Les transferts incrémentiels sont disponibles en version preview.

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 (aperçu) pour ne transférer que les données modifiées depuis le dernier transfert de données, au lieu de charger l'intégralité de l'ensemble de données à chaque transfert. Si vous sélectionnez Incrémentiel pour votre transfert de données, vous devez spécifier les modes 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 recherchant 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 par rapport à 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 est mise à jour chaque fois qu'une ligne est modifiée. Nous vous recommandons d'utiliser des colonnes semblables à celles de type UPDATED_AT ou LAST_MODIFIED.

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

    Sélectionnez les colonnes contenant des valeurs non nulles uniques pour toutes les lignes du tableau. Nous vous recommandons d'utiliser des colonnes qui incluent 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 immuables basés sur le temps.

    Pour éviter toute perte ou corruption de données, les colonnes de clé primaire que vous sélectionnez doivent contenir 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înera 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 lancer un transfert ServiceNow, vous devez disposer des identifiants appropriés pour vous connecter à l'instance ServiceNow.

    • Pour obtenir vos identifiants pour une instance ServiceNow pour les développeurs, connectez-vous au portail ServiceNow pour les développeurs. 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 ServiceNow de production ou de sous-production, contactez votre administrateur client ServiceNow afin de lui 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 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 dans BigQuery en configurant un 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 modifications apportées au mappage des types de données, consultez 16 mars 2027.
    • Pour Type d'ingestion, sélectionnez Complet ou Incrémentiel.
    • 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 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 pour 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 avec 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. Les valeurs acceptées sont les suivantes :
    • 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 du service ServiceNow source vers la destination, en déterminant si un rechargement complet de l'ensemble de données ou une mise à jour incrémentielle efficace est effectué.
    writeMode Facultatif Si vous utilisez l'ingestion incrémentielle, cette option 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, le champ de la table source (généralement datetime) est utilisé pour suivre le dernier point de synchronisation réussi. Cela permet au connecteur d'interroger et de transférer efficacement uniquement les enregistrements qui ont été créés ou modifiés depuis cette heure spécifique. Ce champ est obligatoire pour les transferts incrémentaux.
    primaryKeys Facultatif Si vous utilisez l'ingestion incrémentielle, il s'agit de la colonne ou de la combinaison de colonnes uniques utilisées pour 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 la valeur sur true (par défaut) pour utiliser l'ancien mappage des types de données. Définissez la valeur 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 composants 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 du transfert, le connecteur ServiceNow déclenche automatiquement une exécution du transfert en fonction de l'option de planification que vous avez choisie. À chaque exécution du 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 lancer une exécution de remplissage.

Mappage des types de données

Le tableau suivant montre comment les types de données sont mappés lors d'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 lors de 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 la page Tarifs du service de transfert de données.

Étapes suivantes