Parametri di runtime nei trasferimenti dei report Cloud 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 denominati 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 determinata data
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_timetra 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 di 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 la creazione di 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:01:00 | mytable |
mytable |
| 2018-02-15 00:01:00 | mytable_{run_time|"%Y%m%d"} |
mytable_20180215 |
| 2018-02-15 00:01:00 | mytable_{run_time+25h|"%Y%m%d"} |
mytable_20180216 |
| 2018-02-15 00:01:00 | mytable_{run_time-1h|"%Y%m%d"} |
mytable_20180214 |
| 2018-02-15 00:01: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:01:00 | {run_time+97s|"%Y%m%d"}_mytable_{run_time+97s|"%H%M%S"} |
20180215_mytable_000237 |
Opzioni di partizionamento
In BigQuery esistono due tipi di tabelle partizionate:
- Tabelle partizionate per data di importazione. Per i trasferimenti 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, devi identificare la colonna di partizionamento quando crei la tabella di destinazione e specificarne 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 tuo fuso orario locale, devi calcolare manualmente l'offset orario rispetto all'UTC utilizzando il meccanismo di offset 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 recuperare 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 tabella di destinazione valutato |
|---|---|---|---|
| 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 dei dati con parametri | Nome della tabella di destinazione con parametri | URI o percorso dati valutato | Nome tabella di destinazione valutato |
|---|---|---|---|---|
| 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 Cloud Storage.
- Scopri di più su BigQuery Data Transfer Service.