Pianificare un trasferimento MySQL
Il connettore MySQL di BigQuery Data Transfer Service ti consente di importare i dati dall'istanza MySQL in BigQuery. Supporta le istanze MySQL ospitate nel tuo ambiente on-premise, in Cloud SQL e in altri provider cloud pubblico come Amazon Web Services (AWS) e Microsoft Azure. Il connettore MySQL di BigQuery Data Transfer Service consente inoltre di creare job di trasferimento dati ricorrenti e on demand per trasferire i dati da un database MySQL a BigQuery.
Prima di iniziare
- Crea un utente nel database MySQL.
- Verifica di aver completato tutte le azioni necessarie per abilitare BigQuery Data Transfer Service.
- Crea un set di dati BigQuery per archiviare i dati.
- Assicurati di disporre dei ruoli richiesti per completare le attività descritte in questo documento.
Ruoli obbligatori
Se intendi configurare le notifiche di esecuzione del trasferimento per Pub/Sub, assicurati di disporre dell'autorizzazione pubsub.topics.setIamPolicy
Identity and Access Management (IAM)
. Le autorizzazioni Pub/Sub non sono necessarie se configuri solo le notifiche via email. Per saperne di più, consulta
Notifiche di esecuzione di BigQuery Data Transfer Service.
Per ottenere le autorizzazioni necessarie per creare un trasferimento dati MySQL,
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 Gestire l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per creare un trasferimento dati MySQL. Per visualizzare le autorizzazioni esatta richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per creare un trasferimento di dati MySQL sono necessarie le seguenti autorizzazioni:
-
bigquery.transfers.update
-
bigquery.datasets.get
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Connessioni di rete
Se non è disponibile un indirizzo IP pubblico per la connessione al database MySQL, devi configurare un allegato di rete.
Per istruzioni dettagliate sulla configurazione della rete richiesta, consulta i seguenti documenti:
- Se esegui il trasferimento da Cloud SQL, consulta Configurare l'accesso all'istanza Cloud SQL.
- Se esegui il trasferimento da AWS, consulta Configurare la VPN e l'attacco alla rete tra AWS eGoogle Cloud .
- Se esegui il trasferimento da Azure, consulta Configurare la VPN e l'attacco alla rete tra Azure eGoogle Cloud .
Limitazioni
I trasferimenti di dati MySQL sono soggetti alle seguenti limitazioni:
- Il numero massimo di connessioni simultanee a un database MySQL è determinato dal parametro di configurazione MySQL
max_connections
. Per impostazione predefinita, questo valore è impostato su 151 connessioni, ma può essere configurato su un limite più elevato in base alle esigenze. Di conseguenza, il numero di esecuzioni simultanee del trasferimento in un singolo database MySQL è limitato a questo valore massimo. Questa limitazione significa anche che il numero di job di trasferimento simultanei deve essere limitato a un valore inferiore al numero massimo di connessioni simultanee supportate dal database MySQL. - In MySQL, alcuni tipi di dati vengono mappati al tipo di stringa in BigQuery per evitare la perdita di dati. Ad esempio, i tipi numerici definiti in MySQL che non hanno una precisione e una scala definite vengono mappati al tipo di stringa in BigQuery.
Configurare un trasferimento di dati MySQL
Seleziona una delle seguenti opzioni:
Console
Vai alla pagina Trasferimenti di dati.
Fai clic su
Crea trasferimento.Nella sezione Tipo di origine, seleziona MySQL per Origine.
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 identificare il trasferimento 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 (valore predefinito), 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.
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 Dettagli origine dati, segui questi passaggi:
- In Collegamento di rete, seleziona un collegamento di rete esistente o fai clic su Crea collegamento di rete. Per ulteriori informazioni, consulta la sezione Connessioni di rete di questo documento.
- In Host, inserisci il nome host o l'indirizzo IP del server del database MySQL.
- In Numero porta, inserisci il numero di porta per il server del database MySQL.
- In Nome database, inserisci il nome del database MySQL.
- In Nome utente, inserisci il nome utente dell'utente MySQL che avvia la connessione al database MySQL.
- In Password, inserisci la password dell'utente MySQL che avvia la connessione al database MySQL.
- Per Modalità di crittografia, seleziona Completa dal menu per attivare la convalida completa di SSL quando ti connetti al database MySQL oppure seleziona Disattiva per non eseguire la convalida di SSL.
Per gli oggetti MySQL da trasferire, svolgi una delle seguenti operazioni:
- Fai clic su Sfoglia per selezionare le tabelle MySQL necessarie per il trasferimento e poi fai clic su Seleziona.
- Inserisci manualmente i nomi delle tabelle negli oggetti MySQL da trasferire.
(Facoltativo) Nel menu Account di servizio, specifica un account di servizio personalizzato per autorizzare il trasferimento. Assicurati che l'account di servizio utilizzato disponga di tutti i ruoli e le autorizzazioni necessari. Per ulteriori informazioni, consulta Trasferire il proprietario come service account.
(Facoltativo) Nella sezione Opzioni di notifica, segui questi passaggi:
- Per attivare le notifiche via email, fai clic sul pulsante di attivazione/disattivazione Notifiche via email in modo da impostarlo su On. 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 in modo che sia impostato su On. Puoi selezionare il nome del tuo argomento oppure fare clic su Crea un argomento per crearne uno.
Fai clic su Salva.
bq
Inserisci il comando bq mk
e specifica 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 tuo progetto Google Cloud .
Se non viene fornito il flag
--project_id
per specificare un determinato progetto, viene utilizzato il progetto predefinito. - DATA_SOURCE: l'origine dati, ovvero
mysql
. - DISPLAY_NAME: il nome visualizzato per la configurazione del trasferimento dei dati. Il nome del trasferimento 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 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 MySQL:networkAttachment
(facoltativo): il nome dell'attacco di rete per collegarsi al database MySQL.connector.database
: il nome del database MySQL.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 database.connector.authentication.password
: la password dell'utente del database. connector.connectionTypeconnector.connectionType
(facoltativo): il tipo di connessione per determinare l'URL di connessione. Può essereSERVICE
,SID
oTNS
. Se non viene fornito, il valore predefinito èSERVICE
.connector.encryptionMode
: la modalità di crittografia. Può essereFULL
per la convalida completa SSL quando ti connetti al database MySQL oDISABLE
per nessuna convalida SSL.assets
: un elenco dei nomi delle tabelle MySQL da trasferire dal database MySQL nell'ambito del trasferimento.
Ad esempio, il seguente comando crea un trasferimento MySQL chiamato My Transfer
:
bq mk \ --transfer_config \ --target_dataset=mydataset \ --data_source=mysql \ --display_name='My Transfer' \ --params='{"assets":["DB1/DEPARTMENT","DB1/EMPLOYEES"], \ "connector.authentication.username": "User1", \ "connector.authentication.password":"ABC12345", \ "connector.encryptionMode":"FULL", \ "connector.database":"DB1", \ "connector.endpoint.host":"54.74.220.23", \ "connector.endpoint.port":"3306"}'
API
Utilizza il
metodo projects.locations.transferConfigs.create
e fornisci un'istanza della
risorsa TransferConfig
.
Mappatura dei tipi di dati
La tabella seguente mappa i tipi di dati MySQL ai tipi di dati BigQuery corrispondenti.
Tipo di dati MySQL | Tipo di dati BigQuery |
---|---|
BIT |
BOOLEAN |
TINYINT |
INTEGER |
BOOL , BOOLEAN |
BOOLEAN |
SMALLINT |
INTEGER |
MEDIUMINT |
INTEGER |
INT , INTEGER |
INTEGER |
BIGINT |
BIGNUMERIC |
FLOAT |
FLOAT |
DOUBLE |
FLOAT |
DECIMAL |
BIGNUMERIC |
DATE |
DATE |
DATETIME |
TIMESTAMP |
TIMESTAMP |
TIMESTAMP |
TIME |
TIME |
YEAR |
DATE |
CHAR |
STRING |
VARCHAR |
STRING |
BINARY |
BYTES |
VARBINARY |
BYTES |
TINYBLOB |
BYTES |
TINYTEXT |
STRING |
BLOB |
BYTES |
TEXT |
STRING |
MEDIUMBLOB |
BYTES |
MEDIUMTEXT |
STRING |
LONGBLOB |
BYTES |
LONGTEXT |
STRING |
ENUM |
STRING |
SET |
STRING |
Risoluzione dei problemi
Se hai problemi a configurare il trasferimento dei dati, consulta Problemi di trasferimento MySQL.
Passaggi successivi
- Per una panoramica di BigQuery Data Transfer Service, consulta Che cos'è BigQuery Data Transfer Service?.
- Per informazioni sull'utilizzo dei trasferimenti, tra cui come ottenere informazioni su una configurazione di trasferimento, elencare le configurazioni di trasferimento e visualizzare la cronologia di esecuzione di un trasferimento, vedi Gestire i trasferimenti.
- Scopri come caricare i dati con operazioni cross-cloud.