Trasmetti il flusso da Pub/Sub a BigQuery


Questo tutorial utilizza il modello di sottoscrizione Pub/Sub a BigQuery per creare ed eseguire un job modello Dataflow utilizzando la console Google Cloud o Google Cloud CLI. Il tutorial illustra un esempio di pipeline di inserimento flussi che legge i messaggi con codifica JSON da Pub/Sub, utilizza una funzione definita dall'utente per estendere il modello di flusso fornito da Google, trasforma i dati dei messaggi con l'SDK Apache Beam e scrive i risultati in una tabella BigQuery.

Il vantaggio di questo flusso di lavoro è che puoi utilizzare le funzioni definite dall'utente per estendere il modello di streaming fornito da Google. Se devi estrarre i dati da Pub/Sub e inviarli a BigQuery, ma non hai bisogno di estendere il modello, per un flusso di lavoro più semplice utilizza la funzionalità di abbonamento da Pub/Sub a BigQuery.

Le pipeline di analisi dei flussi di dati e di integrazione dei dati usano Pub/Sub per importare e distribuire i dati. Pub/Sub consente di creare sistemi di produttori e consumer di eventi, chiamati publisher e sottoscritti. I publisher inviano gli eventi al servizio Pub/Sub in modo asincrono e Pub/Sub consegna gli eventi a tutti i servizi che devono reagire ai loro eventi.

Dataflow è un servizio completamente gestito per la trasformazione e l'arricchimento dei dati in modalità flusso (in tempo reale) e batch. Fornisce un ambiente di sviluppo semplificato delle pipeline che utilizza l'SDK Apache Beam per trasformare i dati in entrata e quindi eseguire l'output dei dati trasformati.

Se vuoi scrivere messaggi direttamente in BigQuery, senza configurare Dataflow per fornire la trasformazione dei dati, utilizza la funzionalità di abbonamento da Pub/Sub a BigQuery.

Obiettivi

  • Creare un argomento Pub/Sub.
  • Crea un set di dati BigQuery con una tabella e uno schema.
  • Utilizza un modello di flusso fornito da Google per creare un flusso di dati dalla sottoscrizione Pub/Sub a BigQuery mediante Dataflow.
  • Crea una funzione definita dall'utente per estendere il modello di streaming fornito da Google.

Costi

In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:

  • Dataflow
  • Pub/Sub
  • Cloud Storage
  • Cloud Scheduler
  • BigQuery

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi. I nuovi utenti di Google Cloud possono essere idonei a una prova senza costi aggiuntivi.

Una volta completate le attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la pagina Pulizia.

Prima di iniziare

Questa sezione mostra come selezionare un progetto, abilitare le API e concedere i ruoli appropriati al tuo account utente e all'account di servizio worker.

Console

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Abilita le API Compute Engine, Dataflow, Cloud Logging, BigQuery, Pub/Sub, Cloud Storage, Resource Manager, and Cloud Scheduler.

    Abilita le API

  5. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  6. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  7. Abilita le API Compute Engine, Dataflow, Cloud Logging, BigQuery, Pub/Sub, Cloud Storage, Resource Manager, and Cloud Scheduler.

    Abilita le API

  8. Per completare i passaggi di questo tutorial, il tuo account utente deve avere il ruolo Utente account di servizio. L'account di servizio predefinito di Compute Engine deve avere i seguenti ruoli: Worker Dataflow, Amministratore Dataflow, Editor Pub/Sub, Amministratore oggetti Storage ed Editor dati BigQuery. Per aggiungere i ruoli richiesti nella console Google Cloud:

    1. Nella console Google Cloud, vai alla pagina IAM.

      Vai a IAM
    2. Seleziona il progetto.
    3. Nella riga contenente il tuo account utente, fai clic su Modifica entità e poi su Aggiungi un altro ruolo.
    4. Nell'elenco a discesa, seleziona il ruolo Utente account di servizio.
    5. Nella riga contenente l'account di servizio predefinito di Compute Engine, fai clic su Modifica entità, quindi su Aggiungi un altro ruolo.
    6. Nell'elenco a discesa, seleziona il ruolo Worker Dataflow.
    7. Ripeti l'operazione per i ruoli Amministratore Dataflow, Editor Pub/Sub, Amministratore oggetti Storage ed Editor dati BigQuery, quindi fai clic su Salva.

      Per ulteriori informazioni sulla concessione dei ruoli, consulta Concedere un ruolo IAM utilizzando la console.

gcloud

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Installa Google Cloud CLI.
  3. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  4. Crea o seleziona un progetto Google Cloud.

    • Crea un progetto Google Cloud:

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il progetto Google Cloud che stai creando.

    • Seleziona il progetto Google Cloud che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del tuo progetto Google Cloud.

  5. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  6. Abilita le API Compute Engine, Dataflow, Cloud Logging, BigQuery, Pub/Sub, Cloud Storage, Resource Manager, and Cloud Scheduler.

    gcloud services enable compute.googleapis.com dataflow.googleapis.com logging.googleapis.com bigquery.googleapis.com pubsub.googleapis.com storage.googleapis.com cloudresourcemanager.googleapis.com cloudscheduler.googleapis.com
  7. Crea credenziali di autenticazione locali per il tuo Account Google:

    gcloud auth application-default login
  8. Concedi i ruoli al tuo Account Google. Esegui questo comando una volta per ciascuno dei seguenti ruoli IAM: roles/iam.serviceAccountUser

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
    • Sostituisci PROJECT_ID con l'ID progetto.
    • Sostituisci EMAIL_ADDRESS con il tuo indirizzo email.
    • Sostituisci ROLE con ogni singolo ruolo.
  9. Installa Google Cloud CLI.
  10. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  11. Crea o seleziona un progetto Google Cloud.

    • Crea un progetto Google Cloud:

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il progetto Google Cloud che stai creando.

    • Seleziona il progetto Google Cloud che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del tuo progetto Google Cloud.

  12. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  13. Abilita le API Compute Engine, Dataflow, Cloud Logging, BigQuery, Pub/Sub, Cloud Storage, Resource Manager, and Cloud Scheduler.

    gcloud services enable compute.googleapis.com dataflow.googleapis.com logging.googleapis.com bigquery.googleapis.com pubsub.googleapis.com storage.googleapis.com cloudresourcemanager.googleapis.com cloudscheduler.googleapis.com
  14. Crea credenziali di autenticazione locali per il tuo Account Google:

    gcloud auth application-default login
  15. Concedi i ruoli al tuo Account Google. Esegui questo comando una volta per ciascuno dei seguenti ruoli IAM: roles/iam.serviceAccountUser

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
    • Sostituisci PROJECT_ID con l'ID progetto.
    • Sostituisci EMAIL_ADDRESS con il tuo indirizzo email.
    • Sostituisci ROLE con ogni singolo ruolo.
  16. Concedi ruoli al tuo account di servizio predefinito di Compute Engine. Esegui questo comando una volta per ognuno dei seguenti ruoli IAM:

    • roles/dataflow.admin
    • roles/dataflow.worker
    • roles/storage.admin
    • roles/pubsub.editor
    • roles/bigquery.dataEditor
    gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" --role=SERVICE_ACCOUNT_ROLE

    Sostituisci quanto segue:

    • PROJECT_ID: il tuo ID progetto.
    • PROJECT_NUMBER: il numero del tuo progetto. Per trovare il numero del progetto, utilizza il comando gcloud projects describe.
    • SERVICE_ACCOUNT_ROLE: per ogni singolo ruolo.

Crea l'origine e il sink di esempio

In questa sezione viene spiegato come creare i seguenti elementi:

  • Un'origine di flussi di dati che utilizza Pub/Sub
  • Un set di dati per caricare i dati in BigQuery

crea un bucket Cloud Storage

Per iniziare, crea un bucket Cloud Storage utilizzando la console Google Cloud o Google Cloud CLI. La pipeline Dataflow utilizza questo bucket come località di archiviazione temporanea.

Console

  1. Nella console Google Cloud, vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Fai clic su Crea bucket.

  3. Nella pagina Crea un bucket, per Assegna un nome al bucket, inserisci un nome che soddisfi i requisiti di denominazione dei bucket. I nomi dei bucket Cloud Storage devono essere univoci a livello globale. Non selezionare le altre opzioni.

  4. Fai clic su Crea.

gcloud

Utilizza il comando gcloud storage buckets create:

gcloud storage buckets create gs://BUCKET_NAME

Sostituisci BUCKET_NAME con un nome per il bucket Cloud Storage che soddisfi i requisiti di denominazione dei bucket. I nomi dei bucket Cloud Storage devono essere univoci a livello globale.

Crea un argomento e una sottoscrizione Pub/Sub

Creare un argomento Pub/Sub e quindi creare una sottoscrizione a quell'argomento.

Console

Per creare un argomento, completa i seguenti passaggi.

  1. Nella console Google Cloud, vai alla pagina Argomenti di Pub/Sub.

    Vai ad Argomenti

  2. Fai clic su Crea argomento.

  3. Nel campo ID argomento, inserisci un ID per l'argomento. Per informazioni su come assegnare i nomi a un argomento, consulta le linee guida per assegnare un nome a un argomento o a una sottoscrizione.

  4. Mantieni l'opzione Aggiungi un abbonamento predefinito. Non selezionare le altre opzioni.

  5. Fai clic su Crea argomento.

gcloud

Per creare un argomento, esegui il comando gcloud pubsub topics create. Per informazioni su come assegnare un nome a una sottoscrizione, consulta le linee guida per assegnare un nome a un argomento o a una sottoscrizione.

gcloud pubsub topics create TOPIC_ID

Sostituisci TOPIC_ID con un nome per l'argomento Pub/Sub.

Per creare una sottoscrizione all'argomento, esegui il comando gcloud pubsub subscriptions create:

gcloud pubsub subscriptions create --topic TOPIC_ID SUBSCRIPTION_ID

Sostituisci SUBSCRIPTION_ID con un nome per la sottoscrizione Pub/Sub.

Crea ed esegui job Cloud Scheduler

Creare ed eseguire due job Cloud Scheduler: uno che pubblica valutazioni positive e un altro che pubblica valutazioni negative nell'argomento Pub/Sub.

Console

Crea un job Cloud Scheduler per ottenere valutazioni positive.

  1. Visita la pagina Cloud Scheduler nella console.

    Vai a Cloud Scheduler

  2. Fai clic sul pulsante Crea un job.

  3. Inserisci il nome positive-ratings-publisher.

  4. Seleziona un'regione Dataflow vicina alla località in cui esegui i comandi in questo tutorial. Il valore della variabile REGION deve essere un nome di regione valido. Per ulteriori informazioni su regioni e località, consulta Località Dataflow.

  5. Specifica la frequenza del job utilizzando il formato unix-cron: * * * * *

    Per ulteriori informazioni, consulta Configurazione delle pianificazioni dei cron job.

  6. Seleziona il tuo fuso orario.

  7. Fai clic su Continua.

  8. Nell'elenco Target, seleziona Pub/Sub.

  9. Seleziona il nome dell'argomento dall'elenco.

  10. Aggiungi la seguente stringa Message da inviare al target: {"url": "https://beam.apache.org/", "review": "positive"}

  11. Fai clic su Crea.

Ora hai un cron job che invia un messaggio con una valutazione positiva al tuo argomento Pub/Sub ogni minuto. La tua funzione Cloud Functions esegue la sottoscrizione a quell'argomento.

Crea un job Cloud Scheduler per le valutazioni negative.

  1. Nella pagina Cloud Scheduler della console, fai clic sul pulsante Crea un job.

  2. Inserisci il nome negative-ratings-publisher.

  3. Seleziona una regione in cui eseguire il job.

  4. Specifica la frequenza del job utilizzando il formato unix-cron: */2 * * * *

    Per ulteriori informazioni, consulta Configurazione delle pianificazioni dei cron job.

  5. Seleziona il tuo fuso orario.

  6. Fai clic su Continua.

  7. Nell'elenco Target, seleziona Pub/Sub.

  8. Seleziona il nome dell'argomento dall'elenco.

  9. Aggiungi la seguente stringa Message da inviare al target: {"url": "https://beam.apache.org/", "review": "negative"}

  10. Fai clic su Crea.

Ora hai un cron job che invia un messaggio con valutazione negativa al tuo argomento Pub/Sub ogni due minuti. La tua funzione Cloud Functions esegue la sottoscrizione a quell'argomento.

gcloud

  1. Per creare un job Cloud Scheduler per questo tutorial, utilizza il comando gcloud scheduler jobs create. Questo passaggio crea un publisher per le "valutazioni positive" che pubblica un messaggio al minuto.

    gcloud scheduler jobs create pubsub positive-ratings-publisher \
      --schedule="* * * * *" \
      --location=DATAFLOW_REGION \
      --topic="TOPIC_ID" \
      --message-body='{"url": "https://beam.apache.org/", "review": "positive"}'
    

    Sostituisci DATAFLOW_REGION con la regione in cui eseguire il deployment del job Dataflow. Seleziona una regione Dataflow vicina a dove esegui i comandi in questo tutorial. Il valore della variabile REGION deve essere un nome di regione valido.

  2. Per avviare il job Cloud Scheduler, utilizza il comando gcloud scheduler jobs run.

    gcloud scheduler jobs run --location=DATAFLOW_REGION positive-ratings-publisher
    
  3. Creare ed eseguire un altro editore simile per le "valutazioni negative" che pubblica un messaggio ogni due minuti. Questo passaggio crea un publisher per le "valutazioni negative" che pubblica un messaggio ogni due minuti.

    gcloud scheduler jobs create pubsub negative-ratings-publisher \
      --schedule="*/2 * * * *" \
      --location=DATAFLOW_REGION  \
      --topic="TOPIC_ID" \
      --message-body='{"url": "https://beam.apache.org/", "review": "negative"}'
    
  4. Avvia il secondo job Cloud Scheduler.

    gcloud scheduler jobs run --location=DATAFLOW_REGION negative-ratings-publisher
    

Crea un set di dati BigQuery

Crea un set di dati e una tabella BigQuery con lo schema appropriato per il tuo argomento Pub/Sub.

Console

Creare un set di dati BigQuery.

  1. Apri la pagina BigQuery nella console Google Cloud.

    Vai alla pagina di BigQuery

  2. Nel riquadro Explorer, seleziona il progetto in cui vuoi creare il set di dati.

  3. Espandi l'opzione Azioni e fai clic su Crea set di dati.

  4. Nella pagina Crea set di dati:

    • In ID set di dati, inserisci tutorial_dataset.
    • In Località dei dati, scegli una località geografica per il set di dati. Dopo aver creato un set di dati, la località non può essere modificata.

    • Non selezionare le altre opzioni.

    • Fai clic su Crea set di dati.

Crea una tabella BigQuery con uno schema.

  1. Nel riquadro Explorer, espandi il progetto e seleziona il set di dati tutorial_dataset.

  2. Espandi l'opzione Azioni e fai clic su Apri.

  3. Nel riquadro dei dettagli, fai clic su Crea tabella .

  4. Nella pagina Crea tabella, nella sezione Origine, seleziona Tabella vuota.

  5. Nella sezione Destinazione della pagina Crea tabella:

    • Verifica che l'opzione Nome set di dati sia impostata su tutorial_dataset.
    • Nel campo Nome tabella, inserisci tutorial.
    • Verifica che l'opzione Tipo di tabella sia impostata su Tabella nativa.
  6. Nella sezione Schema, inserisci la definizione di schema. Abilita Modifica come testo e inserisci il seguente schema di tabella come array JSON.

    [
      {
        "mode": "NULLABLE",
        "name": "url",
        "type": "STRING"
      },
      {
        "mode": "NULLABLE",
        "name": "review",
        "type": "STRING"
      }
    ]
    
  7. In Impostazioni di partizione e cluster lascia il valore predefinito: No partitioning.

  8. Nella sezione Opzioni avanzate, per Crittografia lascia il valore predefinito: Google-managed key. Per impostazione predefinita, Dataflow cripta i contenuti dei clienti archiviati at-rest.

  9. Fai clic su Crea tabella.

gcloud

Utilizza il comando bq mk per creare il set di dati.

bq --location=DATAFLOW_REGION mk \
PROJECT_ID:tutorial_dataset

Sostituisci PROJECT_ID con l'ID del tuo progetto.

Utilizza il comando bq mk con il flag --table o -t per creare una tabella nel set di dati.

bq mk \
    --table \
    PROJECT_ID:tutorial_dataset.tutorial \
    url:STRING,review:STRING

Creazione di una funzione definita dall'utente

Se vuoi, puoi creare una funzione JavaScript definita dall'utente per estendere l'abbonamento Pub/Sub fornito da Google al modello BigQuery. Le funzioni definite dall'utente consentono di definire le trasformazioni dei dati non presenti nel modello e di inserirle nel modello.

La seguente funzione definita dall'utente convalida gli URL delle valutazioni ricevute. Le valutazioni senza URL o con URL errati vengono inoltrate a un'altra tabella di output con suffisso _error_records, nota anche come tabella messaggi non recapitabili, nello stesso progetto e set di dati.

JavaScript

/**
 * User-defined function (UDF) to transform events
 * as part of a Dataflow template job.
 *
 * @param {string} inJson input Pub/Sub JSON message (stringified)
 */
 function process(inJson) {
    const obj = JSON.parse(inJson);
    const includePubsubMessage = obj.data && obj.attributes;
    const data = includePubsubMessage ? obj.data : obj;

    if (!data.hasOwnProperty('url')) {
      throw new Error("No url found");
    } else if (data.url !== "https://beam.apache.org/") {
      throw new Error("Unrecognized url");
    }

    return JSON.stringify(obj);
  }

Salva questo snippet JavaScript nel bucket Cloud Storage creato in precedenza.

esegui la pipeline.

Esegui una pipeline in modalità flusso utilizzando il modello di sottoscrizione Pub/Sub a BigQuery fornito da Google. La pipeline recupera i dati in entrata dall'argomento Pub/Sub e li restituisce nel tuo set di dati BigQuery.

Console

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

    Vai a Job

  2. Fai clic su Crea job da modello.

  3. Inserisci un Nome job per il job Dataflow.

  4. Per Endpoint a livello di regione, seleziona una regione per il tuo job Dataflow.

  5. In Modello Dataflow, seleziona il modello Sottoscrizione Pub/Sub a BigQuery.

  6. In Tabella di output BigQuery, inserisci quanto segue:

    PROJECT_ID:tutorial_dataset.tutorial
    
  7. In Sottoscrizione di input Pub/Sub, inserisci quanto segue:

    projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID
    

    Sostituisci PROJECT_ID con l'ID del progetto in cui hai creato il set di dati BigQuery e SUBSCRIPTION_ID con il nome della sottoscrizione Pub/Sub.

  8. In Posizione temporanea, inserisci quanto segue:

    gs://BUCKET_NAME/temp/
    

    Sostituisci BUCKET_NAME con il nome del tuo bucket Cloud Storage. Nella cartella temp vengono archiviati i file temporanei, come il job della pipeline in modalità temporanea.

  9. (Facoltativo) Per includere una funzione definita dall'utente per il job, espandi Parametri facoltativi.

    1. In Percorso funzione JavaScript definita dall'utente in Cloud Storage, inserisci quanto segue:

      gs://BUCKET_NAME/dataflow_udf_transform.js
      
    2. In Nome della funzione JavaScript definita dall'utente, inserisci quanto segue:

      process
      
  10. Fai clic su Esegui job.

Per verificare se il modello può inoltrare messaggi a una tabella messaggi non recapitabili, pubblica alcune valutazioni senza URL o con URL errati.

  1. Vai alla pagina Argomenti di Pub/Sub.

  2. Fai clic sulla tua TOPIC_ID.

  3. Vai alla sezione Messaggi.

  4. Fai clic su Pubblica messaggio.

  5. Inserisci alcune valutazioni senza URL o con URL sbagliati nel Corpo del messaggio. Ad esempio:

    {"url": "https://beam.apache.org/documentation/sdks/java/", "review": "positive"}
    
  6. Fai clic su Pubblica.

gcloud

Per eseguire il modello nella shell o nel terminale, utilizza il comando gcloud dataflow jobs run.

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-DATAFLOW_REGION/latest/PubSub_Subscription_to_BigQuery \
    --region DATAFLOW_REGION \
    --staging-location gs://BUCKET_NAME/temp \
    --parameters \
inputSubscription=projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID,\
outputTableSpec=PROJECT_ID:tutorial_dataset.tutorial

Sostituisci JOB_NAME con un nome univoco a tua scelta.

Facoltativamente, per eseguire il modello con la funzione definita dall'utente, utilizza il comando seguente:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-DATAFLOW_REGION/latest/PubSub_Subscription_to_BigQuery \
    --region DATAFLOW_REGION \
    --staging-location gs://BUCKET_NAME/temp \
    --parameters \
inputSubscription=projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID,\
outputTableSpec=PROJECT_ID:tutorial_dataset.tutorial,\
javascriptTextTransformGcsPath=gs://BUCKET_NAME/dataflow_udf_transform.js,\
javascriptTextTransformFunctionName=process

Per verificare se il modello può inoltrare messaggi a una tabella messaggi non recapitabili, pubblica alcune valutazioni senza URL o con URL errati. Ad esempio:

gcloud pubsub topics publish TOPIC_ID \
  --message='{"url": "https://beam.apache.org/documentation/sdks/java/", "review": "positive"}'

Visualizza i tuoi risultati

Visualizza i dati scritti nelle tabelle BigQuery.

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.
    Vai alla pagina di BigQuery

  2. Nell'editor query, esegui la query seguente:

    SELECT * FROM `PROJECT_ID.tutorial_dataset.tutorial`
    LIMIT 1000
    

    La visualizzazione dei dati nella tabella può richiedere fino a un minuto.

    La query restituisce le righe che sono state aggiunte alla tabella nelle ultime 24 ore. Puoi anche eseguire query utilizzando SQL standard.

    Se prevedi che alcuni record di errore vengano scritti nella tabella dei messaggi non recapitabili, nella query utilizza il nome della tabella tutorial_error_records. Ad esempio:

    SELECT * FROM `PROJECT_ID.tutorial_dataset.tutorial_error_records`
    LIMIT 1000
    

gcloud

Controlla i risultati in BigQuery eseguendo la query seguente:

bq query --use_legacy_sql=false 'SELECT * FROM `'"PROJECT_ID.tutorial_dataset.tutorial"'`'

Mentre questa pipeline è in esecuzione, puoi vedere nuove righe aggiunte alla tabella BigQuery ogni minuto.

Se prevedi che alcuni record di errore vengano scritti nella tabella dei messaggi non recapitabili, nella query utilizza il nome della tabella tutorial_error_records. Ad esempio:

SELECT * FROM `PROJECT_ID.tutorial_dataset.tutorial_error_records`
LIMIT 1000

Esegui la pulizia

Per evitare che al tuo Account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.

Elimina il progetto

Il modo più semplice per eliminare la fatturazione è eliminare il progetto Google Cloud che hai creato per il tutorial.

Console

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

gcloud

    Elimina un progetto Google Cloud:

    gcloud projects delete PROJECT_ID

Elimina le singole risorse

Se vuoi riutilizzare il progetto in un secondo momento, puoi conservarlo, ma eliminare le risorse che hai creato durante il tutorial.

Arresta la pipeline Dataflow

Console

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

    Vai a Job

  2. Fai clic sul job che vuoi arrestare.

    Per arrestare un job, lo stato deve essere in esecuzione.

  3. Nella pagina dei dettagli del job, fai clic su Arresta.

  4. Fai clic su Annulla.

  5. Per confermare la tua scelta, fai clic su Arresta job.

gcloud

Per annullare il job Dataflow, utilizza il comando gcloud dataflow jobs.

gcloud dataflow jobs list \
  --filter 'NAME=JOB_NAME AND STATE=Running' \
  --format 'value(JOB_ID)' \
  --region "DATAFLOW_REGION" \
  | xargs gcloud dataflow jobs cancel --region "DATAFLOW_REGION"

Esegui la pulizia delle risorse di progetto Google Cloud

Console

  1. Eliminare i job Cloud Scheduler.

    1. Vai alla pagina Cloud Scheduler nella console Google Cloud.

      Vai a Cloud Scheduler

    2. Seleziona i job.

    3. Fai clic sul pulsante Elimina nella parte superiore della pagina e conferma l'eliminazione.

  2. Elimina l'argomento e la sottoscrizione Pub/Sub.

    1. Vai alla pagina Argomenti di Pub/Sub nella console Google Cloud.

      Vai ad Argomenti

    2. Seleziona l'argomento che hai creato.

    3. Fai clic su Elimina per eliminare definitivamente l'argomento.

    4. Vai alla pagina Abbonamenti Pub/Sub nella console Google Cloud.

      Vai ad Abbonamenti

    5. Seleziona la sottoscrizione creata con il tuo argomento.

    6. Fai clic su Elimina per eliminare definitivamente l'abbonamento.

  3. Elimina la tabella e il set di dati BigQuery.

    1. Nella console Google Cloud, vai alla pagina BigQuery.

      Vai a BigQuery

    2. Nel riquadro Explorer, espandi il progetto.

    3. Accanto al set di dati che vuoi eliminare, fai clic su Visualizza azioni, poi su Elimina.

  4. Eliminare il bucket Cloud Storage.

    1. Nella console Google Cloud, vai alla pagina Bucket in Cloud Storage.

      Vai a Bucket

    2. Seleziona il bucket da eliminare, fai clic su Elimina e segui le istruzioni.

gcloud

  1. Per eliminare i job Cloud Scheduler, utilizza il comando gcloud scheduler jobs delete.

    gcloud scheduler jobs delete negative-ratings-publisher --location=DATAFLOW_REGION
    
    gcloud scheduler jobs delete positive-ratings-publisher --location=DATAFLOW_REGION
    
  2. Per eliminare la sottoscrizione e l'argomento Pub/Sub, utilizza i comandi gcloud pubsub subscriptions delete e gcloud pubsub topics delete.

    gcloud pubsub subscriptions delete SUBSCRIPTION_ID
    gcloud pubsub topics delete TOPIC_ID
    
  3. Per eliminare la tabella BigQuery, utilizza il comando bq rm.

    bq rm -f -t PROJECT_ID:tutorial_dataset.tutorial
    
  4. Elimina il set di dati BigQuery. Il set di dati da solo non prevede alcun addebito.

    bq rm -r -f -d PROJECT_ID:tutorial_dataset
    
  5. Per eliminare il bucket Cloud Storage, utilizza il comando gcloud storage rm. Il solo bucket non prevede alcun addebito.

    gcloud storage rm gs://BUCKET_NAME --recursive
    

Revocare le credenziali

Console

Se mantieni il progetto, revoca i ruoli che hai concesso all'account di servizio predefinito di Compute Engine.

  1. Nella console Google Cloud, vai alla pagina IAM.

Vai a IAM

  1. Seleziona un progetto, una cartella o un'organizzazione.

  2. Trova la riga contenente l'entità di cui vuoi revocare l'accesso. Nella riga, fai clic su Modifica entità.

  3. Fai clic sul pulsante Elimina per ogni ruolo che vuoi revocare, quindi fai clic su Salva.

gcloud

  • Se mantieni il progetto, revoca i ruoli che hai concesso all'account di servizio predefinito di Compute Engine. Esegui il comando seguente una volta per ognuno dei seguenti ruoli IAM:
    • roles/dataflow.admin
    • roles/dataflow.worker
    • roles/storage.admin
    • roles/pubsub.editor
    • roles/bigquery.dataEditor
      gcloud projects remove-iam-policy-binding <var>PROJECT_ID</var> \
      --member=serviceAccount:<var>PROJECT_NUMBER</var>-compute@developer.gserviceaccount.com \
      --role=<var>ROLE</var>
    

  • Facoltativo: revoca le credenziali di autenticazione che hai creato ed elimina il file delle credenziali locale.

    gcloud auth application-default revoke
  • Facoltativo: revoca le credenziali dallgcloud CLI.

    gcloud auth revoke

Passaggi successivi