L'I/O gestito di Dataflow per BigQuery ti consente di trasformare e arricchire i dati nelle pipeline di streaming e batch. Integra BigQuery sia come origine sia come destinazione per i job Dataflow, semplificando le interazioni con l'API BigQuery. Puoi elaborare set di dati su larga scala per diversi casi d'uso, dall'analisi in tempo reale al data warehousing, utilizzando la creazione di tabelle dinamiche e le destinazioni in BigQuery.
Vantaggi dell'I/O gestito
L'I/O gestito offre i seguenti vantaggi e funzionalità per BigQuery:
- Creazione di tabelle dinamiche
- Destinazioni dinamiche
- Per le letture, il connettore utilizza l' API BigQuery Storage Read.
Per le scritture, il connettore utilizza i seguenti metodi BigQuery:
- Se l'origine non è limitata e Dataflow utilizza l'elaborazione di streaming exactly-once, il connettore esegue le scritture in BigQuery utilizzando l'API BigQuery Storage Write (gRPC) con semantica di consegna exactly-once.
- Se l'origine non è limitata e Dataflow utilizza l'elaborazione di streaming at-least-once, il connettore esegue le scritture in BigQuery utilizzando l'API BigQuery Storage Write (gRPC) con semantica di consegna at-least-once.
- Se l'origine è limitata, il connettore utilizza i caricamenti di file BigQuery.
Requisiti
I seguenti SDK supportano l'I/O gestito per BigQuery:
- SDK Apache Beam per Java versione 2.61.0 o successive
- SDK Apache Beam per Python versione 2.61.0 o successive
Configurazione
L'I/O gestito per BigQuery supporta i seguenti parametri di configurazione:
Lettura BIGQUERY
| Configurazione | Tipo | Descrizione |
|---|---|---|
| kms_key |
str
|
Utilizza questa chiave Cloud KMS per criptare i dati |
| query |
str
|
La query SQL da eseguire per leggere dalla tabella BigQuery. |
| row_restriction |
str
|
Leggi solo le righe che corrispondono a questo filtro, che deve essere compatibile con GoogleSQL standard. Questa opzione non è supportata durante la lettura tramite query. |
| fields |
list[str]
|
Leggi solo i campi (colonne) specificati da una tabella BigQuery. I campi potrebbero non essere restituiti nell'ordine specificato. Se non viene specificato alcun valore, vengono restituiti tutti i campi. Esempio: "col1, col2, col3" |
| table |
str
|
Il nome completo della tabella BigQuery da cui leggere. Formato: [${PROJECT}:]${DATASET}.${TABLE} |
Scrittura BIGQUERY
| Configurazione | Tipo | Descrizione |
|---|---|---|
| table |
str
|
La tabella BigQuery in cui scrivere. Formato: [${PROJECT}:]${DATASET}.${TABLE} |
| drop |
list[str]
|
Un elenco di nomi di campi da eliminare dal record di input prima della scrittura. Si esclude a vicenda con "keep" e "only". |
| keep |
list[str]
|
Un elenco di nomi di campi da conservare nel record di input. Tutti gli altri campi vengono eliminati prima della scrittura. Si esclude a vicenda con "drop" e "only". |
| kms_key |
str
|
Utilizza questa chiave Cloud KMS per criptare i dati |
| only |
str
|
Il nome di un singolo campo del record da scrivere. Si esclude a vicenda con "keep" e "drop". |
| triggering_frequency_seconds |
int64
|
Determina la frequenza con cui "eseguire il commit" dei progressi in BigQuery. Il valore predefinito è ogni 5 secondi. |
Passaggi successivi
Per ulteriori informazioni ed esempi di codice, consulta i seguenti argomenti: