La pagina spiega come utilizzare Dataflow SQL e creare job Dataflow SQL.
Per creare un job Dataflow SQL, devi scrivere e eseguire una query Dataflow SQL.
Utilizzare l'editor Dataflow SQL
L'editor Dataflow SQL è una pagina della console Google Cloud in cui puoi scrivere ed eseguire query per creare job Dataflow SQL.
Per accedere all'editor Dataflow SQL:
Nella console Google Cloud, vai alla pagina Editor SQL di Dataflow.
Puoi anche accedere all'editor Dataflow SQL dall'interfaccia di monitoraggio di Dataflow seguendo questi passaggi:
Nella console Google Cloud, vai alla pagina Job di Dataflow.
Nel menu Dataflow, fai clic su Spazio di lavoro SQL.
Scrivere query Dataflow SQL
Le query Dataflow SQL utilizzano la sintassi query SQL SQL. La sintassi delle query Dataflow SQL è simile a quella di SQL standard di BigQuery.
Puoi utilizzare le estensioni di gestione dei flussi di Dataflow SQL per aggregare i dati provenienti da origini Dataflow in aggiornamento continuo come Pub/Sub.
Ad esempio, la seguente query conteggia i passeggeri in un flusso Pub/Sub di corse in taxi ogni minuto:
SELECT DATETIME(tr.window_start) AS starttime, SUM(tr.passenger_count) AS pickup_count FROM TUMBLE ((SELECT * FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`), DESCRIPTOR(event_timestamp), 'INTERVAL 1 MINUTE') AS tr WHERE tr.ride_status = "pickup" GROUP BY DATETIME(tr.window_start)
Esegui query Dataflow SQL
Quando esegui una query SQL di Dataflow, Dataflow trasforma la query in una pipeline Apache Beam e la esegue.
Puoi eseguire una query Dataflow SQL utilizzando la console Google Cloud o Google Cloud CLI.
Console
Per eseguire una query Dataflow SQL, utilizza l'editor Dataflow SQL:
Vai alla pagina Editor Dataflow SQL.
Inserisci la query SQL di Dataflow nell'editor delle query.
Fai clic su Crea job per aprire un riquadro di opzioni per i job.
(Facoltativo) Per Nome job, inserisci un nome univoco per il job.
Per Endpoint a livello di regione, seleziona un valore dal menu.
(Facoltativo) Fai clic su Mostra parametri facoltativi e inserisci i valori per le opzioni della pipeline Dataflow fornite.
In Destinazione, seleziona un Tipo di output, quindi inserisci i valori per i campi forniti.
(Facoltativo) Nella sezione Parametri di query SQL, aggiungi i parametri, quindi inserisci i valori nei campi forniti.
Fai clic su Crea.
gcloud
Per eseguire una query Dataflow SQL, utilizza il comando gcloud dataflow sql query
. Di seguito è riportato un esempio di query SQL che crea
gcloud dataflow sql query \ --job-name=JOB_NAME \ --region=REGION \ --bigquery-table=BIGQUERY_TABLE \ --bigquery-dataset=BIGQUERY_DATASET \ --bigquery-project=BIGQUERY_PROJECT \ 'SQL_QUERY'
Sostituisci quanto segue:
JOB_NAME
: un nome per il job Dataflow SQLREGION
: la posizione di Dataflow per il deployment del job DataflowBIGQUERY_TABLE
: il nome della tabella BigQuery in cui vuoi scrivere l'outputBIGQUERY_DATASET
: l'ID set di dati BigQuery che contiene la tabella di outputBIGQUERY_PROJECT
: l'ID del progetto Google Cloud che contiene la tabella BigQuery di outputSQL_QUERY
: la query Dataflow SQL
Impostare le opzioni della pipeline
Puoi impostare le opzioni della pipeline Dataflow per i job Dataflow SQL. Le opzioni della pipeline Dataflow sono parametri di esecuzione che configurano come e dove eseguire le query SQL di Dataflow.
Per impostare le opzioni della pipeline di Dataflow per i job Dataflow SQL, specifica i seguenti parametri quando esegui una query Dataflow SQL.
Console
Parametro | Tipo | Descrizione | Valore predefinito |
---|---|---|---|
Endpoint regionale | String |
La regione in cui eseguire la query. Le query Dataflow SQL possono essere eseguite nelle regioni che dispongono di una località Dataflow. | Se non impostato, il valore predefinito è us-central1. |
N. massimo di worker | int |
Il numero massimo di istanze Compute Engine disponibili per la pipeline durante l'esecuzione. | Se non specificato, il servizio Dataflow determina automaticamente un numero appropriato di worker. |
Regione del worker | String |
La regione Compute Engine per l'avvio delle istanze di worker per eseguire la pipeline. La regione del worker Compute Engine può essere diversa da quella del job Dataflow. | Se non è impostato, viene utilizzata per impostazione predefinita la regione Dataflow specificata. |
Zona del worker | String |
La zona Compute Engine per l'avvio delle istanze di worker per eseguire la pipeline. La zona Compute Engine può trovarsi in una regione diversa da quella del job Dataflow. |
Se non impostato, il valore predefinito è una zona nella regione del worker. Se la regione dei worker non è impostata, viene utilizzata per impostazione predefinita una zona nella regione Dataflow specificata. |
Indirizzo email dell'account di servizio | String |
L'indirizzo email dell'account di servizio di lavoro con cui eseguire la pipeline. L'indirizzo email deve avere il formato
my-service-account-name@<project-id>.iam.gserviceaccount.com .
|
Se non è impostato, i worker Dataflow utilizzano l'account di servizio Compute Engine del progetto corrente come account di servizio del worker. |
Tipo di macchina | String |
Il tipo di macchina Compute Engine utilizzato da Dataflow per avviare i worker. Puoi utilizzare qualsiasi famiglia di tipo di macchina Compute Engine disponibile, nonché tipi di macchine personalizzate. Per risultati ottimali, utilizza i tipi di macchine Tieni presente che Dataflow fattura in base al numero di vCPU e GB di memoria nei worker. La fatturazione è indipendente dalla famiglia di tipo di macchina. |
Se non è impostato, Dataflow sceglie automaticamente il tipo di macchina. |
Esperimenti ulteriori | String |
Gli esperimenti da attivare. Un esperimento può essere un valore, come
enable_streaming_engine , o una coppia chiave-valore, come
shuffle_mode=service . Gli esperimenti devono essere in un
elenco separato da virgole. |
Se non specificato, non vengono attivati esperimenti. |
Configurazione dell'indirizzo IP del worker | String |
Specifica se i worker di Dataflow utilizzano indirizzi IP pubblici. Se il valore è impostato su Se il valore è impostato su |
Se non viene impostato, il valore predefinito è Public . |
Rete | String |
La rete Compute Engine a cui sono assegnati i worker. | Se non impostato, il valore predefinito è la rete default . |
Subnet | String |
La subnet Compute Engine
a cui sono assegnati i worker. La sottorete deve avere il formato
regions/region/subnetworks/subnetwork . |
Se non è impostato, Dataflow determina automaticamente la sottorete. |
gcloud
Bandiera | Tipo | Descrizione | Valore predefinito |
---|---|---|---|
‑‑region |
String |
La regione in cui eseguire la query. Le query Dataflow SQL possono essere eseguite nelle regioni che dispongono di una località Dataflow. | Se non è impostato, viene generato un errore. |
‑‑max‑workers |
int |
Il numero massimo di istanze Compute Engine disponibili per la pipeline durante l'esecuzione. | Se non specificato, Dataflow determina automaticamente un numero appropriato di worker. |
‑‑num‑workers |
int |
Il numero iniziale di istanze Compute Engine da utilizzare durante l'esecuzione della pipeline. Questo parametro determina il numero di worker Dataflow avviati all'inizio del job. | Se non specificato, Dataflow determina automaticamente un numero appropriato di worker. |
‑‑worker‑region |
String |
La regione Compute Engine per l'avvio delle istanze di worker per l'esecuzione della pipeline. La regione del worker Compute Engine può essere diversa da quella del job Dataflow.
Puoi specificare uno tra
|
Se non è impostato, viene utilizzata per impostazione predefinita la regione Dataflow specificata. |
‑‑worker‑zone |
String |
La zona Compute Engine per l'avvio delle istanze di worker per eseguire la pipeline. La zona Compute Engine può trovarsi in una regione diversa da quella del job Dataflow.
Puoi specificare uno tra
|
Se non è impostato, viene utilizzato per impostazione predefinita una zona nella regione Dataflow specificata. |
‑‑worker‑machine‑type |
String |
Il tipo di macchina Compute Engine utilizzato da Dataflow per avviare i worker. Puoi utilizzare qualsiasi famiglia di tipo di macchina Compute Engine disponibile, nonché tipi di macchine personalizzate. Per risultati ottimali, utilizza i tipi di macchine Tieni presente che Dataflow fattura in base al numero di vCPU e GB di memoria nei worker. La fatturazione è indipendente dalla famiglia di tipo di macchina. |
Se non è impostato, Dataflow sceglie automaticamente il tipo di macchina. |
‑‑service‑account‑email |
String |
L'indirizzo email dell'account di servizio di lavoro con cui eseguire la pipeline. L'indirizzo email deve avere il formato
my-service-account-name@<project-id>.iam.gserviceaccount.com .
|
Se non è impostato, i worker Dataflow utilizzano l'account di servizio Compute Engine del progetto corrente come account di servizio del worker. |
‑‑disable‑public‑ips |
boolean |
Specifica se i worker di Dataflow utilizzano indirizzi IP pubblici. Se impostato, i worker di Dataflow utilizzano indirizzi IP privati per tutte le comunicazioni. |
Se non è impostato, i worker di Dataflow utilizzano indirizzi IP pubblici. |
‑‑network |
String |
La rete Compute Engine a cui sono assegnati i worker. | Se non impostato, il valore predefinito è la rete default . |
‑‑subnetwork |
String |
La subnet Compute Engine
a cui sono assegnati i worker. La sottorete deve avere il formato
regions/region/subnetworks/subnetwork . |
Se non è impostato, Dataflow determina automaticamente la sottorete. |
‑‑dataflow‑kms‑key |
String |
La chiave di crittografia gestita dal cliente (CMEK) impiegata per criptare i dati at-rest. Puoi controllare la chiave di crittografia tramite Cloud KMS. La chiave deve trovarsi nella stessa posizione del job. | Se non specificato, Dataflow utilizza la crittografia Google Cloud predefinita anziché una CMEK. |
Per ulteriori informazioni, consulta la documentazione di riferimento del comando
gcloud dataflow sql query
.
Interrompi i job Dataflow SQL
Per interrompere un job Dataflow SQL, devi annullarlo.
L'interruzione di un job SQL di Dataflow con l'opzione drain
non è supportata.
Prezzi
Dataflow SQL utilizza i prezzi standard di Dataflow e non ha prezzi separati. Ti vengono addebitate le risorse consumate dai job Dataflow che crei in base alle istruzioni SQL. Gli addebiti per queste risorse sono gli addebiti standard di Dataflow per vCPU, memoria, Persistent Disk, Streaming Engine e Dataflow Shuffle.
Un job SQL di Dataflow potrebbe consumare risorse aggiuntive come Pub/Sub e BigQuery, ciascuna fatturata in base ai relativi prezzi.
Per ulteriori informazioni sui prezzi di Dataflow, consulta Prezzi di Dataflow.
Passaggi successivi
- Consulta il tutorial Unione dei flussi di dati con Dataflow SQL.
- Esplora Google Cloud CLI per Dataflow SQL.