Utilizza SQL Dataflow

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

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

Utilizza l'editor SQL di Dataflow

L'editor SQL di Dataflow è una pagina della console Google Cloud in cui puoi scrivere ed eseguire query per creare job Dataflow SQL.

Per accedere all'editor SQL di Dataflow, segui questi passaggi:

Puoi anche accedere all'editor SQL di Dataflow 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 Area di lavoro SQL.

Scrivi query SQL Dataflow

Le query SQL di Dataflow utilizzano la sintassi delle query SQL di Dataflow. La sintassi delle query SQL di Dataflow è simile all'SQL standard di BigQuery.

Puoi utilizzare le estensioni per i flussi di dati SQL Dataflow per aggregare i dati provenienti da origini Dataflow aggiornate continuamente 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 SQL di Dataflow

Quando esegui una query SQL Dataflow, Dataflow trasforma la query in una pipeline Apache Beam ed esegue la pipeline.

Puoi eseguire una query SQL Dataflow utilizzando la console Google Cloud o Google Cloud CLI.

Console

Per eseguire una query SQL Dataflow, utilizza l'editor SQL di Dataflow:

  1. Vai alla pagina Editor SQL di Dataflow.

    Vai all'editor SQL di Dataflow

  2. Inserisci la query SQL Dataflow nell'Editor query.

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

  4. (Facoltativo) In Nome job, inserisci un nome univoco per il job.

  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. In Destinazione, seleziona un Tipo di output, quindi inserisci i valori per i campi forniti.

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

  9. Fai clic su Crea.

gcloud

Per eseguire una query SQL di Dataflow, utilizza il comando gcloud dataflow sql query. Di seguito è riportata una query SQL di esempio 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 SQL di Dataflow
  • REGION: la località Dataflow per il deployment del job Dataflow
  • BIGQUERY_TABLE: il nome della tabella BigQuery in cui vuoi scrivere l'output
  • BIGQUERY_DATASET: l'ID del set di dati BigQuery contenente la tabella di output
  • BIGQUERY_PROJECT: l'ID del progetto Google Cloud contenente la tabella BigQuery di output
  • SQL_QUERY: la tua query SQL Dataflow

Imposta opzioni pipeline

Puoi impostare le opzioni della pipeline Dataflow per i job SQL di Dataflow. 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 Dataflow per i job SQL di Dataflow, specifica i seguenti parametri quando esegui una query SQL di Dataflow.

Console

Parametro Tipo Descrizione Valore predefinito
Endpoint a livello di regione String La regione in cui eseguire la query. Le query SQL di Dataflow possono essere eseguite nelle regioni che hanno una località Dataflow. Se non viene configurato, il valore predefinito è us-central1.
Massimo worker int Il numero massimo di istanze di Compute Engine disponibili per la pipeline durante l'esecuzione. Se non specificato, il servizio Dataflow determina automaticamente un numero appropriato di worker.
Regione worker String La regione di Compute Engine per l'avvio delle istanze worker per l'esecuzione della pipeline. La regione dei worker di Compute Engine può trovarsi in una regione diversa da quella del job di Dataflow. Se non viene configurato, il valore predefinito è la regione Dataflow specificata.
Zona Worker String Zona Compute Engine per l'avvio delle istanze worker per l'esecuzione della pipeline. La zona di Compute Engine può trovarsi in una regione diversa da quella del job di Dataflow.

Se non viene configurato, il valore predefinito corrisponde a una zona nella regione dei worker.

Se la regione worker non è impostata, il valore predefinito sarà una zona nella regione Dataflow specificata.

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

Il tipo di macchina di Compute Engine utilizzato da Dataflow all'avvio dei worker. Puoi utilizzare qualsiasi famiglia di tipo di macchina Compute Engine disponibile e tipi di macchine personalizzate.

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

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

Se non viene configurato, Dataflow sceglie automaticamente il tipo di macchina.
Esperimenti aggiuntivi 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 specificati, non vengono attivati esperimenti.
Configurazione degli indirizzi IP del worker String

Specifica se i worker di Dataflow utilizzano indirizzi IP pubblici.

Se il valore è impostato su Private, i worker Dataflow utilizzano indirizzi IP privati per tutte le comunicazioni. Per il Network o Subnetwork specificato deve essere abilitato l' accesso privato Google.

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

Se non viene configurato, il valore predefinito è Public.
Rete String La rete di Compute Engine a cui sono assegnati i worker. Se non viene configurata, il valore predefinito sarà 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 viene configurato, Dataflow determina automaticamente la subnet.

gcloud

Flag Tipo Descrizione Valore predefinito
‑‑region String La regione in cui eseguire la query. Le query SQL di Dataflow possono essere eseguite nelle regioni che hanno una località Dataflow. Se non viene configurato, viene restituito un errore.
‑‑max‑workers int Il numero massimo di istanze di 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 di Compute Engine da utilizzare durante l'esecuzione della pipeline. Questo parametro determina il numero di worker che Dataflow viene avviato all'avvio del job. Se non specificato, Dataflow determina automaticamente un numero appropriato di worker.
‑‑worker‑region String

La regione di Compute Engine per l'avvio delle istanze worker per l'esecuzione della pipeline. La regione dei worker di Compute Engine può trovarsi in una regione diversa da quella del job di Dataflow.

Puoi specificare un valore tra ‑‑worker‑region o ‑‑worker‑zone.

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

Zona Compute Engine per l'avvio delle istanze worker per l'esecuzione della pipeline. La zona di Compute Engine può trovarsi in una regione diversa da quella del job di Dataflow.

Puoi specificare un valore tra ‑‑worker‑region o ‑‑worker‑zone.

Se non viene configurato, il valore predefinito corrisponde a una zona nella regione Dataflow specificata.
‑‑worker‑machine‑type String

Il tipo di macchina di Compute Engine utilizzato da Dataflow all'avvio dei worker. Puoi utilizzare qualsiasi famiglia di tipo di macchina Compute Engine disponibile e tipi di macchine personalizzate.

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

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

Se non viene configurato, Dataflow sceglie automaticamente il tipo di macchina.
‑‑service‑account‑email String L'indirizzo email dell'account di servizio worker con cui eseguire la pipeline. L'indirizzo email deve essere nel formato my-service-account-name@<project-id>.iam.gserviceaccount.com. Se non viene configurato, i worker Dataflow utilizzano l'account di servizio Compute Engine del progetto attuale come account di servizio worker.
‑‑disable‑public‑ips boolean

Specifica se i worker di Dataflow utilizzano indirizzi IP pubblici.

Se impostato, i worker Dataflow utilizzano indirizzi IP privati per tutte le comunicazioni.

Se non viene configurato, i worker Dataflow utilizzano indirizzi IP pubblici.
‑‑network String La rete di Compute Engine a cui sono assegnati i worker. Se non viene configurata, il valore predefinito sarà 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 viene configurato, 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 specificati, Dataflow utilizza la crittografia di Google Cloud predefinita anziché una CMEK.

Per saperne di più, consulta il riferimento ai comandi gcloud dataflow sql query.

Arresta i job SQL di Dataflow

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

Prezzi

Dataflow SQL utilizza i prezzi standard di Dataflow e non ha prezzi separati. Ti vengono addebitati i costi per le risorse utilizzate dai job Dataflow che crei in base alle istruzioni SQL. I costi 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 secondo i propri prezzi.

Per ulteriori informazioni sui prezzi di Dataflow, consulta Prezzi di Dataflow.

Passaggi successivi