arrow_back

Análise de dados sem servidor com o Dataflow: um pipeline simples do Dataflow (Java)

Acesse mais de 700 laboratórios e cursos

Análise de dados sem servidor com o Dataflow: um pipeline simples do Dataflow (Java)

Laboratório 1 hora 30 minutos universal_currency_alt 5 créditos show_chart Avançado
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Acesse mais de 700 laboratórios e cursos

Visão geral

Neste laboratório, você vai abrir um projeto do Dataflow, usar a filtragem do pipeline e executar o pipeline localmente e na nuvem.

Objetivos

Neste laboratório, você aprenderá a criar um pipeline simples do Dataflow e a executá-lo localmente e na nuvem.

  • Configurar um projeto do Dataflow em Java usando o Maven
  • Criar um pipeline simples em Java
  • Executar a consulta na máquina local
  • Executar a consulta na nuvem

Configuração e requisitos

Para cada laboratório, você recebe um novo projeto do Google Cloud e um conjunto de recursos por um determinado período e sem custos financeiros.

  1. Faça login no Qwiklabs em uma janela anônima.

  2. Confira o tempo de acesso do laboratório (por exemplo, 1:15:00) e finalize todas as atividades nesse prazo.
    Não é possível pausar o laboratório. Você pode reiniciar o desafio, mas vai precisar refazer todas as etapas.

  3. Quando tudo estiver pronto, clique em Começar o laboratório.

  4. Anote as credenciais (Nome de usuário e Senha). É com elas que você vai fazer login no Console do Google Cloud.

  5. Clique em Abrir Console do Google.

  6. Clique em Usar outra conta, depois copie e cole as credenciais deste laboratório nos locais indicados.
    Se você usar outras credenciais, vai receber mensagens de erro ou cobranças.

  7. Aceite os termos e pule a página de recursos de recuperação.

Ative o Google Cloud Shell

O Google Cloud Shell é uma máquina virtual com ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud.

O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.

  1. No console do Cloud, clique no botão "Abrir o Cloud Shell" na barra de ferramentas superior direita.

    Ícone do Cloud Shell em destaque

  2. Clique em Continuar.

O provisionamento e a conexão do ambiente podem demorar um pouco. Quando você estiver conectado, já estará autenticado, e o projeto estará definido com seu PROJECT_ID. Exemplo:

ID do projeto em destaque no terminal do Cloud Shell

A gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.

  • Para listar o nome da conta ativa, use este comando:
gcloud auth list

Saída:

Credentialed accounts: - @.com (active)

Exemplo de saída:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Para listar o ID do projeto, use este comando:
gcloud config list project

Saída:

[core] project =

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: a documentação completa da gcloud está disponível no guia com informações gerais sobre a gcloud CLI .

Inicie o editor de código do Google Cloud Shell

Use o editor de código do Google Cloud Shell para facilitar a criação e edição de diretórios e arquivos na instância do Cloud Shell.

  • Clique em Abrir editor depois de ativar o Google Cloud Shell.

Botão "Abrir editor"

Agora há três interfaces disponíveis:

  • O editor de código do Cloud Shell
  • O console, que pode ser alternado pelo Cloud Shell quando você clica nas guias correspondentes
  • A linha de comando do Cloud Shell, que você pode acessar clicando em Abrir terminal no Console

Três interfaces: o editor de código do Cloud Shell, o console e a linha de comando do Cloud Shell. Os três em destaque

Verifique as permissões do projeto

Antes de começar a trabalhar no Google Cloud, veja se o projeto tem as permissões corretas no Identity and Access Management (IAM).

  1. No console do Google Cloud, em Menu de navegação (Ícone do menu de navegação), selecione IAM e administrador > IAM.

  2. Confira se a conta de serviço padrão do Compute {project-number}-compute@developer.gserviceaccount.com está na lista e recebeu o papel de editor. O prefixo da conta é o número do projeto, que está no Menu de navegação > Visão geral do Cloud > Painel.

Nome da conta de serviço padrão e status do editor do Compute Engine destacados na página com a guia "Permissões"

Observação: se a conta não estiver no IAM ou não tiver o papel de editor, siga as etapas abaixo.
  1. No console do Google Cloud, em Menu de navegação, clique em Visão geral do Cloud > Painel.
  2. Copie o número do projeto, por exemplo, 729328892908.
  3. Em Menu de navegação, clique em IAM e administrador > IAM.
  4. Clique em Permitir acesso, logo abaixo de Visualizar por principais na parte de cima da tabela de papéis.
  5. Em Novos principais, digite:
{project-number}-compute@developer.gserviceaccount.com
  1. Substitua {project-number} pelo número do seu projeto.
  2. Em Papel, selecione Projeto (ou Básico) > Editor.
  3. Clique em Save.

Tarefa 1: preparação

Verificar o bucket e fazer o download do código do laboratório

Etapas específicas devem ser concluídas para a execução bem-sucedida desse laboratório:

  1. Verifique se há um bucket do Cloud Storage (um desses foi criado para você automaticamente quando o ambiente do laboratório foi iniciado).

  2. Na barra de título do console do Google Cloud, clique em Ativar o Cloud Shell. Se for solicitado, clique em Continuar. Clone o repositório com o código do laboratório no GitHub usando o comando a seguir:

git clone https://github.com/GoogleCloudPlatform/training-data-analyst
  1. No Cloud Shell, digite o seguinte para criar duas variáveis de ambiente. Uma chamada "BUCKET" e outra chamada "REGION". Confira se as duas existem usando o comando "echo":
BUCKET="{{{project_0.project_id|Project ID}}}-bucket" echo $BUCKET REGION="{{{project_0.default_region|Region}}}" echo $REGION

Verifique se a API Dataflow está devidamente ativada:

  1. No Cloud Shell, execute estes comandos para garantir que a API Dataflow esteja ativada sem problemas no projeto.
gcloud services disable dataflow.googleapis.com --force gcloud services enable dataflow.googleapis.com

Tarefa 2: crie um novo projeto do Dataflow

O objetivo deste laboratório é você se familiarizar com a estrutura de um projeto do Dataflow e aprender a executar um pipeline do Dataflow. Você usará a ferramenta de build avançada Maven para criar um novo projeto do Dataflow.

  1. Volte para a guia do Cloud Shell no navegador. No Cloud Shell, navegue até o diretório deste laboratório:
cd ~/training-data-analyst/courses/data_analysis/lab2
  1. Copie e cole o seguinte comando do Maven:
mvn archetype:generate \ -DarchetypeArtifactId=google-cloud-dataflow-java-archetypes-starter \ -DarchetypeGroupId=com.google.cloud.dataflow \ -DgroupId=com.example.pipelinesrus.newidea \ -DartifactId=newidea \ -Dversion="[1.0.0,2.0.0]" \ -DinteractiveMode=false
  • Qual diretório foi criado?
  • Qual pacote foi criado dentro do diretório src?
  1. Verifique o comando do Maven que foi usado para criar o código do laboratório:
cat ~/training-data-analyst/courses/data_analysis/lab2/create_mvn.sh
  • Qual diretório será criado?
  • Qual pacote será criado dentro do diretório src?

Tarefa 3: filtragem do pipeline

  1. No editor de código do Cloud Shell, navegue até o diretório /training-data-analyst/courses/data_analysis/lab2.

  2. Em seguida, selecione o caminho javahelp/src/main/java/com/google/cloud/training/dataanalyst/javahelp/ e visualize o arquivo Grep.java.

Como alternativa, visualize o arquivo com o nano. Não faça alterações no código.

cd ~/training-data-analyst/courses/data_analysis/lab2/javahelp/src/main/java/com/google/cloud/training/dataanalyst/javahelp/ nano Grep.java

Você sabe responder a estas perguntas sobre o arquivo Grep.java?

  • Quais arquivos estão sendo lidos?
  • Qual é o termo de pesquisa?
  • Para onde vai a resposta?

Há três instruções apply no pipeline:

  • O que o primeiro apply() faz?
  • O que o segundo apply() faz?
  • De onde vem a entrada dele?
  • O que ele faz com essa entrada?
  • O que ele escreve na resposta?
  • Para onde é enviada a resposta?
  • O que o terceiro apply() faz?

Tarefa 4: execute o pipeline localmente

  1. No Cloud Shell, cole o seguinte comando do Maven:
cd ~/training-data-analyst/courses/data_analysis/lab2 export PATH=/usr/lib/jvm/java-8-openjdk-amd64/bin/:$PATH cd ~/training-data-analyst/courses/data_analysis/lab2/javahelp mvn compile -e exec:java \ -Dexec.mainClass=com.google.cloud.training.dataanalyst.javahelp.Grep
  1. O arquivo de saída vai ser output.txt. Se a resposta for muito grande, ela será fragmentada em partes separadas com nomes como: output-00000-of-00001. Se necessário, localize o arquivo correto verificando a hora em que foi criado:
ls -al /tmp
  1. Analise o arquivo de resposta:
cat /tmp/output*

A saída parece lógica?

Tarefa 5: execute o pipeline na nuvem

  1. Copie alguns arquivos Java para a nuvem:
gcloud storage cp ../javahelp/src/main/java/com/google/cloud/training/dataanalyst/javahelp/*.java gs://$BUCKET/javahelp
  1. No editor de código do Cloud Shell, navegue até o diretório /training-data-analyst/courses/data_analysis/lab2/javahelp/src/main/java/com/google/cloud/training/dataanalyst/javahelp

  2. Edite o pipeline do Dataflow no arquivo Grep.java:

cd ~/training-data-analyst/courses/data_analysis/lab2/javahelp/src/main/java/com/google/cloud/training/dataanalyst/javahelp
  1. Substitua as variáveis Input e Output pelo nome do seu bucket. Substitua as variáveis da seguinte maneira:
String input = "gs://{{{project_0.project_id|Project ID}}}-bucket/javahelp/*.java"; String outputPrefix = "gs://{{{project_0.project_id|Project ID}}}-bucket/javahelp/output"; Observação: verifique se você alterou as strings input e outputPrefix que já estão presentes no código-fonte. Não copie nem cole a linha inteira acima sem remover as strings iniciais, ou você vai acabar com duas variáveis iguais.

Linhas de exemplo antes da edição:

String input = "src/main/java/com/google/cloud/training/dataanalyst/javahelp/*.java"; String outputPrefix = "/tmp/output"; </ql-code-block output> Exemplo de linhas após a edição contendo o nome do bucket de seu projeto: String input = "gs://qwiklabs-gcp-your-value-bucket/javahelp/*.java"; </ql-code-block output> String outputPrefix = "gs://qwiklabs-gcp-your-value-bucket/javahelp/output"; </ql-code-block output> 5. Analise o script para enviar o job do Dataflow para a nuvem: cd ~/training-data-analyst/courses/data_analysis/lab2/javahelp cat run_oncloud1.sh

Qual é a diferença entre esse comando do Maven e o que é executado localmente?

  1. Envie o job do Dataflow para a nuvem:
bash run_oncloud1.sh $DEVSHELL_PROJECT_ID $BUCKET Grep $REGION

Por ser um job pequeno, a execução na nuvem demora muito mais do que a execução local (de dois a três minutos).

Exemplo de conclusão da linha de comando:

[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:50 min [INFO] Finished at: 2018-02-06T15:11:23-05:00 [INFO] Final Memory: 39M/206M [INFO] ------------------------------------------------------------------------
  1. Volte para a guia do console no navegador. No Menu de navegação (ícone do menu de navegação), clique em Dataflow e no job para monitorar o progresso.

Exemplo:

A guia do gráfico do job exibindo a visualização do gráfico

  1. Espere o status do job mudar para Concluído. Nesse momento, o Cloud Shell exibirá um prompt da linha de comando.

    Observação: se o job do Dataflow falhar na primeira vez, execute novamente o comando anterior para enviar um novo job do Dataflow para a nuvem
  2. Examine a saída no bucket do Cloud Storage. No Menu de navegação (ícone do menu de navegação), clique em Cloud Storage > Buckets e depois no bucket.

  3. Selecione o diretório javahelp. Esse job gera o arquivo output.txt. Se o arquivo for muito grande, ele vai ser fragmentado em várias partes com nomes como: output-0000x-of-000y. Para encontrar o arquivo mais recente, confira o nome ou o campo Última modificação. Clique no arquivo para visualizá-lo.

Você também pode fazer o download do arquivo no Cloud Shell e visualizá-lo:

gcloud storage cp gs://$BUCKET/javahelp/output* . cat output*

Finalize o laboratório

Clique em Terminar o laboratório após a conclusão. O Google Cloud Ensina remove os recursos usados e limpa a conta por você.

Você vai poder avaliar sua experiência no laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Enviar.

O número de estrelas indica o seguinte:

  • 1 estrela = muito insatisfeito
  • 2 estrelas = insatisfeito
  • 3 estrelas = neutro
  • 4 estrelas = satisfeito
  • 5 estrelas = muito satisfeito

Feche a caixa de diálogo se não quiser enviar feedback.

Para enviar seu feedback, fazer sugestões ou correções, use a guia Suporte.

Copyright 2020 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.

Antes de começar

  1. Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
  2. Os laboratórios têm um limite de tempo e não têm o recurso de pausa. Se você encerrar o laboratório, vai precisar recomeçar do início.
  3. No canto superior esquerdo da tela, clique em Começar o laboratório

Usar a navegação anônima

  1. Copie o nome de usuário e a senha fornecidos para o laboratório
  2. Clique em Abrir console no modo anônimo

Fazer login no console

  1. Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
  2. Aceite os termos e pule a página de recursos de recuperação
  3. Não clique em Terminar o laboratório a menos que você tenha concluído ou queira recomeçar, porque isso vai apagar seu trabalho e remover o projeto

Este conteúdo não está disponível no momento

Você vai receber uma notificação por e-mail quando ele estiver disponível

Ótimo!

Vamos entrar em contato por e-mail se ele ficar disponível

Um laboratório por vez

Confirme para encerrar todos os laboratórios atuais e iniciar este

Use a navegação anônima para executar o laboratório

Para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.