Carica i dati di ServiceNow in BigQuery

Puoi caricare i dati da ServiceNow a BigQuery utilizzando BigQuery Data Transfer Service per il connettore ServiceNow. Con BigQuery Data Transfer Service, puoi pianificare job di trasferimento ricorrenti che aggiungono i dati più recenti da ServiceNow a BigQuery.

Limitazioni

I trasferimenti di dati ServiceNow sono soggetti alle seguenti limitazioni:

  • Il connettore ServiceNow supporta solo l'API ServiceNow Table.
  • Non è consigliabile eseguire trasferimenti di dati simultanei sulla stessa istanza di ServiceNow. Ciò può causare ritardi o errori dovuti al carico sull'istanza ServiceNow.
    • Ti consigliamo di scaglionare gli orari di inizio dei trasferimenti per evitare sovrapposizioni.
  • Per migliorare il rendimento del trasferimento dei dati, ti consigliamo di limitare il numero di asset a 20 elementi per trasferimento.
  • L'intervallo di tempo minimo tra i trasferimenti di dati ricorrenti è di 15 minuti. L'intervallo predefinito per un trasferimento ricorrente è di 24 ore.
  • Una singola configurazione di trasferimento può supportare una sola esecuzione di trasferimento dei dati in un determinato momento. Nel caso in cui sia pianificato l'esecuzione di un secondo trasferimento di dati prima del completamento del primo, solo il primo trasferimento di dati viene completato, mentre gli altri trasferimenti di dati che si sovrappongono al primo vengono ignorati.
    • Per evitare trasferimenti ignorati all'interno di una singola configurazione di trasferimento, ti consigliamo di aumentare la durata di tempo tra i trasferimenti di grandi quantità di dati configurando la Frequenza di ripetizione.
  • Per utilizzare un collegamento di rete con questo trasferimento di dati, devi prima creare un collegamento di rete definendo un indirizzo IP statico.

Limitazioni del trasferimento incrementale

I trasferimenti incrementali di ServiceNow sono soggetti alle seguenti limitazioni:

  • Puoi scegliere solo DATETIME colonne come colonne filigrana.
  • L'importazione incrementale è supportata solo per gli asset con colonne della filigrana valide.
  • I valori in una colonna filigrana devono aumentare in modo monotono.
  • I trasferimenti incrementali non possono sincronizzare le operazioni di eliminazione nella tabella di origine.
  • Una singola configurazione di trasferimento può supportare solo l'importazione incrementale o completa.
  • Non puoi aggiornare gli oggetti nell'elenco asset dopo la prima esecuzione dell'importazione incrementale.
  • Non puoi modificare la modalità di scrittura in una configurazione di trasferimento dopo la prima esecuzione dell'importazione incrementale.
  • Non puoi modificare la colonna della filigrana o la chiave primaria dopo la prima esecuzione dell'importazione incrementale.
  • La tabella BigQuery di destinazione è in cluster utilizzando la chiave primaria fornita ed è soggetta alle limitazioni delle tabelle in cluster.
  • Quando aggiorni una configurazione di trasferimento esistente alla modalità di importazione incrementale per la prima volta, il primo trasferimento di dati dopo l'aggiornamento trasferisce tutti i dati disponibili dall'origine dati. I trasferimenti incrementali successivi dei dati trasferiranno solo le righe nuove e aggiornate dall'origine dati.

Opzioni di importazione dei dati

Queste sezioni descrivono le opzioni di importazione dati per configurare un trasferimento di dati ServiceNow.

Trasferimenti completi o incrementali

Specifichi come caricare i dati in BigQuery selezionando la preferenza di scrittura Completa o Incrementale nella configurazione del trasferimento quando configuri un trasferimento ServiceNow. I trasferimenti incrementali sono supportati in anteprima.

Puoi configurare un trasferimento di dati completo per trasferire tutti i dati dai tuoi set di dati ServiceNow a ogni trasferimento di dati.

In alternativa, puoi configurare un trasferimento dei dati incrementale (anteprima) per trasferire solo i dati modificati dall'ultimo trasferimento, anziché caricare l'intero set di dati a ogni trasferimento. Se selezioni Incrementale per il trasferimento dei dati, devi specificare le modalità di scrittura Accoda o Upsert per definire come i dati vengono scritti in BigQuery durante un trasferimento incrementale dei dati. Le sezioni seguenti descrivono le modalità di scrittura disponibili.

Modalità di scrittura upsert

La modalità di scrittura upsert aggiorna una riga o ne inserisce una nuova nella tabella di destinazione controllando una chiave primaria. Puoi specificare una chiave primaria per consentire al connettore ServiceNow di determinare le modifiche necessarie per mantenere la tabella di destinazione aggiornata con la tabella di origine. Se la chiave primaria specificata è presente nella tabella BigQuery di destinazione durante un trasferimento di dati, il connettore ServiceNow aggiorna la riga con i nuovi dati della tabella di origine. Se una chiave primaria non è presente durante un trasferimento di dati, il connettore ServiceNow inserisce una nuova riga.

Quando selezioni la modalità di upsert, devi selezionare una colonna watermark e una chiave primaria:

  • Per consentire al connettore ServiceNow di monitorare le modifiche nella tabella di origine, è necessaria una colonna filigrana.

    Seleziona una colonna filigrana che si aggiorna ogni volta che una riga viene modificata. Ti consigliamo colonne simili alla colonna UPDATED_AT o LAST_MODIFIED.

  • La chiave primaria può essere una o più colonne della tabella necessarie affinché il connettore ServiceNow determini se deve inserire o aggiornare una riga.

    Seleziona le colonne che contengono valori non nulli univoci in tutte le righe della tabella. Ti consigliamo colonne che includano identificatori generati dal sistema, codici di riferimento univoci (ad esempio ID a incremento automatico) o ID sequenza basati sul tempo immutabili.

    Per evitare potenziali perdite di dati o danneggiamenti dei dati, le colonne della chiave primaria che selezioni devono avere valori univoci. Se hai dubbi sull'unicità della colonna della chiave primaria scelta, ti consigliamo di utilizzare l'importazione completa.

Comportamento di importazione incrementale

Quando apporti modifiche allo schema della tabella nell'origine dati, i trasferimenti incrementali dei dati da queste tabelle vengono visualizzati in BigQuery nei seguenti modi:

Modifiche all'origine dati Comportamento di importazione incrementale
Aggiungere una nuova colonna Viene aggiunta una nuova colonna alla tabella BigQuery di destinazione. Tutti i record precedenti per questa colonna avranno valori null.
Eliminare una colonna La colonna eliminata rimane nella tabella BigQuery di destinazione. Le nuove voci di questa colonna eliminata vengono popolate con valori null.
Modificare il tipo di dati in una colonna Il connettore supporta solo le conversioni dei tipi di dati supportate dall'istruzione DDL ALTER COLUMN. Qualsiasi altra conversione del tipo di dati causa il mancato trasferimento dei dati.

In caso di problemi, ti consigliamo di creare una nuova configurazione del trasferimento.

Ridenominazione di una colonna La colonna originale rimane nella tabella BigQuery di destinazione così com'è, mentre alla tabella di destinazione viene aggiunta una nuova colonna con il nome aggiornato.

Prima di iniziare

Prima di creare un trasferimento di dati ServiceNow, esegui le seguenti operazioni per ServiceNow e BigQuery.

Prerequisiti di ServiceNow

  • Per accedere alle API ServiceNow, crea credenziali OAuth.
  • Nella tua istanza ServiceNow devono essere abilitate tutte le seguenti applicazioni ServiceNow:

  • Per avviare un trasferimento ServiceNow, devi disporre delle credenziali corrette per connetterti all'istanza ServiceNow.

    • Per ottenere le credenziali per un'istanza ServiceNow Developer, accedi al portale ServiceNow Developer. Puoi utilizzare il nome utente e la password elencati nella pagina Gestisci password istanza. Per informazioni sulla reimpostazione della password di ServiceNow, vedi Reimpostazione della password
    • Per ottenere le credenziali per un'istanza di produzione o di sub-produzione di ServiceNow, contatta l'amministratore clienti di ServiceNow per richiedere il nome utente e la password.

Prerequisiti di BigQuery

Ruoli BigQuery richiesti

Per ottenere le autorizzazioni necessarie per creare un trasferimento di dati BigQuery Data Transfer Service, chiedi all'amministratore di concederti il ruolo IAM Amministratore BigQuery (roles/bigquery.admin) nel tuo progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per creare un trasferimento di dati BigQuery Data Transfer Service. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare un trasferimento di dati di BigQuery Data Transfer Service sono necessarie le seguenti autorizzazioni:

  • Autorizzazioni BigQuery Data Transfer Service:
    • bigquery.transfers.update
    • bigquery.transfers.get
  • Autorizzazioni BigQuery:
    • bigquery.datasets.get
    • bigquery.datasets.getIamPolicy
    • bigquery.datasets.update
    • bigquery.datasets.setIamPolicy
    • bigquery.jobs.create

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Per maggiori informazioni, vedi Concedere l'accesso a bigquery.admin.

Configura un trasferimento di dati ServiceNow

Aggiungi i dati ServiceNow in BigQuery configurando una configurazione del trasferimento utilizzando una delle seguenti opzioni:

Console

  1. Vai alla pagina Trasferimenti di dati nella console Google Cloud .

    Vai a Trasferimenti dati

  2. Fai clic su Crea trasferimento.

  3. Nella sezione Tipo di origine, per Origine, seleziona ServiceNow.

  4. Nella sezione Dettagli origine dati, segui questi passaggi:

    • (Facoltativo) Per Collegamento di rete, seleziona un collegamento di rete dal menu a discesa o fai clic su Crea collegamento di rete.
      • Seleziona un collegamento di rete per configurare questo trasferimento di dati in modo che utilizzi un indirizzo IP singolo e coerente. Puoi utilizzare questa opzione se la tua istanza ServiceNow è configurata per accettare solo il traffico proveniente da indirizzi IP specifici.
      • Per maggiori informazioni sulla creazione di un collegamento di rete, consulta Configura le connessioni con i collegamenti di rete.
      • Per saperne di più sulla definizione degli indirizzi IP in ServiceNow, vedi Definisci gli indirizzi IP interni ServiceNow consentiti.
    • Per ID istanza, inserisci l'ID istanza ServiceNow. Puoi trovarlo nell'URL di ServiceNow, ad esempio https://INSTANCE_ID.service-now.com.
    • (Facoltativo) Per Tipo di cloud ServiceNow, seleziona il tipo di cloud per il tuo account ServiceNow:
      • Seleziona Commerciale se l'URL della tua istanza ServiceNow segue il pattern https://INSTANCE_ID.service-now.com. Questo è il valore predefinito.
      • Seleziona Government Community Cloud (GCC) se l'URL della tua istanza ServiceNow segue il pattern https://INSTANCE_ID.servicenowservices.com.
    • Per Nome utente, inserisci il nome utente ServiceNow da utilizzare per la connessione.
    • Per Password, inserisci la password di ServiceNow.
    • Per ID client, inserisci l'ID client delle tue credenziali OAuth. Per generare le credenziali, vedi Crea le credenziali OAuth.
    • Per Client secret, inserisci il client secret dalle tue credenziali OAuth.
    • Per Attiva mappatura legacy, seleziona true (impostazione predefinita) per utilizzare la mappatura dei tipi di dati legacy. Seleziona false per utilizzare la mappatura aggiornata dei tipi di dati. Per saperne di più sugli aggiornamenti della mappatura dei tipi di dati, vedi 16 marzo 2027.
    • Per Tipo di importazione, seleziona Completa o Incrementale.
    • In Tabelle ServiceNow da trasferire, fai clic su Sfoglia:
      • Seleziona gli oggetti da trasferire al set di dati di destinazione BigQuery. In questo campo puoi anche inserire manualmente gli oggetti da includere nel trasferimento di dati.
      • Se hai selezionato Esegui upsert come modalità di scrittura incrementale, devi selezionare una colonna come colonna watermark, e poi una o più colonne come chiave primaria.
    • Per Tipo di valore, scegli una delle seguenti opzioni:
      • Per trasferire i valori memorizzati nel database, scegli Effettivo.
      • Per trasferire i valori di visualizzazione delle colonne, scegli Visualizza.
  5. Nella sezione Impostazioni destinazione, per Set di dati, seleziona il set di dati che hai creato per archiviare i dati.

  6. Nella sezione Nome configurazione di trasferimento, per Nome visualizzato, inserisci un nome per il trasferimento di dati.

  7. Nella sezione Opzioni di pianificazione, segui questi passaggi:

    • Nell'elenco Frequenza di ripetizione, seleziona un'opzione per specificare la frequenza con cui viene eseguito questo trasferimento di dati. Per specificare una frequenza di ripetizione personalizzata, seleziona Personalizzata. Se selezioni On demand, questo trasferimento di dati viene eseguito quando attivi manualmente il trasferimento.
    • Se applicabile, seleziona Inizia ora o Inizia all'ora impostata e fornisci una data di inizio e un'ora di esecuzione.
  8. (Facoltativo) Nella sezione Opzioni di notifica, segui questi passaggi:

    • Per attivare le notifiche via email, fai clic sul pulsante di attivazione/disattivazione Notifica email. Quando attivi questa opzione, l'amministratore del trasferimento riceve una notifica via email quando l'esecuzione di un trasferimento non riesce.
    • Per attivare le notifiche di esecuzione del trasferimento Pub/Sub per questo trasferimento di dati, fai clic sul pulsante di attivazione/disattivazione Notifiche Pub/Sub. Puoi selezionare il nome del tuo argomento oppure fare clic su Crea un argomento per crearne uno.
  9. Fai clic su Salva.

bq

Inserisci il comando bq mk e fornisci il flag di creazione del trasferimento, --transfer_config:

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

Sostituisci quanto segue:

  • PROJECT_ID (facoltativo): l'ID progetto Google Cloud . Se non viene specificato un ID progetto, viene utilizzato il progetto predefinito.
  • DATA_SOURCE: l'origine dati (ad esempio, servicenow).
  • DISPLAY_NAME: il nome visualizzato per la configurazione del trasferimento. Il nome del trasferimento dei dati può essere qualsiasi valore che ti consenta di identificare il trasferimento se devi modificarlo in un secondo momento.
  • DATASET: il set di dati di destinazione per la configurazione del trasferimento.
  • PARAMETERS: i parametri per la configurazione del trasferimento creato in formato JSON. Ad esempio: --params='{"param":"param_value"}'. Di seguito sono riportati i parametri per un trasferimento di dati ServiceNow:

    Parametro ServiceNow Obbligatorio o facoltativo Descrizione
    connector.networkAttachment Facoltativo Nome del collegamento di rete da utilizzare per garantire la connettività all'istanza ServiceNow.
    connector.instanceId Obbligatorio ID istanza dell'istanza ServiceNow
    connector.authentication.username Obbligatorio Nome utente per l'istanza ServiceNow dell'utente.
    connector.authentication.password Obbligatorio Password per l'istanza ServiceNow dell'utente.
    connector.authentication.oauth.clientId Obbligatorio ID client per l'autenticazione OAuth con l'istanza ServiceNow.
    connector.authentication.oauth.clientSecret Obbligatorio Client secret per l'autenticazione OAuth con l'istanza ServiceNow.
    connector.instanceCloudType Facoltativo Specifica il tipo di cloud del tuo account ServiceNow. I valori supportati sono:
    • COMMERCIAL_CLOUD, se l'URL della tua istanza ServiceNow segue il pattern https://INSTANCE_ID.service-now.com
    • GOVERNMENT_COMMUNITY_CLOUD se l'URL della tua istanza ServiceNow segue il pattern https://INSTANCE_ID.servicenowservices.com
    ingestionType Facoltativo Definisce il metodo per trasferire i dati dall'origine ServiceNow alla destinazione, determinando se viene eseguito un ricaricamento completo del set di dati o un aggiornamento incrementale efficiente.
    writeMode Facoltativo Se utilizzi l'importazione incrementale, determina la strategia di sincronizzazione per l'importazione incrementale. Questo campo è obbligatorio per i trasferimenti incrementali. Il valore supportato è WRITE_MODE_UPSERT.
    assets Obbligatorio Elenco dei nomi delle tabelle ServiceNow da trasferire da ServiceNow nell'ambito del trasferimento.
    watermarkColumns Facoltativo Se utilizzi l'importazione incrementale, il campo della tabella di origine (in genere datetime) viene utilizzato per monitorare l'ultimo punto di sincronizzazione riuscita, consentendo al connettore di eseguire query e trasferire in modo efficiente solo i record creati o modificati da quel momento specifico. Questo campo è obbligatorio per i trasferimenti incrementali.
    primaryKeys Facoltativo Se utilizzi l'importazione incrementale, la colonna o la combinazione di colonne utilizzate per identificare in modo univoco ogni riga nella tabella di origine. Questo campo è obbligatorio per i trasferimenti incrementali.
    valueType Facoltativo Controlla il modo in cui tipi di dati specifici di ServiceNow vengono mappati ai tipi di dati BigQuery.
    connector.legacyMapping Obbligatorio Imposta su true (impostazione predefinita) per utilizzare la mappatura dei tipi di dati legacy. Imposta su false per utilizzare la mappatura aggiornata dei tipi di dati. Se stai eseguendo un trasferimento incrementale, questo valore deve essere false. Per saperne di più sugli aggiornamenti della mappatura dei tipi di dati, vedi 16 marzo 2027.

    Quando specifichi più asset durante un trasferimento incrementale, i valori dei campi watermarkColumns e primaryKeys corrispondono alla posizione dei valori nel campo assets. Assicurati che l'ordine delle tabelle e delle rispettive colonne venga mantenuto in modo coerente in tutti gli elenchi di configurazione correlati.

    Ad esempio, il seguente comando crea un trasferimento di dati ServiceNow nel progetto predefinito con tutti i parametri richiesti:

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

    Il comando seguente crea un trasferimento di dati incrementale di ServiceNow nel progetto predefinito e utilizza la modalità di scrittura 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

Utilizza il metodo projects.locations.transferConfigs.create e fornisci un'istanza della risorsa TransferConfig.

Quando salvi la configurazione del trasferimento, il connettore ServiceNow attiva automaticamente un'esecuzione del trasferimento in base all'opzione di pianificazione. A ogni esecuzione del trasferimento, il connettore ServiceNow trasferisce tutti i dati disponibili da ServiceNow a BigQuery.

Per eseguire manualmente un trasferimento di dati al di fuori della pianificazione regolare, puoi avviare un'esecuzione di backfill.

Mappatura dei tipi di dati

La seguente tabella mostra come vengono mappati i tipi di dati in un trasferimento di dati ServiceNow:

Tipo di dati ServiceNow Tipo di dati BigQuery Tipo di dati BigQuery aggiornato
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

Risolvere i problemi di trasferimento

Le sezioni seguenti descrivono in dettaglio i problemi comuni durante la configurazione di un trasferimento di dati ServiceNow.

Per saperne di più, consulta Risolvere i problemi relativi alle configurazioni di trasferimento.

Il trasferimento non riesce a causa dell'attivazione di ServiceNow

Si verifica un problema che causa il mancato trasferimento dei dati quando le applicazioni Procurement, Product Catalog o Contract Management non sono abilitate in ServiceNow. Per risolvere il problema, attiva tutte e tre le applicazioni:

Il problema si verifica durante l'esecuzione del trasferimento

Si verifica un problema che impedisce la creazione dell'esecuzione del trasferimento come previsto. Per risolvere il problema:

  • Verifica che le credenziali dell'account ServiceNow, come i valori Nome utente, Password, ID client e Client secret, siano validi.
  • Verifica che l'ID istanza sia l'ID valido della tua istanza ServiceNow.

Altri errori

Per informazioni su altri errori verificatisi durante un trasferimento di dati ServiceNow, vedi Problemi di trasferimento di ServiceNow.

Prezzi

Per informazioni sui prezzi dei trasferimenti da ServiceNow, consulta la sezione Prezzi di Data Transfer Service.

Passaggi successivi