Criar um pipeline de streaming usando um modelo do Dataflow

Neste guia de início rápido, você aprenderá a criar um canal de streaming usando como exemplo um modelo do Dataflow fornecido pelo Google. Mais especificamente, o modelo Pub/Sub para BigQuery é usado como exemplo.

O modelo do Pub/Sub para BigQuery é um pipeline de streaming que pode ler mensagens formatadas em JSON de um tópico do Pub/Sub e gravá-las em uma tabela do BigQuery.


Para seguir as instruções detalhadas desta tarefa diretamente no console do Google Cloud , clique em Orientação:

Orientações


Antes de começar

Conclua as etapas a seguir antes de executar o pipeline.

Criar o projeto

  1. Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, 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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Pub/Sub, and Resource Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Pub/Sub, and Resource Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

Funções exigidas

Para concluir este guia de início rápido, você precisa dos seguintes papéis do Identity and Access Management (IAM).

Para conseguir as permissões necessárias a fim de concluir o guia de início rápido, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Para garantir que a conta de serviço padrão do Compute Engine tenha as permissões necessárias para executar o job do Dataflow, peça ao administrador para conceder os seguintes papéis do IAM à conta de serviço padrão do Compute Engine no projeto:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

O administrador também pode conceder à conta de serviço padrão do Compute Engine as permissões necessárias por meio de papéis personalizados ou outros papéis predefinidos.

Criar um bucket do Cloud Storage

Antes de executar um pipeline, é necessário criar um bucket do Cloud Storage.

  1. Crie um bucket do Cloud Storage:

    1. No console do Google Cloud , acesse a página Buckets do Cloud Storage.

      Acessar buckets

    2. Clique em Criar.
    3. Na página Criar um bucket, insira as informações do seu bucket. Para ir à próxima etapa, clique em Continuar.
      1. Em Nomear o bucket, insira um nome exclusivo. Não inclua informações confidenciais no nome do bucket já que o namespace dele é global e visível para o público.
      2. Na seção Escolha onde armazenar seus dados, faça o seguinte:
        1. Selecione um tipo de local.
        2. Escolha um local onde os dados do bucket são armazenados permanentemente no menu suspenso Tipo de local.
        3. Para configurar a replicação entre buckets, selecione Adicionar replicação entre buckets usando o Serviço de transferência do Cloud Storage e siga estas etapas:

          Configurar a replicação entre buckets

          1. No menu Bucket, selecione um bucket.
          2. Na seção Configurações de replicação, clique em Configurar para definir as configurações do job de replicação.

            O painel Configurar a replicação entre buckets aparece.

            • Para filtrar objetos a serem replicados por prefixo de nome de objeto, insira um prefixo com que você quer incluir ou excluir objetos e clique em Adicionar um prefixo.
            • Para definir uma classe de armazenamento para os objetos replicados, selecione uma classe de armazenamento no menu Classe de armazenamento. Se você pular esta etapa, os objetos replicados vão usar a classe de armazenamento do bucket de destino por padrão.
            • Clique em Concluído.
      3. Na seção Escolha como armazenar seus dados, faça o seguinte:
        1. Na seção Definir uma classe padrão, selecione o seguinte: Padrão.
        2. Para ativar o namespace hierárquico, na seção Otimizar o armazenamento para cargas de trabalho com uso intensivo de dados, selecione Ativar namespace hierárquico neste bucket.
      4. Na seção Escolha como controlar o acesso a objetos, selecione se o bucket aplica ou não a prevenção de acesso público e selecione um método de controle de acesso para os objetos do bucket.
      5. Na seção Escolha como proteger os dados do objeto, faça o seguinte:
        • Selecione qualquer uma das opções em Proteção de dados que você quer definir para o bucket.
          • Para ativar a exclusão reversível, clique na caixa de seleção Política de exclusão reversível (para recuperação de dados) e especifique o número de dias que você quer reter os objetos após a exclusão.
          • Para definir o controle de versões de objetos, clique na caixa de seleção Controle de versões de objetos (para controle de versões) e especifique o número máximo de versões por objeto e o número de dias após os quais as versões não atuais expiram.
          • Para ativar a política de retenção em objetos e buckets, clique na caixa de seleção Retenção (para compliance) e faça o seguinte:
            • Para ativar o bloqueio de retenção de objetos, clique na caixa de seleção Ativar retenção de objetos.
            • Para ativar o Bloqueio de buckets, clique na caixa de seleção Definir política de retenção de buckets e escolha uma unidade e um período de armazenamento para a retenção.
        • Para escolher como os dados do objeto serão criptografados, expanda a seção Criptografia de dados () e selecione um método de Criptografia de dados.
    4. Clique em Criar.
  2. Copie o seguinte, conforme necessário em uma seção posterior:

    • Seu nome do bucket do Cloud Storage.
    • O ID do projeto do Google Cloud .

    Para encontrar esse ID, consulte Como identificar projetos.

Rede VPC

Por padrão, cada novo projeto começa com uma rede padrão. Se a rede padrão do seu projeto estiver desativada ou tiver sido excluída, você precisará ter uma rede no projeto em que sua conta de usuário tenha o papel de usuário da rede do Compute (roles/compute.networkUser).

Criar um conjunto de dados e uma tabela do BigQuery

Crie um conjunto de dados e uma tabela do BigQuery com o esquema apropriado para seu tópico Pub/Sub usando o Google Cloud console.

Neste exemplo, o nome do conjunto de dados é taxirides e o nome da tabela realtime é. Para criar o conjunto de dados e a tabela, siga estas etapas:

  1. Acessar a página do BigQuery.
    Acesse o BigQuery
  2. No painel Explorer, ao lado do projeto em que você quer criar o conjunto de dados, clique em Ver ações e clique em Criar conjunto de dados.
  3. No painel Criar conjunto de dados, siga estas etapas:
    1. Para o código do conjunto de dados, insira taxirides. Os IDs do conjunto de dados são exclusivos de cada projeto Google Cloud .
    2. Em Tipo de local, selecione Multirregião e EUA (várias regiões nos Estados Unidos). Os conjuntos de dados públicos são armazenados no local multirregional US. Para simplificar, coloque seu conjunto de dados nele também.
    3. Mantenha os valores padrão das outras configurações e clique em Criar conjunto de dados.
  4. No painel Explorer, expanda o projeto.
  5. Ao lado do conjunto de dados taxirides, clique em Ver ações e, em seguida, Criar tabela.
  6. No painel Criar tabela, siga estas etapas:
    1. Na seção Origem, em Criar tabela de, selecione Tabela em branco.
    2. Na seção Destino, insira realtime como a Tabela.
    3. Na seção Esquema, clique na opção Editar como texto e cole na caixa a definição de esquema seguinte:
      ride_id:string,point_idx:integer,latitude:float,longitude:float,timestamp:timestamp,
      meter_reading:float,meter_increment:float,ride_status:string,passenger_count:integer
    4. Na seção Partição e configurações de cluster, em Particionamento, selecione o campo carimbo de data/hora.
  7. Mantenha as outras configurações padrão e clique em Criar tabela.

execute o pipeline

Execute um pipeline de streaming usando o modelo do Pub/Sub para o BigQuery fornecido pelo Google. O pipeline recebe dados de entrada a partir do tópico de entrada.

  1. Acesse a página Jobs do Dataflow.
    Acessar Jobs
  2. Clique em Criar job usando um modelo.
  3. Insira taxi-data como o Nome do job para o job do Dataflow.
  4. Em Modelo do Dataflow, selecione o modelo Pub/Sub para BigQuery.
  5. Em Tabela de saída do BigQuery, digite o seguinte:
    PROJECT_ID:taxirides.realtime

    Substitua PROJECT_ID pelo ID do projeto em que você criou o conjunto de dados do BigQuery.

  6. Na seção Parâmetros de origem opcionais, no campo Inserir tópico do Pub/Sub, clique em Inserir tópico manualmente.
  7. No diálogo, em Nome do tópico, digite o seguinte e clique em Salvar:
    projects/pubsub-public-data/topics/taxirides-realtime

    Este tópico do Pub/Sub disponível publicamente é baseado no conjunto de dados aberto da Comissão de Táxis e Limusines de Nova York. Veja a seguir uma mensagem de amostra deste tópico, no formato JSON:

    {
      "ride_id": "19c41fc4-e362-4be5-9d06-435a7dc9ba8e",
      "point_idx": 217,
      "latitude": 40.75399,
      "longitude": -73.96302,
      "timestamp": "2021-03-08T02:29:09.66644-05:00",
      "meter_reading": 6.293821,
      "meter_increment": 0.029003782,
      "ride_status": "enroute",
      "passenger_count": 1
    }
  8. Em Local temporário, insira o seguinte:
    gs://BUCKET_NAME/temp/

    Substitua BUCKET_NAME pelo nome do bucket no Cloud Storage. A pasta temp armazena arquivos temporários, como o job do pipeline preparado.

  9. Se o projeto não tiver uma rede padrão, insira uma Rede e uma Sub-rede. Para mais informações, consulte Especificar uma rede e uma sub-rede.
  10. Cliquem em Executar job.

Ver os resultados

Para visualizar os dados gravados na tabela realtime, siga estas etapas:

  1. Acessar a página do BigQuery.

    Acessar o BigQuery

  2. Clique em Criar uma nova consulta. Uma nova guia Editor será aberta.

    SELECT * FROM `PROJECT_ID.taxirides.realtime`
    WHERE `timestamp` > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
    LIMIT 1000

    Substitua PROJECT_ID pelo ID do projeto em que você criou o conjunto de dados do BigQuery. Pode levar até cinco minutos para que os dados comecem a aparecer na tabela.

  3. Clique em Executar.

    A consulta retorna linhas que foram adicionadas à sua tabela nas últimas 24 horas. Também é possível executar consultas usando o SQL padrão.

Limpar

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

Excluir o projeto

A maneira mais fácil de eliminar o faturamento é excluir o projeto Google Cloud que você criou para o guia de início rápido.

  1. No console Google Cloud , acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

Excluir recursos individuais

Se você quiser manter o projeto Google Cloud usado neste guia de início rápido, exclua os recursos individuais:

  1. Acesse a página Jobs do Dataflow.
    Acessar o Jobs
  2. Selecione o job de streaming na lista de jobs.
  3. Na navegação, clique em Parar.
  4. Na caixa de diálogo Interromper job, cancele ou drene o pipeline e clique em Interromper job.
  5. Acessar a página do BigQuery.
    Ir para o BigQuery
  6. No painel Explorador, expanda o projeto.
  7. Ao lado do conjunto de dados que você quer excluir, clique em Ver ações e, depois, em Abrir.
  8. No painel de detalhes, clique em Excluir conjunto de dados e siga as instruções.
  9. No console do Google Cloud , acesse a página Buckets do Cloud Storage.

    Acessar buckets

  10. Clique na caixa de seleção do bucket que você quer excluir.
  11. Para excluir o bucket, clique em Excluir e siga as instruções.

A seguir