Introduzione ai trasferimenti di Cloud Storage
BigQuery Data Transfer Service per Cloud Storage ti consente di pianificare attività ricorrenti di dati caricati dai bucket Cloud Storage in BigQuery. Il percorso dei dati archiviati in Cloud Storage la tabella di destinazione può essere con parametri, consentendoti di caricare i dati dai bucket Cloud Storage organizzati per data.
Formati di file supportati
BigQuery Data Transfer Service al momento supporta il caricamento dei dati da Cloud Storage in uno dei seguenti formati:
- Valori separati da virgola (CSV)
- JSON (delimitato da nuova riga)
- Avro
- Parquet
- ORC
Tipi di compressione supportati
BigQuery Data Transfer Service per Cloud Storage supporta il caricamento di dati compressi. I tipi di compressione supportati da BigQuery Data Transfer Service sono gli stessi di tipi di compressione supportati dai job di caricamento BigQuery. Per maggiori informazioni le informazioni, vedi Caricamento di dati compressi e non compressi.
Importazione dati per i trasferimenti di Cloud Storage
Puoi specificare il modo in cui i dati vengono caricati in BigQuery selezionando un'opzione Scrivi la preferenza nella configurazione di trasferimento quando configurare un trasferimento in Cloud Storage.
Sono disponibili due tipi di preferenze di scrittura: i trasferimenti incrementali e trasferimenti troncati.Trasferimenti incrementali
Una configurazione di trasferimento con una scrittura APPEND
o WRITE_APPEND
la preferenza, chiamata anche trasferimento incrementale, aggiunge in modo incrementale nuovi dati
dal precedente trasferimento riuscito a una destinazione BigQuery
. Quando viene eseguita una configurazione di trasferimento con una preferenza di scrittura APPEND
,
il
Filtri di BigQuery Data Transfer Service per i file modificati a partire dalla
precedente esecuzione di trasferimento riuscita. Per determinare quando viene modificato un file,
BigQuery Data Transfer Service esamina i metadati dei file per conoscere l'ora dell'ultima modifica.
proprietà. Ad esempio, BigQuery Data Transfer Service esamina la proprietà timestamp updated
in un file Cloud Storage. Se
BigQuery Data Transfer Service trova i file con l'ora dell'ultima modifica che hanno
successive al timestamp dell'ultimo trasferimento riuscito,
BigQuery Data Transfer Service trasferisce questi file in un trasferimento incrementale.
Per dimostrare come funzionano i trasferimenti incrementali, considera quanto segue:
Esempio di trasferimento in Cloud Storage. Un utente crea un file in un
Bucket Cloud Storage all'ora 2023-07-01T00:00Z denominato file_1
. La
Il timestamp di updated
per file_1
è
l'ora in cui è stato creato il file. L'utente quindi
crea un trasferimento incrementale dal bucket Cloud Storage,
programmata per essere eseguita una volta al giorno alle 03:00Z, a partire dal 2023-07-01T03:00Z.
- Il 01-07-2023T03:00Z inizia la prima esecuzione di trasferimento. Poiché questa è la prima
per questa configurazione, BigQuery Data Transfer Service tenta di
carica tutti i file corrispondenti all'URI di origine nella destinazione
Tabella BigQuery. L'esecuzione del trasferimento ha esito positivo
BigQuery Data Transfer Service carica correttamente
file_1
nella destinazione Tabella BigQuery. - La successiva esecuzione di trasferimento, alle 2023-07-02T03:00Z, non rileva file in cui
La proprietà timestamp
updated
è maggiore rispetto all'ultima esecuzione di trasferimento andata a buon fine (01-07-2023T03:00Z). L'esecuzione del trasferimento riesce senza caricare altri dati nella destinazione Tabella BigQuery.
L'esempio precedente mostra come BigQuery Data Transfer Service esamina le
Proprietà timestamp updated
del file di origine per determinare se sono state apportate modifiche
apportate ai file di origine e di trasferire le eventuali modifiche rilevate.
Seguendo lo stesso esempio, supponiamo che l'utente crei un altro file in
il bucket Cloud Storage alle ore 2023-07-03T00:00Z, denominato file_2
. La
Il timestamp di updated
per file_2
è
l'ora in cui è stato creato il file.
- La successiva esecuzione di trasferimento, alle 2023-07-03T03:00Z, rileva che
file_2
ha un Timestampupdated
maggiore dell'ultima esecuzione di trasferimento riuscita (2023-07-01T03:00Z). Supponiamo che all'avvio dell'esecuzione del trasferimento non vada a buon fine a causa un errore temporaneo. In questo scenario,file_2
non viene caricato nel tabella BigQuery di destinazione. Ultimo trasferimento riuscito il timestamp dell'esecuzione rimane su 2023-07-01T03:00Z. - La successiva esecuzione di trasferimento, alle 2023-07-04T03:00Z, rileva che
file_2
ha un Timestampupdated
maggiore dell'ultima esecuzione di trasferimento riuscita (2023-07-01T03:00Z). Questa volta l'esecuzione del trasferimento viene completata senza problemi, carica correttamentefile_2
nella tabella BigQuery di destinazione. - La successiva esecuzione di trasferimento, alle 2023-07-05T03:00Z, non rileva file in cui
Il timestamp di
updated
è maggiore dell'ultima esecuzione di trasferimento riuscita (2023-07-04T03:00Z). L'esecuzione del trasferimento riesce senza caricare altri dati nella tabella BigQuery di destinazione.
L'esempio precedente mostra che quando un trasferimento non va a buon fine, nessun file viene trasferiti nella tabella di destinazione BigQuery. Qualsiasi modifica ai file vengono trasferiti alla successiva esecuzione riuscita. Qualsiasi data trasferimenti riusciti a seguito di un trasferimento non riuscito non provoca duplicati e i dati di Google Cloud. Nel caso di un trasferimento non riuscito, puoi anche scegliere di attivare manualmente un trasferimento. al di fuori del suo orario regolare.
Trasferimenti troncati
Una configurazione di trasferimento con una scrittura MIRROR
o WRITE_TRUNCATE
la preferenza, chiamata anche "trasferimento troncato", sovrascrive i dati nella
Tabella di destinazione BigQuery durante ogni esecuzione di trasferimento con dati
da tutti i file corrispondenti all'URI di origine. MIRROR
sovrascrive una nuova copia di
nella tabella di destinazione. Se la tabella di destinazione utilizza una partizione
decorator, l'esecuzione del trasferimento sovrascrive solo i dati nella partizione specificata. R
con un decorator della partizione, ha il formato
my_table${run_date}
, ad esempio my_table$20230809
.
La ripetizione degli stessi trasferimenti incrementali o troncati in un giorno non causa dati duplicati. Tuttavia, se esegui più trasferimenti diversi che interessano la stessa tabella di destinazione BigQuery, Questo può causare la duplicazione dei dati da parte di BigQuery Data Transfer Service.
Percorso della risorsa di Cloud Storage
Per caricare i dati da un'origine dati Cloud Storage, devi fornire il percorso i dati.
Il percorso della risorsa Cloud Storage contiene il nome del bucket e
(nome file). Ad esempio, se il bucket Cloud Storage è denominato
mybucket
e il file di dati è denominato myfile.csv
, il percorso della risorsa sarà
gs://mybucket/myfile.csv
.
BigQuery non supporta i percorsi delle risorse di Cloud Storage
che includono più barre consecutive dopo la doppia barra iniziale.
I nomi degli oggetti Cloud Storage possono contenere più barre consecutive ("/")
caratteri. Tuttavia, BigQuery converte più istanze
barre in una singola barra. Ad esempio, il seguente percorso della risorsa,
valido in Cloud Storage, non funziona in BigQuery:
gs://bucket/my//object//name
.
Per recuperare il percorso della risorsa di Cloud Storage:
Apri la console di Cloud Storage.
Vai alla posizione dell'oggetto (file) che contiene i dati di origine.
Fai clic sul nome dell'oggetto.
Si apre la pagina Dettagli oggetto.
Copia il valore fornito nel campo URI gsutil, che inizia con
gs://
.
Supporto dei caratteri jolly per i percorsi delle risorse di Cloud Storage
Se i dati di Cloud Storage sono separati in più file che condividono nome base comune, puoi utilizzare un carattere jolly nel percorso della risorsa quando carichi e i dati di Google Cloud.
Per aggiungere un carattere jolly al percorso della risorsa Cloud Storage, aggiungi un
asterisco (*) al nome della base. Ad esempio, se hai due file denominati
fed-sample000001.csv
e fed-sample000002.csv
, il percorso della risorsa sarebbe
gs://mybucket/fed-sample*
. Questo carattere jolly può quindi essere utilizzato
console Google Cloud o Google Cloud CLI.
Puoi utilizzare più caratteri jolly per gli oggetti (nomi di file) all'interno dei bucket. La il carattere jolly può apparire ovunque all'interno del nome dell'oggetto.
I caratteri jolly non espandono una directory in un gs://bucket/
. Ad esempio:
gs://bucket/dir/*
trova i file nella directory dir
ma non trova
nella sottodirectory gs://bucket/dir/subdir/
.
Non è possibile trovare corrispondenze con prefissi senza caratteri jolly. Ad esempio:
gs://bucket/dir
non corrisponde a gs://bucket/dir/file.csv
né
gs://bucket/file.csv
Tuttavia, puoi utilizzare più caratteri jolly per i nomi dei file all'interno dei bucket.
Ad esempio, gs://bucket/dir/*/*.csv
corrisponde a
gs://bucket/dir/subdir/file.csv
.
Per esempi di supporto dei caratteri jolly in combinazione con i nomi delle tabelle con parametri, vedi Parametri di runtime nei trasferimenti:
Considerazioni sulla località
Il bucket Cloud Storage deve trovarsi in una o più regioni, ovvero compatibile con la regione o le regioni del set di dati di destinazione in in BigQuery.
- Se il set di dati BigQuery si trova in una località multiregionale, il bucket Cloud Storage contenenti i dati che stai trasferendo devono trovarsi nella stessa località multiregionale o in una località è contenuto all'interno di più regioni. Ad esempio, se il set di dati BigQuery è Nella località multiregionale "UE", il bucket Cloud Storage può trovarsi in "europe-west1" Regione del Belgio all'interno dell'UE.
- Se il set di dati si trova in una regione, il bucket Cloud Storage deve trovarsi nella stessa regione. Per Ad esempio, se il set di dati si trova nella regione di Tokyo "asia-northeast1", la Cloud Storage il bucket non può essere in più regioni "ASIA".
Per informazioni dettagliate su trasferimenti e regioni, vedi Località e trasferimenti dei set di dati.
Per ulteriori informazioni sulle località di Cloud Storage, vedi Località dei bucket disponibile nella documentazione di Cloud Storage.
Prezzi
BigQuery standard Quote e limiti per i job di caricamento.
Una volta che i dati sono stati trasferiti in BigQuery, BigQuery archiviazione e si applicano i prezzi delle query.
I dati non verranno eliminati automaticamente dal bucket Cloud Storage dopo il caricamento su BigQuery, a meno che non indichi l'eliminazione durante la configurazione del trasferimento. Consulta Configurazione di un trasferimento Cloud Storage.
Per informazioni dettagliate, consulta la pagina Prezzi dei trasferimenti.
Quote e limiti
BigQuery Data Transfer Service utilizza i job di caricamento per caricare i dati di Cloud Storage in in BigQuery.
Tutto BigQuery Quote e limiti per i job di caricamento si applicano ai job ricorrenti Job di caricamento di Cloud Storage, con le seguenti considerazioni aggiuntive:
Valore | Limite |
---|---|
Dimensione massima per esecuzione di trasferimento del job di caricamento | 15 TB |
Numero massimo di file per esecuzione di trasferimento | 10.000 file |
Passaggi successivi
- Scopri di più sulla configurazione di un trasferimento di Cloud Storage.
- Scopri di più sui parametri di runtime nei trasferimenti di Cloud Storage.
- Scopri di più su BigQuery Data Transfer Service.