Carica i dati di ServiceNow in BigQuery

Puoi caricare i dati da ServiceNow a BigQuery utilizzando il connettore BigQuery Data Transfer Service per 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 ServiceNow. Ciò può causare ritardi o errori dovuti al carico sull'istanza ServiceNow.
    • Ti consigliamo di distanziare gli orari di inizio dei trasferimenti per evitare che le esecuzioni si sovrappongano.
  • Per migliorare le prestazioni 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 pianificata l'esecuzione di un secondo trasferimento di dati prima del completamento del primo, viene completato solo il primo trasferimento di dati, mentre vengono ignorati tutti gli altri trasferimenti di dati che si sovrappongono al primo.
    • Per evitare trasferimenti saltati all'interno di una singola configurazione del trasferimento, ti consigliamo di aumentare la durata del tempo tra i trasferimenti di dati di grandi dimensioni 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 da ServiceNow sono soggetti alle seguenti limitazioni:

  • Puoi scegliere solo DATETIME colonne come colonne filigrana.
  • L'importazione incrementale è supportata solo per gli asset con colonne di watermark valide.
  • I valori in una colonna di watermark devono essere in ordine crescente.
  • I trasferimenti incrementali non possono sincronizzare le operazioni di eliminazione nella tabella di origine.
  • Una singola configurazione del trasferimento può supportare solo l'acquisizione 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 è raggruppata in cluster utilizzando la chiave primaria fornita ed è soggetta alle limitazioni delle tabelle in cluster.
  • Quando aggiorni una configurazione del 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. Tutti i trasferimenti di dati incrementali successivi trasferiranno solo le righe nuove e aggiornate dall'origine dati.

Opzioni di acquisizione dei dati

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

Trasferimenti completi o incrementali

Puoi specificare come caricare i dati in BigQuery selezionando la preferenza di scrittura Completa o Incrementale nella configurazione del trasferimento quando configuri un trasferimento ServiceNow.

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

In alternativa, puoi configurare un trasferimento dei dati incrementale 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 Aggiungi o Esegui upsert per definire la modalità di scrittura dei dati 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 di watermark che si aggiorna ogni volta che viene modificata una riga. Ti consigliamo colonne simili alla colonna UPDATED_AT o LAST_MODIFIED.

  • La chiave primaria può essere una o più colonne della tabella necessarie al connettore ServiceNow per determinare se deve inserire o aggiornare una riga.

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

    Per evitare potenziali perdite o danneggiamenti di 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 di dati incrementali da queste tabelle vengono applicati in BigQuery nei seguenti modi:

Modifiche all'origine dati Comportamento di importazione incrementale
Aggiunta di una nuova colonna Viene aggiunta una nuova colonna alla tabella BigQuery di destinazione. Tutti i record precedenti per questa colonna avranno valori null.
Eliminazione di 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 l'errore del trasferimento dei dati.

Se riscontri problemi, ti consigliamo di creare una nuova configurazione di trasferimento.

Rinominare una colonna La colonna originale rimane invariata nella tabella BigQuery di destinazione, 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, segui questi passaggi per ServiceNow e BigQuery.

Prerequisiti di ServiceNow

  • Per accedere alle API ServiceNow, crea le credenziali OAuth.
  • Tutte le seguenti applicazioni ServiceNow devono essere abilitate nell'istanza ServiceNow:

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

    • Per ottenere le credenziali per un'istanza per sviluppatori ServiceNow, accedi al portale per sviluppatori ServiceNow. Puoi utilizzare il nome utente e la password elencati nella pagina Gestisci password istanza. Per informazioni sul ripristino della password di ServiceNow, vedi Reimpostazione della password
    • Per ottenere le credenziali per un'istanza di produzione o sub-produzione di ServiceNow, contatta l'amministratore clienti 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 di BigQuery Data Transfer Service, chiedi all'amministratore di concederti il ruolo IAM Amministratore BigQuery (roles/bigquery.admin) sul 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 di 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 saperne di più, consulta Concedi l'accesso a bigquery.admin.

Configura un trasferimento di dati ServiceNow

Aggiungi i dati di ServiceNow a 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 della configurazione del trasferimento. Il nome del trasferimento di 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'istanza ServiceNow di origine 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) utilizzato per monitorare l'ultimo punto di sincronizzazione riuscito, 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 univoca utilizzata per identificare in modo univoco ogni riga nella tabella di origine. Questo campo è obbligatorio per i trasferimenti incrementali.
    valueType Facoltativo Controlla la mappatura di tipi di dati specifici di ServiceNow 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 dei tipi di dati aggiornata. 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 relative 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 ServiceNow incrementale 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 Risolvi i problemi relativi alle configurazioni di trasferimento.

Il trasferimento non riesce a causa dell'abilitazione di ServiceNow

Si verifica un problema che causa l'errore dei trasferimenti di 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 di 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, consulta Problemi di trasferimento di ServiceNow.

Prezzi

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

Passaggi successivi