Parametri di runtime nei trasferimenti di Cloud Storage
Quando configuri un trasferimento di dati in Cloud Storage, Archiviazione BLOB di Azure o Amazon Simple Storage Service (Amazon S3), puoi parametrizzare l'URI (o il percorso dei dati) e la tabella di destinazione. La parametrizzazione consente di caricare i dati dai bucket organizzati per data. Questi parametri prendono il nome di parametri di runtime per distinguerli dai parametri di ricerca.
Quando utilizzi i parametri di runtime in un trasferimento, puoi:
- Specifica come eseguire il partizionamento della tabella di destinazione
- Recupera i file che corrispondono a una data specifica
Parametri runtime disponibili
Quando configuri il trasferimento Cloud Storage, Blob Storage o Amazon S3, puoi specificare come vuoi partizionare la tabella di destinazione utilizzando i parametri di runtime.
Parametro | Tipo di modello | Valore |
---|---|---|
run_time |
Timestamp formattato | Nel fuso orario UTC, secondo la programmazione. Per i trasferimenti programmati regolarmente, run_time rappresenta l'ora di esecuzione prevista. Ad esempio, se il trasferimento è impostato su "ogni 24 ore", la differenza di run_time tra due query consecutive sarà esattamente di 24 ore, anche se il tempo di esecuzione effettivo potrebbe variare leggermente.Vedi TransferRun.runTime |
run_date |
Stringa data | La data del parametro run_time nel seguente formato: %Y%m%d ; ad esempio, 20180101. Questo formato è compatibile con le tabelle partizionate per data di importazione. |
Sistema di modelli
I trasferimenti Cloud Storage, Blob Storage e Amazon S3 supportano i parametri di runtime nel nome della tabella di destinazione utilizzando una sintassi dei modelli.
Sintassi dei modelli dei parametri
La sintassi dei modelli supporta i modelli di stringa di base e la compensazione temporale. I parametri vengono utilizzati nei seguenti formati:
{run_date}
{run_time[+\-offset]|"time_format"}
Parametro | Purpose |
---|---|
run_date |
Questo parametro è sostituito dalla data nel formato YYYYMMDD . |
run_time |
Questo parametro supporta le seguenti proprietà:
|
- Non sono consentiti spazi vuoti tra run_time, offset e formato ora.
- Per includere parentesi graffe letterali nella stringa, puoi eseguire l'escape come
'\{' and '\}'
. - Per includere virgolette letterali o una barra verticale nel formato time_format, ad esempio
"YYYY|MM|DD"
, puoi utilizzare l'escape delle virgolette nella stringa del formato:'\"'
o'\|'
.
Esempi di modelli di parametri
In questi esempi viene illustrato come specificare i nomi delle tabelle di destinazione con formati orari diversi e come compensare il tempo di esecuzione.run_time (UTC) | Parametro basato su modello | Nome tabella di destinazione di output |
---|---|---|
15-02-2018 00:00:00 | mytable |
mytable |
15-02-2018 00:00:00 | mytable_{run_time|"%Y%m%d"} |
mytable_20180215 |
15-02-2018 00:00:00 | mytable_{run_time+25h|"%Y%m%d"} |
mytable_20180216 |
15-02-2018 00:00:00 | mytable_{run_time-1h|"%Y%m%d"} |
mytable_20180214 |
15-02-2018 00:00:00 | mytable_{run_time+1.5h|"%Y%m%d%H"}
o mytable_{run_time+90m|"%Y%m%d%H"} |
mytable_2018021501 |
15-02-2018 00:00:00 | {run_time+97s|"%Y%m%d"}_mytable_{run_time+97s|"%H%M%S"} |
20180215_mytable_000137 |
Opzioni di partizionamento
In BigQuery esistono due tipi di tabelle partizionate:
- Tabelle partizionate per data e ora di importazione. Per i trasferimenti in Cloud Storage, Blob Storage e Amazon S3, il tempo di importazione corrisponde a quello di esecuzione del trasferimento.
- Tabelle partizionate in base a una colonna. Il tipo di colonna deve essere una colonna
TIMESTAMP
oDATE
.
Se la tabella di destinazione è partizionata in una colonna, identifichi la colonna di partizionamento quando crei la tabella di destinazione e specifichi il relativo schema. Scopri di più sulla creazione di tabelle partizionate basate su colonne in Creazione e utilizzo delle tabelle partizionate.
Esempi di partizionamento
- Tabella senza partizionamento
- Tabella di destinazione:
mytable
- Tabella di destinazione:
- Tabella partizionata per data di importazione
- Tabella di destinazione:
mytable$YYYYMMDD
- Tieni presente che non è possibile specificare i minuti.
- Tabella di destinazione:
- Tabella partizionata per colonne
- Tabella di destinazione:
mytable
- Specifica la colonna di partizionamento come colonna
TIMESTAMP
oDATE
quando crei lo schema della tabella.
- Tabella di destinazione:
Note sull'utilizzo dei parametri
- Se suddividi i dati in base al tuo fuso orario locale, dovrai calcolare manualmente la differenza oraria rispetto al fuso orario UTC utilizzando il meccanismo di compensazione nella sintassi dei modelli.
- I minuti non possono essere specificati nei parametri.
- È consentito l'utilizzo di caratteri jolly per l'URI o il percorso dei dati in combinazione con i parametri nel nome della tabella di destinazione.
Esempi di parametri di runtime
I seguenti esempi mostrano come combinare il carattere jolly e i parametri per casi d'uso comuni. Supponiamo che il nome della tabella sia mytable
e che run_time
sia 2018-02-15 00:00:00
(UTC) per tutti gli esempi.
Trasferire i dati in una tabella non partizionata
Questo caso d'uso si applica al caricamento di nuovi file da un bucket Cloud Storage, Blob Storage o Amazon S3 in una tabella non partizionata. Questo esempio utilizza un carattere jolly nell'URI o nel percorso dei dati e utilizza un trasferimento di aggiornamento ad hoc per recuperare nuovi file.
Origine dati | URI di origine o percorso dei dati | Nome tabella di destinazione |
---|---|---|
Cloud Storage | gs://bucket/*.csv |
mytable |
Amazon S3 | s3://bucket/*.csv |
mytable |
Archiviazione blob | *.csv |
mytable |
Carica uno snapshot di tutti i dati in una tabella partizionata per data di importazione
In questo caso, tutti i dati nell'URI o nel percorso dei dati specificato vengono trasferiti in una tabella partizionata entro la data odierna. In un trasferimento di aggiornamento, questa configurazione raccoglie i file aggiunti dall'ultimo caricamento e li aggiunge a una particolare partizione.
Origine dati | URI di origine o percorso dei dati | Nome tabella di destinazione parametrizzata | Nome tabella di destinazione valutata |
---|---|---|---|
Cloud Storage | gs://bucket/*.csv |
mytable${run_time|"%Y%m%d"} |
mytable$20180215 |
Amazon S3 | s3://bucket/*.csv |
mytable${run_time|"%Y%m%d"} |
mytable$20180215 |
Archiviazione blob | *.csv |
mytable${run_time|"%Y%m%d"} |
mytable$20180215 |
Questo caso d'uso trasferisce i dati di oggi in una tabella partizionata in base alla data odierna. Questo esempio si applica anche a un trasferimento di aggiornamento che recupera i file appena aggiunti che corrispondono a una determinata data e carica i dati nella partizione corrispondente.
Origine dati | URI o percorso dati parametrizzato | Nome tabella di destinazione parametrizzata | URI valutato o percorso dei dati | Nome tabella di destinazione valutata |
---|---|---|---|---|
Cloud Storage | gs://bucket/events-{run_time|"%Y%m%d"}/*.csv |
mytable${run_time|"%Y%m%d"} |
gs://bucket/events-20180215/*.csv |
mytable$20180215 |
Amazon S3 | s3://bucket/events-{run_time|"%Y%m%d"}/*.csv |
mytable${run_time|"%Y%m%d"} |
s3://bucket/events-20180215/*.csv |
mytable$20180215 |
Archiviazione blob | events-{run_time|"%Y%m%d"}/*.csv |
mytable${run_time|"%Y%m%d"} |
events-20180215/*.csv |
mytable$20180215 |
Passaggi successivi
- Scopri di più sulla configurazione di un trasferimento in Cloud Storage.
- Scopri di più su BigQuery Data Transfer Service.