Parametri di runtime nei trasferimenti di Amazon S3
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 ti consente di caricare i dati dai bucket organizzati per data. Questi parametri sono chiamati parametri di runtime per distinguerli dai parametri di ricerca.
Quando utilizzi i parametri di runtime in un trasferimento, puoi:
- Specificare come partizionare la tabella di destinazione
- Recuperare i file che corrispondono a una data specifica
Parametri di runtime disponibili
Quando configuri il trasferimento di 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 pianificati 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.Consulta TransferRun.runTime |
run_date |
Stringa della 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 i modelli di stringhe di base e l'offset temporale. I parametri vengono referenziati nei seguenti formati:
{run_date}{run_time[+\-offset]|"time_format"}
| Parametro | Scopo |
|---|---|
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 l'ora di esecuzione.| run_time (UTC) | Parametro con modello | Nome della 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"}
or 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 di Cloud Storage, Blob Storage e Amazon S3, la data di importazione è la data di esecuzione del trasferimento.
- Tabelle partizionate in base a una colonna. Il
tipo di colonna deve essere
TIMESTAMPoDATEcolonna.
Se la tabella di destinazione è partizionata in base a una colonna, devi identificare 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 tuo fuso orario locale, devi calcolare manualmente l'offset orario dall'UTC utilizzando il meccanismo di offset nella sintassi dei modelli.
- Non è possibile specificare i minuti nei parametri.
- È consentito utilizzare i 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 come combinare il carattere jolly e i parametri per i 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 |
| Blob Storage | *.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 in una tabella partizionata in base alla data odierna. In un trasferimento di aggiornamento, questa configurazione seleziona i file aggiunti dall'ultimo caricamento e li aggiunge a una partizione specifica.
| Origine dati | URI di origine o percorso dei dati | Nome 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 |
| Blob Storage | *.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 dei dati con parametri | Nome tabella di destinazione con parametri | URI o percorso dei 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 |
| Blob Storage | events-{run_time|"%Y%m%d"}/*.csv |
mytable${run_time|"%Y%m%d"} |
events-20180215/*.csv |
mytable$20180215 |
Passaggi successivi
- Scopri come configurare un trasferimento Amazon S3.
- Scopri di più su BigQuery Data Transfer Service.