Guia de início rápido: criar um pipeline do Dataflow usando SQL

Criar um pipeline do Dataflow usando SQL

Neste guia de início rápido, você aprenderá como escrever a sintaxe SQL para consultar um tópico do Pub/Sub disponível publicamente. A consulta SQL executa um pipeline do Dataflow, e os resultados do pipeline são gravados em uma tabela do BigQuery.

Para executar um job do Dataflow SQL, use o console do Google Cloud, a Google Cloud CLI instalada em uma máquina local ou o Cloud Shell. Além do console do Google Cloud, este exemplo requer o uso de uma máquina local ou do Cloud Shell.

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  4. Ative as APIs Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Cloud Pub/Sub, Cloud Resource Manager e Google Cloud Data Catalog .

    Ative as APIs

  5. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  6. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  7. Ative as APIs Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Cloud Pub/Sub, Cloud Resource Manager e Google Cloud Data Catalog .

    Ative as APIs

Instalar e inicializar a CLI gcloud

  • Faça o download do pacote da CLI gcloud no sistema operacional e instale e configure a CLI gcloud.

    Dependendo da sua conexão de Internet, o download pode demorar um pouco.

Crie um conjunto de dados do BigQuery

Neste guia de início rápido, o pipeline SQL do Dataflow publica um conjunto de dados do BigQuery em uma tabela do BigQuery criada na próxima seção.

  • Crie um conjunto de dados do BigQuery chamado taxirides:

    bq mk taxirides
    

Executar o canal

  • Executar um pipeline do Dataflow SQL que calcule o número de passageiros por minuto usando dados de um tópico do Pub/Sub disponível publicamente sobre corridas de táxi. Esse comando também cria uma tabela do BigQuery chamada passengers_per_minute para armazenar a saída de dados.

    gcloud dataflow sql query \
        --job-name=dataflow-sql-quickstart \
        --region=us-central1 \
        --bigquery-dataset=taxirides \
        --bigquery-table=passengers_per_minute \
    'SELECT
         TUMBLE_START("INTERVAL 60 SECOND") as period_start,
         SUM(passenger_count) AS pickup_count,
    FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`
    WHERE
        ride_status = "pickup"
    GROUP BY
        TUMBLE(event_timestamp, "INTERVAL 60 SECOND")'
    

    Pode levar algum tempo para que o job do Dataflow SQL comece a ser executado.

Veja a seguir os valores usados no pipeline do Dataflow SQL:

  • dataflow-sql-quickstart: o nome do job do Dataflow
  • us-central1: a região em que o job é executado.
  • taxirides: o nome do conjunto de dados do BigQuery usado como coletor
  • passengers_per_minute: o nome da tabela do BigQuery.
  • taxirides-realtime: o nome do tópico Pub/Sub usado como origem

O comando SQL consulta o tópico taxirides-realtime do Pub/Sub para atingir o número total de passageiros retirados a cada 60 segundos. Este tópico público é baseado no conjunto de dados abertos da Comissão de Táxis e Limusines de Nova York.

Ver os resultados

  • Verifique se o pipeline está em execução.

    Console

    1. No console do Google Cloud, acesse a página Jobs do Dataflow.

      Acessar "Jobs"

    2. Na lista de jobs, clique em dataflow-sql-quickstart.

    3. No painel Informações do job, verifique se o campo Status do job está definido como Em execução.

      O job pode levar vários minutos para iniciar. O Status do job é definido como Na fila até que ele seja iniciado.

    4. Na guia gráfico do Job, confirme se todas as etapas estão em execução.

      Após o início do job, as etapas podem levar vários minutos para começar a ser executadas.

      O gráfico de jobs do Dataflow com duas etapas compostas. A primeira etapa está em execução por 6 minutos e 45 segundos, e a segunda por 1 segundo.

    5. No console do Google Cloud, acesse a página BigQuery.

      Ir para o BigQuery

    6. No Editor, cole a seguinte consulta SQL e clique em Executar:

      'SELECT *
      FROM taxirides.passengers_per_minute
      ORDER BY pickup_count DESC
      LIMIT 5'
      

      Essa consulta retorna os intervalos mais ocupados da tabela passengers_per_minute.

    gcloud

    1. Veja a lista de jobs do Dataflow em execução no projeto:

      gcloud dataflow jobs list
      
    2. Receba mais informações sobre o job dataflow-sql-quickstart:

      gcloud dataflow jobs describe JOB_ID
      

      Substitua JOB_ID pelo ID do job dataflow-sql-quickstart do projeto.

    3. Retorne os intervalos mais ocupados da tabela passengers_per_minute:

      bq query \
      'SELECT *
      FROM taxirides.passengers_per_minute
      ORDER BY pickup_count DESC
      LIMIT 5'
      

Limpar

Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.

  1. Para cancelar o job do Dataflow, acesse a página Jobs.

    Acessar "Jobs"

  2. Na lista de jobs, clique em dataflow-sql-quickstart.

  3. Clique em Interromper > Cancelar > Interromper job.

  4. Excluir o conjunto de dados taxirides:

    bq rm taxirides
    
  5. Para confirmar a exclusão, digite y.

A seguir