Trasferimenti dello spazio di archiviazione BLOB
BigQuery Data Transfer Service per l'archiviazione BLOB di Azure consente di pianificare e gestire automaticamente i job di caricamento ricorrenti dall'archiviazione BLOB in BigQuery.
Prima di iniziare
Prima di creare un trasferimento di Archiviazione BLOB, segui questi passaggi:
- Verifica di aver completato tutte le azioni necessarie per abilitare BigQuery Data Transfer Service.
- Scegli un set di dati BigQuery esistente o creane uno nuovo in cui archiviare i dati.
- Scegli una tabella BigQuery esistente o crea una nuova tabella di destinazione per il trasferimento e specifica la definizione dello schema. La tabella di destinazione deve seguire le regole di denominazione delle tabelle. I nomi delle tabelle di destinazione supportano anche i parametri.
- Recupera il nome dell'account di archiviazione BLOB, il nome del container, il percorso dei dati (facoltativo) e il token SAS. Per informazioni sulla concessione dell'accesso a Blob Storage utilizzando una firma di accesso condiviso (SAS), consulta Firma di accesso condiviso.
- Se limiti l'accesso alle risorse Azure utilizzando un firewall di Archiviazione di Azure, aggiungi i worker di BigQuery Data Transfer Service all'elenco di IP consentiti.
- Se prevedi di specificare una chiave di crittografia gestita dal cliente (CMEK), assicurati che il tuo account di servizio disponga delle autorizzazioni per criptare e decriptare e che sia necessario l'ID risorsa della chiave Cloud KMS per utilizzare CMEK. Per informazioni su come funziona CMEK con BigQuery Data Transfer Service, vedi Specificare la chiave di crittografia con trasferimenti.
Autorizzazioni obbligatorie
Per creare un trasferimento di Archiviazione BLOB, devi disporre
dell'autorizzazione Identity and Access Management (IAM) di bigquery.transfers.update
. Devi disporre anche delle autorizzazioni bigquery.datasets.get
e bigquery.datasets.update
per il set di dati di destinazione.
Il ruolo IAM predefinito bigquery.admin
include le autorizzazioni necessarie per creare un trasferimento di Archiviazione BLOB.
Per ulteriori informazioni su IAM di BigQuery, consulta Controllo dell'accesso con IAM.
Per verificare di disporre delle autorizzazioni corrette in Archiviazione BLOB per abilitare il trasferimento, consulta Firma di accesso condiviso (SAS).
Se intendi configurare le notifiche di esecuzione del trasferimento per Pub/Sub, devi disporre
dell'autorizzazione pubsub.topics.setIamPolicy
.
Le autorizzazioni Pub/Sub non sono necessarie
solo per le notifiche via email. Per ulteriori informazioni, consulta Notifiche di esecuzione di BigQuery Data Transfer Service.
Limitazioni
I trasferimenti di Archiviazione BLOB sono soggetti alle seguenti limitazioni:
- L'intervallo minimo tra un trasferimento ricorrente e l'altro è di 1 ora. L'intervallo predefinito è di 24 ore.
- A seconda del formato dei dati di origine di Archiviazione BLOB, potrebbero essere previste ulteriori limitazioni:
- I trasferimenti alle località di BigQuery Omni non sono supportati.
Configura un trasferimento di dati da archiviazione BLOB
Seleziona una delle seguenti opzioni:
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel menu di navigazione di BigQuery, fai clic su Trasferimenti di dati.
Fai clic su
Crea trasferimento.Nella pagina Crea trasferimento, segui questi passaggi:
Nella sezione Tipo di origine, per Origine, scegli Archiviazione BLOB di Azure.
Nella sezione Nome configurazione di trasferimento, in Nome visualizzato, inserisci un nome per il trasferimento.
Nella sezione Opzioni di pianificazione:
Seleziona Frequenza di ripetizione. Se selezioni Ore, Giorni, Settimane o Mesi, devi specificare anche una frequenza. Puoi anche selezionare Personalizzata per specificare una frequenza di ripetizione personalizzata. Se selezioni On demand, questo trasferimento verrà 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.
Nella sezione Impostazioni destinazione, per Set di dati, scegli il set di dati creato per archiviare i dati.
Nella sezione Dettagli origine dati:
- In Tabella di destinazione, inserisci il nome della tabella che hai creato per archiviare i dati in BigQuery. I nomi delle tabelle di destinazione supportano i parametri.
- In Nome account di archiviazione Azure, inserisci il nome dell'account di archiviazione BLOB.
- In Nome container, inserisci il nome del container di archiviazione BLOB.
- In Percorso dati, inserisci il percorso per filtrare i file da trasferire. Vedi gli esempi.
- In Token SAS, inserisci il token di Azure SAS.
- In Formato file, scegli il formato dei dati di origine.
- Per Disposizione di scrittura, seleziona
WRITE_APPEND
per aggiungere in modo incrementale nuovi dati alla tabella di destinazione oppureWRITE_TRUNCATE
per sovrascrivere i dati nella tabella di destinazione durante ogni esecuzione di trasferimento.WRITE_APPEND
è il valore predefinito per Scrivi.
Per maggiori informazioni su come BigQuery Data Transfer Service importa i dati utilizzando
WRITE_APPEND
oWRITE_TRUNCATE
, consulta Importazione dei dati per i trasferimenti di BLOB di Azure. Per maggiori informazioni sul campowriteDisposition
, consultaJobConfigurationLoad
.Nella sezione Opzioni di trasferimento, procedi nel seguente modo:
- In Numero di errori consentiti, inserisci un valore intero per il numero massimo di record non validi che possono essere ignorati. Il valore predefinito è 0.
- (Facoltativo) Per i tipi di destinazione decimali, inserisci un elenco separato da virgole di possibili tipi di dati SQL in cui vengono convertiti i valori decimali nei dati di origine. Il tipo di dati SQL selezionato per la conversione dipende dalle seguenti condizioni:
- Nell'ordine di
NUMERIC
,BIGNUMERIC
eSTRING
, viene selezionato un tipo se è presente nell'elenco specificato e se supporta la precisione e la scala. - Se nessuno dei tipi di dati elencati supporta la precisione e la scalabilità, viene selezionato il tipo di dati che supporta l'intervallo più ampio nell'elenco specificato. Se un valore supera l'intervallo supportato durante la lettura dei dati di origine, viene generato un errore.
- Il tipo di dati
STRING
supporta tutti i valori di precisione e scala. - Se questo campo viene lasciato vuoto, per impostazione predefinita il tipo di dati è
NUMERIC,STRING
per ORC eNUMERIC
per gli altri formati file. - Questo campo non può contenere tipi di dati duplicati.
- L'ordine dei tipi di dati elencati viene ignorato.
- Nell'ordine di
Se hai scelto CSV o JSON come formato file, nella sezione JSON, CSV seleziona Ignora valori sconosciuti per accettare le righe contenenti valori che non corrispondono allo schema.
Se hai scelto CSV come formato file, nella sezione CSV inserisci eventuali opzioni CSV aggiuntive per il caricamento dei dati.
Nella sezione Opzioni di notifica, puoi scegliere di abilitare le notifiche email e le notifiche Pub/Sub.
- Quando abiliti le notifiche via email, l'amministratore dei trasferimenti riceve una notifica via email quando un trasferimento non va a buon fine.
- Quando abiliti le notifiche Pub/Sub, scegli il nome di un argomento in cui pubblicare o fai clic su Crea un argomento per crearne uno.
Se utilizzi CMEK, nella sezione Opzioni avanzate, seleziona Chiave gestita dal cliente. Viene visualizzato un elenco delle CMEK disponibili tra cui puoi scegliere. Per informazioni su come funzionano le CMEK con BigQuery Data Transfer Service, consulta Specificare la chiave di crittografia con i trasferimenti.
Fai clic su Salva.
bq
Utilizza il comando bq mk --transfer_config
per creare un trasferimento di Archiviazione BLOB:
bq mk \ --transfer_config \ --project_id=PROJECT_ID \ --data_source=DATA_SOURCE \ --display_name=DISPLAY_NAME \ --target_dataset=DATASET \ --destination_kms_key=DESTINATION_KEY \ --params=PARAMETERS
Sostituisci quanto segue:
PROJECT_ID
: (facoltativo) l'ID progetto contenente il set di dati di destinazione. Se non specificato, viene utilizzato il progetto predefinito.DATA_SOURCE
:azure_blob_storage
.DISPLAY_NAME
: il nome visualizzato della configurazione di trasferimento. Il nome del trasferimento può essere qualsiasi valore che consenta di identificare facilmente il trasferimento qualora fosse necessario modificarlo in un secondo momento.DATASET
: il set di dati di destinazione per la configurazione di trasferimento.DESTINATION_KEY
: (facoltativo) l'ID risorsa della chiave Cloud KMS, ad esempioprojects/project_name/locations/us/keyRings/key_ring_name/cryptoKeys/key_name
.PARAMETERS
: i parametri per la configurazione di trasferimento, elencati in formato JSON. Ad esempio,--params={"param1":"value1", "param2":"value2"}
. Di seguito sono riportati i parametri per un trasferimento di archiviazione BLOB:destination_table_name_template
: campo obbligatorio. Il nome della tabella di destinazione.storage_account
: campo obbligatorio. Il nome dell'account Archiviazione BLOB.container
: campo obbligatorio. Il nome del container di archiviazione BLOB.data_path
: facoltativo. Il percorso per filtrare i file da trasferire. Guarda gli esempi.sas_token
: campo obbligatorio. Il token Azure SAS.file_format
: facoltativo. Il tipo di file che vuoi trasferire:CSV
,JSON
,AVRO
,PARQUET
oORC
. Il valore predefinito èCSV
.write_disposition
: facoltativo. SelezionaWRITE_APPEND
per aggiungere dati alla tabella di destinazione oppureWRITE_TRUNCATE
per sovrascrivere i dati nella tabella di destinazione. Il valore predefinito èWRITE_APPEND
.max_bad_records
: facoltativo. Il numero di record non validi consentiti. Il valore predefinito è 0.decimal_target_types
: facoltativo. Un elenco separato da virgole di possibili tipi di dati SQL in cui vengono convertiti i valori decimali nei dati di origine. Se questo campo non viene fornito, per impostazione predefinita il tipo di dati èNUMERIC,STRING
per ORC eNUMERIC
per gli altri formati file.ignore_unknown_values
: facoltativo e ignorato sefile_format
non èJSON
oCSV
. Imposta sutrue
per accettare righe che contengono valori che non corrispondono allo schema.field_delimiter
: facoltativo e si applica solo quandofile_format
èCSV
. Il carattere che separa i campi. Il valore predefinito è,
.skip_leading_rows
: facoltativo e si applica solo quandofile_format
èCSV
. Indica il numero di righe di intestazione che non desideri importare. Il valore predefinito è 0.allow_quoted_newlines
: facoltativo e si applica solo quandofile_format
èCSV
. Indica se consentire gli a capo all'interno dei campi tra virgolette.allow_jagged_rows
: facoltativo e si applica solo quandofile_format
èCSV
. Indica se accettare righe a cui mancano le colonne facoltative finali. I valori mancanti sono stati compilati conNULL
.
Ad esempio, quanto segue crea un trasferimento di archiviazione BLOB denominato mytransfer
:
bq mk \ --transfer_config \ --data_source=azure_blob_storage \ --display_name=mytransfer \ --target_dataset=mydataset \ --destination_kms_key=projects/myproject/locations/us/keyRings/mykeyring/cryptoKeys/key1 --params={"destination_table_name_template":"mytable", "storage_account":"myaccount", "container":"mycontainer", "data_path":"myfolder/*.csv", "sas_token":"my_sas_token_value", "file_format":"CSV", "max_bad_records":"1", "ignore_unknown_values":"true", "field_delimiter":"|", "skip_leading_rows":"1", "allow_quoted_newlines":"true", "allow_jagged_rows":"false"}
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java di BigQuery.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Specifica la chiave di crittografia con trasferimenti
Puoi specificare le chiavi di crittografia gestite dal cliente (CMEK) per criptare i dati per un'esecuzione di trasferimento. Puoi utilizzare una CMEK per supportare i trasferimenti dall'archiviazione BLOB di Azure.Quando specifichi una CMEK con un trasferimento, BigQuery Data Transfer Service applica la chiave CMEK a qualsiasi cache intermedia su disco dei dati importati, in modo che l'intero flusso di lavoro di trasferimento di dati sia conforme a CMEK.
Non puoi aggiornare un trasferimento esistente per aggiungere una CMEK se il trasferimento non è stato creato in origine con una CMEK. Ad esempio, non puoi cambiare una tabella di destinazione precedentemente criptata per impostazione predefinita in modo che sia ora crittografata con CMEK. Inoltre, non puoi cambiare una tabella di destinazione criptata con CMEK in modo da avere un tipo diverso di crittografia.
Puoi aggiornare una CMEK per il trasferimento se la configurazione di trasferimento è stata originariamente creata con una crittografia CMEK. Quando aggiorni una CMEK per una configurazione di trasferimento, BigQuery Data Transfer Service propaga la CMEK alle tabelle di destinazione alla successiva esecuzione del trasferimento, dove BigQuery Data Transfer Service sostituisce qualsiasi CMEK obsoleta con la nuova CMEK durante l'esecuzione del trasferimento. Per ulteriori informazioni, vedi Aggiornare un trasferimento.
Puoi anche usare le chiavi predefinite di progetto. Quando specifichi una chiave predefinita del progetto con un trasferimento, BigQuery Data Transfer Service utilizza la chiave predefinita del progetto come chiave predefinita per qualsiasi nuova configurazione di trasferimento.
Risolvere i problemi di configurazione del trasferimento
Se riscontri problemi durante la configurazione del trasferimento, consulta l'articolo Problemi di trasferimento dello spazio di archiviazione BLOB.
Passaggi successivi
- Scopri di più sui parametri di runtime nei trasferimenti.
- Scopri di più su BigQuery Data Transfer Service.
- Scopri come caricare i dati con operazioni cross-cloud.