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


offset
Offset temporale espresso in ore (h), minuti (m) e secondi (s) in quest'ordine.
I giorni (d) non sono supportati.
Sono consentiti i 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, il suffisso richiesto è AAAAMMGG, 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 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 o DATE.

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

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