Parametri runtime nei trasferimenti da Blob Storage
Quando configuri un trasferimento di dati in Cloud Storage, Azure Blob Storage 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 da bucket organizzati per data. Questi parametri sono chiamati parametri di runtime per distinguerli dai parametri di ricerca.
Quando utilizzi i parametri runtime in un trasferimento, puoi:
- Specifica come vuoi partizionare la tabella di destinazione
- Recuperare i file che corrispondono a una data specifica
Parametri di runtime disponibili
Quando configuri il trasferimento Cloud Storage, Blob Storage o Amazon S3, puoi specificare come partizionare la tabella di destinazione utilizzando i parametri di runtime.
| Parametro | Tipo di modello | Valore |
|---|---|---|
run_time |
Timestamp formattato | In orario UTC, in base alla pianificazione. 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 run_time tra due query consecutive sarà esattamente di 24 ore, anche se l'ora di esecuzione effettiva potrebbe variare leggermente.Vedi TransferRun.runTime |
run_date |
Stringa di 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 di modelli.
Sintassi dei modelli di parametri
La sintassi dei modelli supporta i modelli di stringhe di base e l'offset temporale. I parametri sono indicati nei seguenti formati:
{run_date}{run_time[+\-offset]|"time_format"}
| Parametro | Purpose |
|---|---|
run_date |
Questo parametro viene 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 dell'ora.
- Per includere parentesi graffe letterali nella stringa, puoi eseguirne l'escape come
'\{' and '\}'. - Per includere virgolette letterali o una barra verticale in time_format, ad esempio
"YYYY|MM|DD", puoi eseguirne l'escape nella stringa di formato come:'\"'o'\|'.
Esempi di modelli di parametri
Questi esempi mostrano come specificare i nomi delle tabelle di destinazione con formati di ora diversi e come compensare il tempo di esecuzione.| run_time (UTC) | Parametro basato su modello | Nome tabella di destinazione di output |
|---|---|---|
| 2018-02-15 00:00:00 | mytable |
mytable |
| 2018-02-15 00:00:00 | mytable_{run_time|"%Y%m%d"} |
mytable_20180215 |
| 2018-02-15 00:00:00 | mytable_{run_time+25h|"%Y%m%d"} |
mytable_20180216 |
| 2018-02-15 00:00:00 | mytable_{run_time-1h|"%Y%m%d"} |
mytable_20180214 |
| 2018-02-15 00:00:00 | mytable_{run_time+1.5h|"%Y%m%d%H"}
o mytable_{run_time+90m|"%Y%m%d%H"} |
mytable_2018021501 |
| 2018-02-15 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 di importazione. Per i trasferimenti da Cloud Storage, Blob Storage e Amazon S3, il tempo di importazione è il tempo di esecuzione del trasferimento.
- Tabelle partizionate in base a una colonna. Il tipo di colonna deve essere
TIMESTAMPoDATE.
Se la tabella di destinazione è partizionata in base a una colonna, identifichi la colonna di partizionamento quando crei la tabella di destinazione e ne specifichi lo schema. Scopri di più sulla creazione di tabelle partizionate basate su colonne in Creazione e utilizzo di 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
TIMESTAMPoDATEquando crei lo schema della tabella.
- Tabella di destinazione:
Note sull'utilizzo dei parametri
- Se partizioni i dati in base al fuso orario locale, devi calcolare manualmente l'offset orario rispetto all'UTC utilizzando il meccanismo di compensazione nella sintassi dei modelli.
- I minuti non possono essere specificati nei parametri.
- È consentito utilizzare 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
Gli esempi seguenti mostrano i modi per 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 un trasferimento di aggiornamento ad hoc per selezionare i 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 |
Caricare 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 a una tabella partizionata in base alla data odierna. In un trasferimento di aggiornamento, questa configurazione recupera i file aggiunti dall'ultimo caricamento e li aggiunge a una partizione specifica.
| Origine dati | URI di origine o percorso dei dati | Nome della tabella di destinazione con parametri | Nome della 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 odierni 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 con parametri | Nome della tabella di destinazione con parametri | URI o percorso dati valutato | Nome della 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 da Archiviazione BLOB di Azure.
- Scopri di più su BigQuery Data Transfer Service.