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 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 corrispondenti a una determinata data

Parametri di runtime disponibili

Quando configuri il trasferimento di 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 Nell'ora UTC, in base alla programmazione. Per i trasferimenti programmati regolarmente, run_time rappresenta l'ora prevista per l'esecuzione. Ad esempio, se il trasferimento è impostato su "ogni 24 ore", la run_timedifferenza tra due query consecutive sarà esattamente di 24 ore, anche se il tempo di esecuzione effettivo potrebbe variare leggermente.

Consulta 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 creazione 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 lo sfasamento temporale. I parametri vengono 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 di tempo 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, 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 tra run_time, offset e il formato dell'ora.
  • Per includere le parentesi graffe nella stringa, puoi eseguire l'escape come '\{' and '\}'.
  • Per includere virgolette letterali o una barra verticale in time_format, ad esempio "YYYY|MM|DD", puoi eseguire la loro sfuggita nella stringa di formato come: '\"' o '\|'.

Esempi di creazione di modelli di parametri

Questi esempi mostrano come specificare i nomi delle tabelle di destinazione con formati di data diversi e compensare il tempo di esecuzione.
run_time (UTC) Parametro basato su modello Nome della tabella di destinazione dell'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, la data e l'ora di importazione corrispondono al tempo 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 base a una colonna, identifica la colonna di partizionamento quando crei la tabella di destinazione e specifica il relativo schema. Scopri di più sulla creazione di tabelle partizionate basate su colonne in Creare e utilizzare tabelle partizionate.

Esempi di partizionamento

Note sull'utilizzo dei parametri

  • Se partizioni i dati in base al tuo fuso orario locale, devi calcolare manualmente il décalage orario rispetto a 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 dati in combinazione con i parametri sul 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 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 acquisire i nuovi file.

Origine dati URI di origine o percorso dati Nome della 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 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 determinata partizione.

Origine dati URI di origine o percorso 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 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 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