Utilizzare l'interfaccia a riga di comando di Dataflow

Quando esegui la pipeline utilizzando servizio gestito di Dataflow, puoi ottenere sul tuo job Dataflow utilizzando Interfaccia a riga di comando di Dataflow. L'interfaccia a riga di comando Dataflow fa parte dello strumento a riga di comando in Google Cloud CLI.

Se preferisci visualizzare e interagire con i tuoi job Dataflow utilizzando la console Google Cloud, utilizza Interfaccia di monitoraggio di Dataflow.

Installazione del componente a riga di comando di Dataflow

Per utilizzare l'interfaccia a riga di comando di Dataflow dal terminale locale, installa e configura Google Cloud CLI.

Per Cloud Shell, l'interfaccia a riga di comando di Dataflow è disponibile automaticamente.

Eseguire i comandi

Puoi interagire con l'interfaccia a riga di comando di Dataflow eseguendo i comandi disponibili. Per visualizzare l'elenco dei comandi Dataflow disponibili, digita il seguente comando nella shell o nel terminale:

  gcloud dataflow --help

Come mostrato nell'output, il comando Dataflow ha i seguenti quattro gruppi: flex-template, jobs, snapshots e sql.

Comandi del modello flessibile

Il gruppo di sottocomandi flex-template ti consente di lavorare con i modelli flessibili Dataflow. Sono supportate le seguenti operazioni:

  • build: genera un file modello flessibile dai parametri specificati.
  • run: esegue un job dal percorso specificato.

Per eseguire un modello, devi creare un file di specifiche del modello che venga archiviato in un bucket Cloud Storage. Il file di specifica del modello contiene tutte le informazioni necessarie per eseguire il job, ad esempio le informazioni e i metadati dell'SDK. Inoltre, il file metadata.json contiene informazioni sul modello, come il nome, la descrizione e i parametri di input. Dopo aver creato il file di specifica del modello, puoi creare il modello flessibile utilizzando Java o Python.

Per informazioni su come creare ed eseguire un modello flessibile utilizzando Google Cloud CLI, consulta il tutorial Creare ed eseguire modelli flessibili.

Comandi job

Il gruppo di sottocomandi jobs ti consente di lavorare con i job Dataflow nel tuo progetto. Sono supportate le seguenti operazioni:

  • cancel: annulla tutti i job che corrispondono agli argomenti della riga di comando.
  • describe: restituisce l'oggetto Job risultante dall'API Get.
  • drain: svuota tutti i job che corrispondono agli argomenti della riga di comando.
  • list: elenca tutti i job di un determinato progetto, eventualmente filtrati per regione.
  • run: esegue un job dal percorso specificato.
  • show: mostra una breve descrizione del job specificato.

Per ottenere un elenco di tutti i job Dataflow nel tuo progetto, esegui questo comando nella shell o nel terminale :

gcloud dataflow jobs list

Il comando restituisce un elenco dei job correnti. Di seguito è riportato un output di esempio:

  ID                                        NAME                                    TYPE   CREATION_TIME        STATE   REGION
  2015-06-03_16_39_22-4020553808241078833   wordcount-janedoe-0603233849            Batch  2015-06-03 16:39:22  Done    us-central1
  2015-06-03_16_38_28-4363652261786938862   wordcount-johndoe-0603233820            Batch  2015-06-03 16:38:28  Done    us-central1
  2015-05-21_16_24_11-17823098268333533078  bigquerytornadoes-johndoe-0521232402    Batch  2015-05-21 16:24:11  Done    europe-west1
  2015-05-21_13_38_06-16409850040969261121  bigquerytornadoes-johndoe-0521203801    Batch  2015-05-21 13:38:06  Done    us-central1
  2015-05-21_13_17_18-18349574013243942260  bigquerytornadoes-johndoe-0521201710    Batch  2015-05-21 13:17:18  Done    europe-west1
  2015-05-21_12_49_37-9791290545307959963   wordcount-johndoe-0521194928            Batch  2015-05-21 12:49:37  Done    us-central1
  2015-05-20_15_54_51-15905022415025455887  wordcount-johndoe-0520225444            Batch  2015-05-20 15:54:51  Failed  us-central1
  2015-05-20_15_47_02-14774624590029708464  wordcount-johndoe-0520224637            Batch  2015-05-20 15:47:02  Done    us-central1

Utilizzando il job IDvisualizzato per ciascun job, puoi eseguire il comando describe per visualizzare ulteriori informazioni su un job.

gcloud dataflow jobs describe JOB_ID

Sostituisci JOB_ID con il job ID di uno dei job Dataflow del tuo progetto.

Ad esempio, se esegui il comando per l'ID job 2015-02-09_11_39_40-15635991037808002875, di seguito è riportato un output di esempio:

createTime: '2015-02-09T19:39:41.140Z'
currentState: JOB_STATE_DONE
currentStateTime: '2015-02-09T19:56:39.510Z'
id: 2015-02-09_11_39_40-15635991037808002875
name: tfidf-bchambers-0209193926
projectId: google.com:clouddfe
type: JOB_TYPE_BATCH

Per formattare il risultato in JSON, esegui il comando con l'opzione --format=json:

gcloud --format=json dataflow jobs describe JOB_ID

Sostituisci JOB_ID con il job ID di uno dei job Dataflow del tuo progetto.

Il seguente output di esempio è formattato come JSON:

{
  "createTime": "2015-02-09T19:39:41.140Z",
  "currentState": "JOB_STATE_DONE",
  "currentStateTime": "2015-02-09T19:56:39.510Z",
  "id": "2015-02-09_11_39_40-15635991037808002875",
  "name": "tfidf-bchambers-0209193926",
  "projectId": "google.com:clouddfe",
  "type": "JOB_TYPE_BATCH"
}

Comandi snapshot

Il gruppo di sottocomandi snapshots ti consente di lavorare con gli snapshot di Dataflow. Sono supportate le seguenti operazioni:

  • create: crea uno snapshot per un job Dataflow.
  • delete: elimina uno snapshot Dataflow.
  • describe: descrive uno snapshot di Dataflow.
  • list: elenca tutti gli snapshot Dataflow in un progetto nella regione specificata, eventualmente filtrati per ID job.

Per ulteriori informazioni sull'utilizzo degli snapshot in Dataflow, consulta Utilizzo degli snapshot di Dataflow.

Comandi SQL

Il gruppo di sottocomandi sql ti consente di lavorare con Dataflow SQL. Il comando gcloud Dataflow sql query accetta ed esegue una query SQL specificata dall'utente su Dataflow.

Ad esempio, per eseguire una semplice query SQL su un job Dataflow che legge da un set di dati BigQuery e scrive in un altro set di dati BigQuery, esegui quanto segue nella shell o nel terminale:

gcloud dataflow sql query 'SELECT word FROM
bigquery.table.PROJECT_ID.input_dataset.input_table
where count > 3'
    --job-name=JOB_NAME \
    --region=us-west1 \
    --bigquery-dataset=OUTPUT_DATASET \
    --bigquery-table=OUTPUT_TABLE

Sostituisci quanto segue:

  • PROJECT_ID: un nome globalmente univoco per il tuo progetto
  • JOB_NAME: un nome per il job Dataflow
  • OUTPUT_DATASET: un nome per il set di dati di output
  • OUTPUT_TABLE: un nome per la tabella di output

L'avvio di un job SQL Dataflow potrebbe richiedere diversi minuti. Non puoi aggiornare il job dopo averlo creato. I job SQL di Dataflow utilizzano la scalabilità automatica e Dataflow sceglie automaticamente la modalità di esecuzione tra batch o flusso. Non puoi controllare questo comportamento per i job Dataflow SQL. Per interrompere i job Dataflow SQL, utilizza il comando cancel. L'arresto di un job SQL Dataflow con drain non è supportato.

Per ulteriori informazioni sull'utilizzo dei comandi SQL per Dataflow, consulta il riferimento SQL di Dataflow e la documentazione di gcloud Dataflow sql query.

Utilizzare i comandi con le regioni

L'interfaccia a riga di comando di Dataflow supporta le regioni a partire dalla versione 176 dell'interfaccia a riga di comando gcloud. Utilizza l'opzione --region con qualsiasi comando per specificare la regione che gestisce il job.

Ad esempio, gcloud dataflow jobs list elenca i job di tutte le regioni, ma gcloud dataflow jobs list --region=europe-west1 elenca solo i job gestiti da europe-west1.