Usa Dataflow SQL

La pagina spiega come utilizzare Dataflow SQL e creare Dataflow SQL di lavoro.

Per creare un job SQL Dataflow, devi scrivere e esegui una query SQL di Dataflow.

Usare 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 dal Dataflow dell'interfaccia di monitoraggio seguendo questi passaggi:

  1. Nella console Google Cloud, vai ai Job di Dataflow. .

    Vai a Job

  2. Nel menu Dataflow, fai clic su Area di lavoro SQL.

Scrivi query SQL di Dataflow

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

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

Ad esempio, la seguente query conteggia i passeggeri in una Flusso di corse in taxi al minuto in Pub/Sub:

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 le query SQL di Dataflow

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

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

Console

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

  1. Vai alla pagina dell'editor SQL Dataflow.

    Vai all'editor SQL di Dataflow

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

  3. Fai clic su Crea job per aprire un riquadro di opzioni relative al 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 e inserisci i valori per i delle opzioni della pipeline Dataflow.

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

  8. (Facoltativo) Nella sezione Parametri di query SQL, aggiungi i parametri e quindi inserisci i valori negli appositi campi.

  9. Fai clic su Crea.

gcloud

Per eseguire una query SQL di Dataflow, utilizza 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 tuo job SQL Dataflow.
  • REGION: la località Dataflow per il deployment del tuo job Dataflow
  • BIGQUERY_TABLE: il nome del Tabella BigQuery in cui scrivere l'output
  • BIGQUERY_DATASET: l'ID del 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 tua query SQL di 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 in regioni con un Località Dataflow: Se non viene configurato, il valore predefinito è us-central1.
Numero massimo di worker int Il numero massimo di istanze Compute Engine disponibili della 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 avviare le istanze worker al fine di eseguire la pipeline. La La regione dei worker di Compute Engine può trovarsi in una regione diversa da quella regione del job Dataflow. Se non viene configurato, il valore predefinito è il Dataflow specificato regione.
Zona worker String La zona di Compute Engine per avviare le istanze worker al fine di eseguire la pipeline. La La zona di Compute Engine può trovarsi in una regione diversa da quella regione del job Dataflow.

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

Se la regione del worker non è impostata, il valore predefinito è 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 è impostato, i worker Dataflow utilizzano il Compute Engine dell'account di servizio del progetto attuale come account di servizio worker.
Tipo di macchina String

Il tipo di macchina di Compute Engine Utilizza Dataflow all'avvio dei worker. Puoi utilizzare qualsiasi modello delle famiglie di tipo di macchina Compute Engine e dei tipi di macchine personalizzate.

Per ottenere risultati ottimali, utilizza n1 tipi di macchina. Tipi di macchina con core condivisi, come I worker della serie f1 e g1 non sono supportati dal Accordo sul livello del servizio di Dataflow.

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

Se non impostato, Dataflow sceglie automaticamente la macchina di testo.
Altri esperimenti String Gli esperimenti da attivare. Un esperimento può essere un valore, 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, nessun esperimento è attivato.
Configurazione dell'indirizzo IP dei worker String

Specifica se i worker di Dataflow utilizzano indirizzi IP pubblici.

Se il valore è impostato su Private, Dataflow i worker usano indirizzi IP privati per tutte le comunicazioni. Il valore specificato Network o Subnetwork devono avere Accesso privato Google abilitato.

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

Se non viene configurato, il valore predefinito è Public.
Rete String La rete di Compute Engine che quali worker sono assegnati. Se il criterio non viene configurato, viene utilizzata per impostazione predefinita la rete default.
Subnet String La subnet di Compute Engine a cui sono assegnati i worker. La subnet deve essere in forma regions/region/subnetworks/subnetwork. Se non viene impostato, Dataflow determina automaticamente la subnet.

gcloud

Bandiera Tipo Descrizione Valore predefinito
‑‑region String La regione in cui eseguire la query. Le query SQL di Dataflow possono essere eseguite in regioni con un Località Dataflow: Se non viene configurato, genera un errore.
‑‑max‑workers int Il numero massimo di istanze Compute Engine disponibili della 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 quando che esegue la pipeline. Questo parametro determina il numero di worker Dataflow si 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 worker al fine di eseguire la pipeline. La La regione dei worker di Compute Engine può trovarsi in una regione diversa da quella regione del job Dataflow.

Puoi specificare uno dei seguenti ‑‑worker‑region o ‑‑worker‑zone.

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

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

Puoi specificare uno dei seguenti ‑‑worker‑region o ‑‑worker‑zone.

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

Il tipo di macchina di Compute Engine Utilizza Dataflow all'avvio dei worker. Puoi utilizzare qualsiasi modello delle famiglie di tipo di macchina Compute Engine e dei tipi di macchine personalizzate.

Per ottenere risultati ottimali, utilizza n1 tipi di macchina. Tipi di macchina con core condivisi, come I worker della serie f1 e g1 non sono supportati dal Accordo sul livello del servizio di Dataflow.

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

Se non impostato, Dataflow sceglie automaticamente la macchina di testo.
‑‑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 è impostato, i worker Dataflow utilizzano il Compute Engine dell'account di servizio 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 che quali worker sono assegnati. Se il criterio non viene configurato, viene utilizzata per impostazione predefinita la rete default.
‑‑subnetwork String La subnet di Compute Engine a cui sono assegnati i worker. La subnet deve essere in forma regions/region/subnetworks/subnetwork. Se non viene impostato, Dataflow determina automaticamente la subnet.
‑‑dataflow‑kms‑key String La chiave di crittografia gestita dal cliente (CMEK) utilizzati per criptare i dati at-rest. Puoi controllare la chiave di crittografia tramite di Cloud KMS. La chiave deve trovarsi nella stessa posizione del job. Se non specificato, Dataflow utilizza il valore predefinito Crittografia di Google Cloud anziché una CMEK.

Per ulteriori informazioni, consulta gcloud dataflow sql query come riferimento.

Arresta i job SQL di Dataflow

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

Prezzi

Dataflow SQL utilizza i prezzi standard di Dataflow; questo elemento non ha prezzi distinti. Ti vengono addebitate le risorse utilizzate Job Dataflow che crei in base alle tue istruzioni SQL. La i costi per queste risorse corrispondono agli addebiti standard di Dataflow per vCPU, memoria, Persistent Disk, Streaming Engine e Dataflow Shuffle.

Un job SQL Dataflow potrebbe consumare risorse aggiuntive, Pub/Sub e BigQuery, ciascuno con fatturazione propria i prezzi.

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

Passaggi successivi