Parametri 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 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à:


offset
Offset temporale espresso in ore (h), minuti (m) e secondi (s) in questo ordine.
giorni (g) non sono supportati.
Sono consentiti i numeri decimali, ad esempio: 1.5h.

time_format
Una stringa di formattazione. I parametri di formattazione più comuni sono anni (%Y), mesi (%m) e giorni (%d).
Per le tabelle partizionate, AAAAMMGG è il suffisso obbligatorio, equivalente a "%Y%m%d".

Scopri di più sulla formattazione degli elementi data/ora.

Note sull'utilizzo:
  • 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 TIMESTAMP o DATE.

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

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