Utilizzare Dataflow SQL

La pagina spiega come utilizzare Dataflow SQL e creare job Dataflow SQL.

Per creare un job Dataflow SQL, devi scrivere ed eseguire una query Dataflow SQL.

Utilizzare l'editor Dataflow SQL

L'editor Dataflow SQL è una pagina della console Google Cloud in cui scrivi ed esegui query per creare job Dataflow SQL.

Per accedere all'editor Dataflow SQL:

Puoi accedere all'editor Dataflow SQL anche dall'interfaccia di monitoraggio di Dataflow seguendo questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Job di Dataflow.

    Vai a Job

  2. Nel menu Dataflow, fai clic su Workspace SQL.

Scrivere query Dataflow SQL

Le query Dataflow SQL utilizzano la sintassi query SQL SQL. La sintassi delle query Dataflow SQL è simile a BigQuery standard SQL.

Puoi utilizzare le estensioni di gestione dei flussi di Dataflow SQL per aggregare i dati provenienti da origini Dataflow in continuo aggiornamento, come Pub/Sub.

Ad esempio, la seguente query conta 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 Dataflow SQL, Dataflow trasforma la query in una pipeline Apache Beam ed esegue la pipeline.

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:

  1. Vai alla pagina Editor Dataflow SQL.

    Vai all'editor Dataflow SQL

  2. Inserisci la query Dataflow SQL nell'editor di query.

  3. Fai clic su Crea job per aprire un riquadro di opzioni per i job.

  4. (Facoltativo) Per Nome job, inserisci un nome job univoco.

  5. Per Endpoint a livello di regione, seleziona un valore dal menu.

  6. (Facoltativo) Fai clic su Mostra parametri facoltativi, quindi inserisci i valori per le opzioni della pipeline Dataflow fornite.

  7. Per Destinazione, seleziona un Tipo di output, quindi inserisci i valori per i campi forniti.

  8. (Facoltativo) Nella sezione Parametri query SQL, aggiungi i parametri e poi inserisci i valori nei campi forniti.

  9. 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 SQL
  • REGION: la posizione Dataflow per il deployment del job Dataflow
  • BIGQUERY_TABLE: il nome della tabella BigQuery in cui vuoi scrivere l'output
  • BIGQUERY_DATASET: l'ID set di dati BigQuery che contiene la tabella di output
  • BIGQUERY_PROJECT: l'ID progetto Google Cloud che contiene la tabella BigQuery di output
  • SQL_QUERY: la query Dataflow SQL

Impostare le opzioni 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 Dataflow SQL.

Per impostare le opzioni della pipeline 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 hanno una posizione 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 di Compute Engine per avviare le istanze di worker per eseguire la pipeline. La regione del worker Compute Engine può trovarsi in una regione diversa da quella del job Dataflow. Se non è impostata, il valore predefinito è la regione Dataflow specificata.
Zona del worker String La zona di Compute Engine per avviare le istanze di worker per eseguire la pipeline. La zona di Compute Engine può trovarsi in una regione diversa da quella del job Dataflow.

Se non impostata, il valore predefinito è una zona nella regione dei worker.

Se la regione del worker non è impostata, viene utilizzata per impostazione predefinita una zona nella regione Dataflow specificata.

Email del service account String L'indirizzo email del service account worker con cui eseguire la pipeline. L'indirizzo email deve essere nel formato my-service-account-name@<project-id>.iam.gserviceaccount.com. Se non impostati, i worker Dataflow utilizzano il account di servizio Compute Engine del progetto corrente come account di servizio worker.
Tipo di macchina String

Il tipo di macchina Compute Engine che Dataflow utilizza all'avvio dei worker. Puoi utilizzare una qualsiasi delle famiglie di tipo di macchina Compute Engine disponibili, nonché i tipi di macchine personalizzate.

Per risultati ottimali, utilizza i tipi di macchine n1. I tipi di macchine con core condivisi, come i worker delle serie f1 e g1, non sono supportati ai sensi dell'accordo sul livello del servizio Dataflow.

Tieni presente che Dataflow fattura in base al numero di vCPU e ai GB di memoria nei worker. La fatturazione è indipendente dalla famiglia di tipo di macchina.

Se non viene impostato, Dataflow sceglie automaticamente il tipo di macchina.
Altri esperimenti String Gli esperimenti da attivare. Un esperimento può essere un valore, ad esempio enable_streaming_engine, o una coppia chiave-valore, ad esempio 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 Private, i worker di Dataflow utilizzano indirizzi IP privati per tutte le comunicazioni. Il Network o Subnetwork specificato deve avere l'accesso privato Google abilitato.

Se il valore è impostato su Private e viene specificata l'opzione Subnetwork, l'opzione Network viene ignorata.

Se non è 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 di Compute Engine a cui sono assegnati i worker. La subnet deve essere nel formato regions/region/subnetworks/subnetwork. Se non impostata, Dataflow determina automaticamente la subnet.

gcloud

Flag Tipo Descrizione Valore predefinito
‑‑region String La regione in cui eseguire la query. Le query Dataflow SQL possono essere eseguite nelle regioni che hanno una posizione 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 che Dataflow avvia all'inizio del job. Se non specificato, Dataflow determina automaticamente un numero appropriato di worker.
‑‑worker‑region String

La regione di Compute Engine per avviare le istanze di worker per eseguire la pipeline. La regione del worker Compute Engine può trovarsi in una regione diversa da quella del job Dataflow.

Puoi specificare uno tra ‑‑worker‑region o ‑‑worker‑zone.

Se non è impostata, il valore predefinito è la regione Dataflow specificata.
‑‑worker‑zone String

La zona di Compute Engine per avviare le istanze di worker per eseguire la pipeline. La zona di Compute Engine può trovarsi in una regione diversa da quella del job Dataflow.

Puoi specificare uno tra ‑‑worker‑region o ‑‑worker‑zone.

Se non è impostata, il valore predefinito è una zona nella regione Dataflow specificata.
‑‑worker‑machine‑type String

Il tipo di macchina Compute Engine che Dataflow utilizza all'avvio dei worker. Puoi utilizzare una qualsiasi delle famiglie di tipo di macchina Compute Engine disponibili, nonché i tipi di macchine personalizzate.

Per risultati ottimali, utilizza i tipi di macchine n1. I tipi di macchine con core condivisi, come i worker delle serie f1 e g1, non sono supportati ai sensi dell'accordo sul livello del servizio Dataflow.

Tieni presente che Dataflow fattura in base al numero di vCPU e ai GB di memoria nei worker. La fatturazione è indipendente dalla famiglia di tipo di macchina.

Se non viene impostato, Dataflow sceglie automaticamente il tipo di macchina.
‑‑service‑account‑email String L'indirizzo email del service account worker con cui eseguire la pipeline. L'indirizzo email deve essere nel formato my-service-account-name@<project-id>.iam.gserviceaccount.com. Se non impostati, i worker Dataflow utilizzano il account di servizio Compute Engine del progetto corrente come account di servizio 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 di Compute Engine a cui sono assegnati i worker. La subnet deve essere nel formato regions/region/subnetworks/subnetwork. Se non impostata, Dataflow determina automaticamente la subnet.
‑‑dataflow‑kms‑key String La chiave di crittografia gestita dal cliente (CMEK) utilizzata 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 Google Cloud crittografia predefinita anziché una CMEK.

Per ulteriori informazioni, consulta il riferimento ai comandi gcloud dataflow sql query.

Arresta i job Dataflow SQL

Per arrestare un job Dataflow SQL, devi annullarlo. L'interruzione di un job Dataflow SQL con l'opzione drain non è supportata.

Prezzi

Dataflow SQL utilizza i prezzi standard di Dataflow e non ha prezzi separati. Ti vengono fatturate le risorse utilizzate dai job Dataflow che crei in base alle istruzioni SQL. I costi per queste risorse sono i costi standard di Dataflow per vCPU, memoria, Persistent Disk, Streaming Engine e Dataflow Shuffle.

Un job Dataflow SQL 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