Trasferimenti dell'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 richieste abilitare BigQuery Data Transfer Service.
- Scegli un set di dati BigQuery esistente oppure crea un nuovo set di dati in cui archiviare i tuoi dati.
- Scegli una tabella BigQuery esistente o crea una nuova tabella di destinazione per il trasferimento dei dati e specifica la definizione dello schema. Tabella di destinazione devono 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 sulla concessione dell'accesso a Archiviazione BLOB utilizzando una firma di accesso condiviso (SAS); consulta Firma di accesso condiviso.
- Se limiti l'accesso alle risorse Azure utilizzando un firewall di Azure Storage, 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 necessarie per criptare e decriptare, e che tu abbia l'ID risorsa della chiave Cloud KMS necessaria per usare 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). Devi inoltre avere
le autorizzazioni bigquery.datasets.get
e bigquery.datasets.update
nella
set di dati di destinazione.
Il ruolo IAM predefinito di bigquery.admin
include le autorizzazioni
necessari per creare un trasferimento di dati di tipo Archiviazione BLOB.
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
dispongono dell'autorizzazione pubsub.topics.setIamPolicy
.
Non sono necessarie autorizzazioni Pub/Sub per le notifiche via email
. Per ulteriori informazioni, vedi
Notifiche di esecuzione di BigQuery Data Transfer Service.
Limitazioni
I trasferimenti di dati di Archiviazione BLOB sono soggetti alle seguenti limitazioni:
- L'intervallo di tempo minimo tra un trasferimento di dati ricorrente è di 1 ora. Il valore predefinito è di 24 ore.
- A seconda del formato dei dati di origine dell'archiviazione BLOB, che potrebbero comportare ulteriori limitazioni:
- Trasferimenti di dati alle località di BigQuery Omni non sono supportati.
Configurare un trasferimento di dati di Archiviazione BLOB
Seleziona una delle seguenti opzioni:
Console
Vai alla pagina Trasferimenti di dati nella console Google Cloud.
Fai clic su
Crea trasferimento.Nella pagina Crea trasferimento:
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 dei dati.
Nella sezione Opzioni di pianificazione:
Seleziona Frequenza di ripetizione. Se selezioni Ore, Giorni, Settimane o Mesi, devi anche specificare una frequenza. Tu Puoi anche selezionare Personalizzata per specificare una frequenza di ripetizione personalizzata. Se selezioni On demand, questo trasferimento di dati viene eseguito il trasferimento viene attivato manualmente.
Se applicabile, seleziona Inizia ora o Inizia all'ora impostata. e specificare una data di inizio e un'ora di esecuzione.
Nella sezione Impostazioni destinazione, per Set di dati, scegli il 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 account Archiviazione BLOB.
- In Nome container, inserisci la colonna Archiviazione BLOB il nome del container.
- 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 a tabella di destinazione oWRITE_TRUNCATE
per sovrascrivere i dati nel tabella di destinazione durante ogni esecuzione del trasferimento.WRITE_APPEND
è il valore predefinito per Scrivi.
Per ulteriori informazioni su come BigQuery Data Transfer Service importa i dati utilizzando
WRITE_APPEND
oWRITE_TRUNCATE
, consulta Importazione dati per i trasferimenti di BLOB di Azure. Per ulteriori 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 è possibile ignorare. Il valore predefinito è 0.
- (Facoltativo) Per i tipi di targeting decimale, inserisci i valori separati da virgole
elenco dei possibili tipi di dati SQL con valori decimali nell'origine
in cui vengono convertiti i dati. Il tipo di dati SQL selezionato per la conversione dipende dalle seguenti condizioni:
- Nell'ordine di
NUMERIC
,BIGNUMERIC
eSTRING
, un tipo è selezionato se è nell'elenco specificato e se supporta precisione e scala. - Se nessuno dei tipi di dati elencati supporta la precisione e scalabilità, il tipo di dati che supporta la più ampia gamma sia selezionato l'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 sarà
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 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, inserisci uno qualsiasi nella sezione CSV opzioni CSV aggiuntive per caricare i dati.
Nella sezione Opzioni di notifica, puoi scegliere di attivare le notifiche via email e le notifiche Pub/Sub.
- Quando abiliti le notifiche via email, l'amministratore del trasferimento riceve una notifica via email quando un trasferimento non va a buon fine.
- Quando attivi Notifiche Pub/Sub scegli il nome di un argomento in cui pubblicare o fai clic Crea un argomento per crearne uno.
Se usi le CMEK, nella Nella sezione Opzioni avanzate, seleziona Chiave gestita dal cliente. Un elenco di vengono visualizzate le CMEK disponibili tra cui scegliere. Per informazioni su come funzionano le CMEK con BigQuery Data Transfer Service, vedi Specifica la chiave di crittografia con trasferimenti.
Fai clic su Salva.
bq
Utilizza la
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 del set di dati di destinazione. Se non specificato, viene utilizzato il progetto predefinito.DATA_SOURCE
:azure_blob_storage
.DISPLAY_NAME
: il nome visualizzato del trasferimento di dati configurazione. Il nome del trasferimento può essere qualsiasi valore che ti consenta identificare il trasferimento se devi modificarlo in un secondo momento.DATASET
: set di dati di destinazione per il trasferimento di dati configurazione.DESTINATION_KEY
: (facoltativo) il campo ID risorsa della chiave Cloud KMS: ad esempioprojects/project_name/locations/us/keyRings/key_ring_name/cryptoKeys/key_name
.PARAMETERS
: i parametri per il trasferimento di dati di rete, elencata in formato JSON. Ad esempio,--params={"param1":"value1", "param2":"value2"}
. Di seguito sono riportate le per un trasferimento di dati da Storage BLOB:destination_table_name_template
: campo obbligatorio. Il nome del tuo 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 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
a cui aggiungere dati tabella di destinazione, oWRITE_TRUNCATE
, per sovrascrivere i dati nel tabella di destinazione. Il valore predefinito èWRITE_APPEND
.max_bad_records
: facoltativo. Il numero di record non validi consentiti. La 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, 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
. Impostatrue
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 per l'importazione. 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 le righe mancanti e colonne facoltative. I valori mancanti sono stati compilati conNULL
.
Ad esempio, quanto segue crea un trasferimento di dati da Archiviazione BLOB
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 per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura 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 crittografare i dati per un'esecuzione di trasferimento. Puoi utilizzare una CMEK per supportare i trasferimenti da Archiviazione BLOB di Azure.Quando specifichi una CMEK con un trasferimento, BigQuery Data Transfer Service applica CMEK a qualsiasi cache intermedia su disco dei dati importati, il flusso di lavoro di trasferimento dati è conforme a CMEK.
Non puoi aggiornare un trasferimento esistente per aggiungere una CMEK se il trasferimento non è stato eseguito originariamente creato con una CMEK. Ad esempio, non puoi modificare una destinazione che in origine era criptata per impostazione predefinita e ora è crittografata con CMEK. Al contrario, non puoi nemmeno modificare una tabella di destinazione con crittografia CMEK per avere un tipo di crittografia diverso.
Puoi aggiornare una CMEK per un trasferimento se la configurazione del trasferimento era originariamente creato con una crittografia CMEK. Quando aggiorni una CMEK per un trasferimento configurazione, BigQuery Data Transfer Service propaga la CMEK alla destinazione alla successiva esecuzione del trasferimento, in cui BigQuery Data Transfer Service sostituisce qualsiasi CMEK obsoleta con la nuova 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 di progetto con un trasferimento, BigQuery Data Transfer Service usa la chiave predefinita del progetto come chiave predefinita per tutti i nuovi trasferimenti configurazioni.
Risolvere i problemi di configurazione del trasferimento
Se hai problemi durante la configurazione del trasferimento di dati, 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.