Trasferimenti di Archiviazione blob
Il connettore BigQuery Data Transfer Service per Azure Blob Storage consente di pianificare e gestire automaticamente i job di caricamento ricorrenti da Blob Storage in BigQuery.
Prima di iniziare
Prima di creare un trasferimento di dati di Archiviazione BLOB, svolgi i seguenti 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 per archiviare i dati.
- Scegli una tabella BigQuery esistente o crea una nuova tabella di destinazione per il trasferimento dei dati e specifica la definizione dello schema. La tabella di destinazione deve rispettare le regole di denominazione delle tabelle. I nomi delle tabelle di destinazione supportano anche i parametri.
- Recupera il nome dell'account di archiviazione Blob Storage, il nome del contenitore, il percorso dei dati (facoltativo) e il token SAS. Per informazioni su come concedere l'accesso a Blob Storage utilizzando una firma di accesso condiviso (SAS), consulta Firma di accesso condiviso (SAS).
- Se limiti l'accesso alle tue risorse Azure utilizzando un firewall di Azure Storage, aggiungi i worker di BigQuery Data Transfer Service al tuo 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 tu disponga dell'ID risorsa della chiave Cloud KMS necessario per utilizzare la chiave CMEK. Per informazioni su come CMEK funziona con BigQuery Data Transfer Service, consulta Specificare la chiave di crittografia con i trasferimenti.
Autorizzazioni obbligatorie
Per creare un trasferimento di dati di Blob Storage, devi disporre dell'bigquery.transfers.update
autorizzazione Identity and Access Management (IAM). Inoltre, devi disporre 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 dati di Blob Storage.
Per ulteriori informazioni su IAM di BigQuery, consulta Controllo dell'accesso con IAM.
Per verificare di disporre delle autorizzazioni corrette in Blob Storage per attivare il trasferimento dei dati, consulta la sezione 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 richieste solo per le notifiche via email. Per saperne di più, consulta
Notifiche di esecuzione di BigQuery Data Transfer Service.
Limitazioni
I trasferimenti di dati di Blob Storage sono soggetti alle seguenti limitazioni:
- L'intervallo di tempo minimo tra i trasferimenti di dati ricorrenti è 1 ora. L'intervallo predefinito è 24 ore.
- A seconda del formato dei dati di origine di Blob Storage, potrebbero esserci limitazioni aggiuntive:
- I trasferimenti di dati alle località BigQuery Omni non sono supportati.
Configurare un trasferimento di dati di Blob Storage
Seleziona una delle seguenti opzioni:
Console
Vai alla pagina Trasferimenti dati nella console Google Cloud.
Fai clic su
Crea trasferimento.Nella pagina Crea trasferimento:
Nella sezione Tipo di origine, per Origine, scegli Azure Blob Storage.
Nella sezione Nome configurazione di trasferimento, in Nome visualizzato, inserisci un nome per il trasferimento dei dati.
Nella sezione Opzioni di programmazione:
Seleziona una Frequenza di ripetizione. Se selezioni Ore, Giorni, Settimane o Mesi, devi anche specificare una frequenza. Puoi anche selezionare Personalizzata per specificare una frequenza di ripetizione 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.
Nella sezione Impostazioni di destinazione, per Set di dati, scegli il set di dati che hai 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 Blob Storage.
- In Nome contenitore, inserisci il nome del contenitore Blob Storage.
- In Percorso dati, inserisci il percorso per filtrare i file da trasferire. Consulta gli esempi.
- In Token SAS, inserisci il token SAS di Azure.
- Per Formato file, scegli il formato dei dati di origine.
- Per Disposizione scrittura, seleziona
WRITE_APPEND
per accodare in modo incrementale i nuovi dati alla tabella di destinazione oWRITE_TRUNCATE
per sovrascrivere i dati nella tabella di destinazione durante ogni esecuzione del trasferimento.WRITE_APPEND
è il valore predefinito per Write disposition.
Per saperne di più su come BigQuery Data Transfer Service importa i dati utilizzando
WRITE_APPEND
oWRITE_TRUNCATE
, consulta Importazione dei dati per i trasferimenti di Azure Blob. Per ulteriori informazioni sul campowriteDisposition
, consultaJobConfigurationLoad
.Nella sezione Opzioni di trasferimento, segui questi passaggi:
- In Numero di errori consentiti, inserisci un valore intero per il numero massimo di record errati che possono essere ignorati. Il valore predefinito è 0.
- (Facoltativo) Per 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
, un tipo viene scelto se è nell'elenco specificato e se supporta la precisione e la scala. - Se nessuno dei tipi di dati elencati supporta la precisione e la scala, 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, il tipo di dati predefinito è
NUMERIC,STRING
per ORC eNUMERIC
per altri formati di 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 del 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 attivare le notifiche via email e le notifiche Pub/Sub.
- Quando attivi le notifiche via email, l'amministratore dei trasferimenti riceve una notifica via email quando un'esecuzione del trasferimento non va a buon fine.
- Quando attivi le notifiche Pub/Sub, scegli un nome per l'argomento in cui pubblicare o fai clic su Crea un argomento per crearne uno.
Se utilizzi le chiavi CMEK, nella sezione Opzioni avanzate, seleziona Chiave gestita dal cliente. Viene visualizzato un elenco di CMEK disponibili tra cui scegliere. Per informazioni su come funzionano le chiavi 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 Blob Storage:
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 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.DESTINATION_KEY
: (facoltativo) 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 del trasferimento di dati, elencati in formato JSON. Ad esempio,--params={"param1":"value1", "param2":"value2"}
. Di seguito sono riportati i parametri per un trasferimento di dati di Blob Storage:destination_table_name_template
: obbligatorio. Il nome della tabella di destinazione.storage_account
: obbligatorio. Il nome dell'account Blob Storage.container
: obbligatorio. Il nome del contenitore Blob Storage.data_path
: facoltativo. Il percorso per filtrare i file da trasferire. Guarda gli esempi.sas_token
: obbligatorio. Il token SAS di Azure.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 oWRITE_TRUNCATE
per sovrascrivere i dati nella tabella di destinazione. Il valore predefinito èWRITE_APPEND
.max_bad_records
: facoltativo. Il numero di record errati consentiti. Il valore predefinito è 0.decimal_target_types
: facoltativo. Un elenco separato da virgola di possibili tipi di dati SQL in cui vengono convertiti i valori decimali nei dati di origine. Se questo campo non viene fornito, il tipo di dati predefinito è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 contenenti 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 vuoi importare. Il valore predefinito è 0.allow_quoted_newlines
: facoltativo e si applica solo quandofile_format
èCSV
. Indica se consentire i caratteri di fine riga all'interno dei campi tra virgolette.allow_jagged_rows
: facoltativo e si applica solo quandofile_format
èCSV
. Indica se accettare le righe che non hanno le colonne finali facoltative. I valori mancanti vengono inseriti conNULL
.
Ad esempio, il seguente comando crea un trasferimento di dati di Blob Storage chiamato 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"}
API
Utilizza il metodo projects.locations.transferConfigs.create
e fornisci un'istanza della risorsa TransferConfig
.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Specificare la chiave di crittografia con i trasferimenti
Puoi specificare le chiavi di crittografia gestite dal cliente (CMEK) per criptare i dati per un'esecuzione del trasferimento. Puoi utilizzare un CMEK per supportare i trasferimenti da Archiviazione BLOB di Azure.Quando specifichi una CMEK con un trasferimento, BigQuery Data Transfer Service applica la CMEK a qualsiasi cache intermedia su disco dei dati importati in modo che l'intero flusso di lavoro di trasferimento dei dati sia conforme alla CMEK.
Non puoi aggiornare un trasferimento esistente per aggiungere un CMEK se il trasferimento non è stato creato inizialmente con un CMEK. Ad esempio, non puoi modificare una tabella di destinazione che era inizialmente criptata per impostazione predefinita in modo che venga criptata con CMEK. Al contrario, non puoi nemmeno modificare una tabella di destinazione con crittografia CMEK per avere un tipo di crittografia diverso.
Puoi aggiornare un CMEK per un trasferimento se la configurazione del trasferimento è stata creata inizialmente con una crittografia CMEK. Quando aggiorni un CMEK per una configurazione di trasferimento, BigQuery Data Transfer Service lo propaga alle tabelle di destinazione alla successiva esecuzione del trasferimento, dove sostituisce eventuali CMEK obsoleti con il nuovo CMEK durante l'esecuzione del trasferimento. Per ulteriori informazioni, vedi Aggiornare un trasferimento.
Puoi anche utilizzare le chiavi predefinite del progetto. Quando specifichi una chiave predefinita del progetto con un trasferimento, BigQuery Data Transfer Service la utilizza come chiave predefinita per tutte le nuove configurazioni di trasferimento.
Risolvere i problemi di configurazione del trasferimento
Se riscontri problemi durante la configurazione del trasferimento dei dati, consulta Problemi di trasferimento di Blob Storage.
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.