Caricare i dati di Microsoft SQL Server in BigQuery
Nota: per ricevere assistenza o fornire un feedback su questa funzionalità, contatta dts-preview-support@google.com.Per pianificare trasferimenti di dati ricorrenti da Microsoft SQL Server a BigQuery, puoi creare una configurazione di trasferimento per specificare gli oggetti dati da trasferire e la frequenza di pianificazione del trasferimento di dati. Dopo aver configurato la configurazione del trasferimento, il BigQuery Data Transfer Service trasferisce i dati più recenti in una tabella BigQuery in base alla pianificazione specificata.
Per scoprire di più sul funzionamento di un trasferimento di Microsoft SQL Server, consulta Introduzione ai trasferimenti di dati di Microsoft SQL Server.
Limitazioni
I job di trasferimento di dati di Microsoft SQL Server sono soggetti alle seguenti limitazioni:
- Esiste un numero limitato di connessioni simultanee a un database Microsoft SQL Server. Di conseguenza, anche il numero di esecuzioni di trasferimento simultanee a un singolo database Microsoft SQL Server è limitato. Assicurati che il numero di job di trasferimento simultanei sia inferiore al numero massimo di connessioni simultanee supportate dal database Microsoft SQL Server.
- Alcuni tipi di dati di Microsoft SQL Server potrebbero essere mappati al tipo
STRINGin BigQuery per evitare la perdita di dati. Ad esempio, alcuni tipi numerici in Microsoft SQL Server che non hanno precisione e scala definite potrebbero essere mappati aSTRINGin BigQuery. Per saperne di più, consulta Mappatura dei tipi di dati.
Limitazioni del trasferimento incrementale
I trasferimenti incrementali di Microsoft SQL Server sono soggetti alle seguenti limitazioni:- Puoi scegliere solo le colonne
TIMESTAMPcome colonne watermark. - L'importazione incrementale è supportata solo per gli asset con colonne watermark valide.
- I valori in una colonna watermark devono aumentare in modo monotono.
- 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
assetdopo la prima esecuzione di importazione incrementale. - Non puoi modificare la modalità di scrittura in una configurazione del trasferimento dopo la prima esecuzione di importazione incrementale.
- Non puoi modificare la colonna watermark o la chiave primaria dopo la prima esecuzione di importazione incrementale.
- La tabella BigQuery di destinazione è in cluster utilizzando la chiave primaria fornita ed è soggetta alle limitazioni delle tabelle in cluster.
- Quando aggiorni per la prima volta una configurazione del trasferimento esistente alla modalità di importazione incrementale, il primo trasferimento di dati dopo l'aggiornamento trasferisce tutti i dati disponibili dall'origine dati. I trasferimenti di dati incrementali successivi trasferiranno solo le righe nuove e aggiornate dall'origine dati.
- Ti consigliamo di creare indici nella colonna watermark. Questo connettore utilizza le colonne watermark per i filtri nei trasferimenti incrementali, quindi l'indicizzazione di queste colonne può migliorare le prestazioni.
- Quando esegui un trasferimento incrementale, devi utilizzare la mappatura dei tipi di dati aggiornata.
Prima di iniziare
Prima di poter pianificare un trasferimento di dati di Microsoft SQL Server, devi soddisfare i seguenti prerequisiti.
Prerequisiti di Microsoft SQL Server
Devi aver creato un account utente nel database Microsoft SQL Server. Per saperne di più, consulta Creare un utente con un accesso.
Prerequisiti di BigQuery
- Verifica di aver completato tutte le azioni necessarie per abilitare BigQuery Data Transfer Service.
- Crea un set di dati BigQuery per archiviare i dati.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare un trasferimento di dati di Microsoft SQL Server,
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 di Microsoft SQL Server. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare un trasferimento di dati di Microsoft SQL Server sono necessarie le seguenti autorizzazioni:
-
bigquery.transfers.update -
bigquery.datasets.get
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Configurazione di rete
Devi configurare impostazioni di rete specifiche quando non è disponibile un indirizzo IP pubblico per la connessione al database Microsoft SQL Server. Per saperne di più, consulta le seguenti sezioni:
- Configurare una connessione all' Google Cloud istanza
- Configurare una connessione ad AWS
- Configurare una connessione ad Azure
Configurare un trasferimento di dati di Microsoft SQL Server
Seleziona una delle seguenti opzioni:
Console
Vai alla pagina Trasferimenti di dati.
Fai clic su Crea trasferimento.
Nella sezione Tipo di origine, per Origine, seleziona Microsoft SQL Server.
Nella sezione Dettagli origine dati, segui questi passaggi:
- Per Collegamento di rete, seleziona un collegamento di rete esistente o fai clic su Crea collegamento di rete.
- In Host, inserisci il nome host o l'indirizzo IP del database Microsoft SQL Server.
- In Numero porta, inserisci il numero di porta del database Microsoft SQL Server.
- In Nome database, inserisci il nome del database Microsoft SQL Server.
- In Nome utente, inserisci il nome utente dell'utente Microsoft SQL Server che avvia la connessione al database Microsoft SQL Server.
- In Password, inserisci la password dell'utente Microsoft SQL Server che avvia la connessione al database Microsoft SQL Server.
- Per Modalità TLS, seleziona un'opzione dal menu. Per scoprire di più sulle modalità TLS, consulta Configurazione TLS.
- Per Certificato PEM attendibile, inserisci il certificato pubblico dell'autorità di certificazione (CA) che ha emesso il certificato TLS del server di database. Per scoprire di più, vedi Certificato del server attendibile (PEM).
- 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. 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. server di database.
- Per Tipo di importazione, seleziona Completa o Incrementale.
- Se selezioni Incrementale (Anteprima), per Modalità di scrittura, seleziona Aggiungi o Esegui upsert. Per saperne di più sulle diverse modalità di scrittura, consulta Trasferimenti completi o incrementali.
- Per Oggetti Microsoft SQL Server da trasferire, sfoglia la tabella Microsoft SQL Server o inserisci manualmente i nomi delle tabelle necessarie per il trasferimento.
Nella sezione Impostazioni destinazione , per Set di dati, seleziona il set di dati che hai creato per archiviare i dati oppure fai clic su Crea nuovo set di dati e creane uno da utilizzare come set di dati di destinazione.
Nella sezione Nome configurazione di trasferimento, per Nome visualizzato, inserisci un nome per il trasferimento. Il nome del trasferimento può essere qualsiasi valore che ti consenta di identificarlo se devi modificarlo in un secondo momento.
Nella sezione Opzioni di pianificazione, segui questi passaggi:
- Seleziona una frequenza di ripetizione. Se selezioni l'opzione Ore, Giorni (impostazione predefinita), Settimane o Mesi, devi anche specificare una frequenza. Puoi anche selezionare l'opzione Personalizzata per creare una frequenza di ripetizione più specifica. Se selezioni l'opzione On demand, questo trasferimento di dati viene eseguito solo quando attivi manualmente il trasferimento.
- Se applicabile, seleziona l'opzione Inizia ora o Inizia all'ora impostata e fornisci una data di inizio e un'ora di esecuzione.
(Facoltativo) Nella sezione Opzioni di notifica, segui questi passaggi:
- Per attivare le notifiche via email, fai clic sul pulsante di attivazione/disattivazione Notifiche email per attivarlo. Quando attivi questa opzione, l'amministratore del trasferimento riceve una notifica via email quando l'esecuzione di un trasferimento non riesce.
- Per configurare le notifiche di esecuzione di Pub/Sub per il trasferimento, fai clic sul pulsante di attivazione/disattivazione Notifiche Pub/Sub per attivarlo. Puoi selezionare il nome dell'argomento oppure fare clic su Crea un argomento per crearne uno.
(Facoltativo) Nella sezione Opzioni avanzate, seleziona un tipo di crittografia per questo trasferimento. Puoi selezionare una chiave Cloud Key Management Service di proprietà di Google Google-owned and Google-managed encryption key o del cliente. Per saperne di più sulle chiavi di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).
Fai clic su Salva.
bq
Inserisci il bq mk comando
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 del Google Cloud progetto. Se non viene fornito il flag--project_idper specificare un progetto particolare, viene utilizzato il progetto predefinito.DATA_SOURCE: l'origine dati, ovverosqlserver.DISPLAY_NAME: il nome visualizzato per la configurazione del trasferimento di dati. Il nome del trasferimento può essere qualsiasi valore che ti consenta di identificarlo se devi modificarlo in un secondo momento.DATASET: il set di dati di destinazione per la configurazione del trasferimento di dati.PARAMETERS: i parametri per la configurazione del trasferimento creata in formato JSON. Ad esempio:--params='{"param":"param_value"}'. Di seguito sono riportati i parametri per un trasferimento di Microsoft SQL Server:connector.networkAttachment(facoltativo): il nome del collegamento di rete a cui connettersi al database Microsoft SQL Server.connector.database: il nome del database Microsoft SQL Server.connector.endpoint.host: il nome host o l'indirizzo IP del database.connector.endpoint.port: il numero di porta del database.connector.authentication.username: il nome utente dell'utente del database.connector.authentication.password: la password dell'utente del database.connector.legacyMapping: imposta sutrue(impostazione predefinita) per utilizzare la mappatura dei tipi di dati legacy. Imposta sufalseper utilizzare la mappatura aggiornata dei tipi di dati. Se stai eseguendo un trasferimento incrementale, questo valore deve esserefalse. Per saperne di più sugli aggiornamenti della mappatura dei tipi di dati , vedi 16 marzo 2027.connector.tls.mode: specifica una configurazione TLS da utilizzare con questo trasferimento:ENCRYPT_VERIFY_CA_AND_HOSTper crittografare i dati e verificare la CA e il nome hostENCRYPT_VERIFY_CAper crittografare i dati e verificare solo la CAENCRYPT_VERIFY_NONEsolo per la crittografia dei datiDISABLEper nessuna crittografia o verifica
connector.tls.trustedServerCertificate: (facoltativo) fornisci uno o più certificati con codifica PEM. Obbligatorio solo se il valore diconnector.tls.modeèENCRYPT_VERIFY_CA_AND_HOSToENCRYPT_VERIFY_CA.ingestionType: specificafulloincremental. I trasferimenti incrementali sono supportati in anteprima. Per saperne di più, consulta Trasferimenti completi o incrementali.writeMode: specificaWRITE_MODE_APPENDoWRITE_MODE_UPSERT.watermarkColumns: specifica le colonne della tabella come colonne watermark. Questo campo è obbligatorio per i trasferimenti incrementali.primaryKeys: specifica le colonne della tabella come chiavi primarie. Questo campo è obbligatorio per i trasferimenti incrementali.assets: un elenco dei nomi delle tabelle Microsoft SQL Server da trasferire dal database Microsoft SQL Server nell'ambito del trasferimento.
Ad esempio, il seguente comando crea un trasferimento di Microsoft SQL Server denominato My Transfer:
bq mk \ --transfer_config --target_dataset=mydataset --data_source=sqlserver --display_name='My Transfer' --params='{"assets":["DB1/DEPARTMENT","DB1/EMPLOYEES"], "connector.authentication.username": "User1", "connector.authentication.password":"ABC12345", "connector.database":"DB1", "connector.endpoint.host":"192.168.0.1", "connector.endpoint.port":"1520", "connector.networkAttachment":"projects/dev-project1/regions/us-central1/networkattachments/na1", "ingestionType":"incremental", "writeMode":"WRITE_MODE_APPEND", "watermarkColumns":["createdAt","createdAt"], "primaryKeys":[['dep_id'], ['report_by','report_title']], "connector.tls.mode": "ENCRYPT_VERIFY_CA_AND_HOST", "connector.tls.trustedServerCertificate": "PEM-encoded certificate"}'
Quando specifichi più asset durante un trasferimento incrementale, i valori dei campi watermarkColumns e primaryKeys corrispondono alla posizione dei valori nel campo assets. Nell'esempio seguente, dep_id corrisponde alla tabella DB1/DEPARTMENT, mentre report_by e report_title corrispondono alla tabella DB1/EMPLOYEES.
"primaryKeys":[['dep_id'], ['report_by','report_title']], "assets":["DB1/DEPARTMENT","DB1/EMPLOYEES"],
Per eseguire manualmente un trasferimento di dati al di fuori della pianificazione regolare, puoi avviare un'esecuzione di backfill.
Risoluzione dei problemi
Per risolvere i problemi relativi al trasferimento di dati, consulta Problemi di trasferimento di Microsoft SQL Server.
Trasferire i metadati
Puoi anche utilizzare il connettore Microsoft SQL Server per trasferire i metadati a Knowledge Catalog. Per saperne di più, consulta Caricare i metadati di Microsoft SQL Server in Knowledge Catalog.Passaggi successivi
- Leggi una panoramica di BigQuery Data Transfer Service.
- Scopri come gestire i trasferimenti, inclusi come ottenere informazioni su una configurazione di trasferimento, elencare le configurazioni di trasferimento e visualizzare la cronologia delle esecuzioni di un trasferimento.
- Scopri come caricare i dati con le operazioni di BigQuery Omni.