arrow_back

Processamento ETL no Google Cloud com o Dataflow e o BigQuery (Python)

Acesse mais de 700 laboratórios e cursos

Processamento ETL no Google Cloud com o Dataflow e o BigQuery (Python)

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

GSP290

Logotipo dos laboratórios autoguiados do Google Cloud

Visão geral

O Dataflow é um serviço do Google Cloud que fornece processamento unificado de dados de streaming e em lote em larga escala. Ele foi criado com base no projeto Apache Beam, um modelo de código aberto de definição de pipelines de processamento paralelo de dados de streaming e em lote. Usando um dos SDKs de código aberto do Apache Beam, é possível criar um programa que define o pipeline e, em seguida, usar o Dataflow para executar o pipeline.

Neste laboratório, você vai usar o SDK do Apache Beam para Python para criar e executar um pipeline no Dataflow e ingerir dados do Cloud Storage para o BigQuery. Em seguida, vai transformar e aprimorar os dados no BigQuery.

Observação: quando solicitado, abra os arquivos Python e leia os comentários. Isso ajuda a entender o que o código faz.

Atividades deste laboratório

Neste laboratório, você vai aprender a:

  • Criar e executar pipelines do Dataflow (Python) para ingerir dados do Cloud Storage para o BigQuery.
  • Criar e executar pipelines do Dataflow (Python) para transformar e aprimorar dados no BigQuery.
  • Criar e executar pipelines do Dataflow (Python) para mesclar dados no BigQuery e gravar os resultados em uma nova tabela.

Configuração e requisitos

Antes de clicar no botão Começar o Laboratório

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é ativado quando você clica em Iniciar laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, e não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima (recomendado) ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório: não se esqueça que, depois de começar, não será possível pausar o laboratório.
Observação: use apenas a conta de estudante neste laboratório. Se usar outra conta do Google Cloud, você poderá receber cobranças nela.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar o laboratório. Se for preciso pagar por ele, uma caixa de diálogo vai aparecer para você selecionar a forma de pagamento. No painel Detalhes do Laboratório, à esquerda, você vai encontrar o seguinte:

    • O botão Abrir Console do Google Cloud
    • O tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações, se forem necessárias
  2. Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.

    O laboratório ativa os recursos e depois abre a página Fazer Login em outra guia.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.

    {{{user_0.username | "Username"}}}

    Você também encontra o nome de usuário no painel Detalhes do Laboratório.

  4. Clique em Próxima.

  5. Copie a Senha abaixo e cole na caixa de diálogo de Olá.

    {{{user_0.password | "Password"}}}

    Você também encontra a senha no painel Detalhes do Laboratório.

  6. Clique em Próxima.

    Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  7. Acesse as próximas páginas:

    • Aceite os Termos e Condições.
    • Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
    • Não se inscreva em testes gratuitos.

Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.

Observação: para acessar os produtos e serviços do Google Cloud, clique no Menu de navegação ou digite o nome do serviço ou produto no campo Pesquisar. Ícone do menu de navegação e campo de pesquisa

Ativar o Cloud Shell

O Cloud Shell é uma máquina virtual com várias 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. Clique em Ativar o Cloud Shell Ícone "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

  2. Clique nas seguintes janelas:

    • Continue na janela de informações do Cloud Shell.
    • Autorize o Cloud Shell a usar suas credenciais para fazer chamadas de APIs do Google Cloud.

Depois de se conectar, você verá que sua conta já está autenticada e que o projeto está configurado com seu Project_ID, . A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

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

  1. (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
  1. Clique em Autorizar.

Saída:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project

Saída:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Observação: consulte a documentação completa da gcloud no Google Cloud no guia de visão geral da gcloud CLI.

Tarefa 1: verificar se a API Dataflow está ativada

Para ter acesso à API Dataflow, reinicie a conexão.

Importante: mesmo que a API esteja ativada, siga as etapas 1 a 4 abaixo para desativá-la e reative a API para que ela seja reiniciada.
  1. Na barra de título do console do Google Cloud, digite API Dataflow no campo Pesquisar e clique em API Dataflow nos resultados da pesquisa.

  2. Clique em Gerenciar.

  3. Clique em Desativar API.

Se for necessário confirmar, clique em Desativar.

  1. Clique em Ativar.

Quando a API for reativada, a página vai mostrar a opção Desativar.

Clique em Verificar meu progresso para conferir a tarefa realizada.

Desativar e reativar a API Dataflow.

Tarefa 2: fazer o download do código inicial

Faça o download dos exemplos Python do Dataflow para usar neste laboratório.

  1. Execute o seguinte comando no Cloud Shell para acessar exemplos Python do Dataflow no GitHub dos serviços profissionais do Google Cloud:
gcloud storage cp -r gs://spls/gsp290/dataflow-python-examples .
  1. Defina uma variável para o ID do projeto.
export PROJECT={{{ project_0.project_id }}} gcloud config set project $PROJECT

Tarefa 3: criar um bucket do Cloud Storage e copiar arquivos nele

No Cloud Shell, crie um bucket do Cloud Storage e copie os arquivos nele. Estes arquivos são os exemplos de Python do Dataflow.

Criar um bucket do Cloud Storage

  • Ainda no Cloud Shell, use o comando "make bucket" para criar um bucket regional na região do projeto:
gcloud storage buckets create gs://$PROJECT --location={{{ project_0.default_region | REGION }}}

Clique em Verificar meu progresso para conferir a tarefa realizada.

Criar um bucket do Cloud Storage.

Copiar os arquivos para o bucket

  • No Cloud Shell, use o comando gsutil para copiar arquivos para o bucket do Cloud Storage que você acabou de criar:
gcloud storage cp gs://spls/gsp290/data_files/usa_names.csv gs://$PROJECT/data_files/ gcloud storage cp gs://spls/gsp290/data_files/head_usa_names.csv gs://$PROJECT/data_files/

Clique em Verificar meu progresso para conferir a tarefa realizada.

Copiar os arquivos para o bucket.

Tarefa 4: criar um conjunto de dados do BigQuery

Crie um conjunto de dados no BigQuery. É nele que as tabelas são carregadas no BigQuery.

No Cloud Shell, crie o conjunto de dados chamado lake:

bq mk lake

Clique em Verificar meu progresso para conferir a tarefa realizada.

Criar o conjunto de dados do BigQuery chamado "lake".

Tarefa 5: analisar e executar o pipeline de ingestão de dados

Nesta tarefa, você vai analisar o código do pipeline para entender como ele funciona e, em seguida, vai configurar e executar o pipeline.

O pipeline de ingestão de dados transfere dados do Cloud Storage para a tabela do BigQuery usando a origem TextIO e o destino BigQueryIO. Especificamente, o pipeline:

  • ingere os arquivos do Cloud Storage;
  • filtra a linha de cabeçalho nos arquivos;
  • converte as linhas lidas em objetos de dicionário;
  • envia as linhas para o BigQuery.

Revisar o código Python do pipeline de ingestão de dados

Use o editor de código do Cloud Shell para revisar o código do pipeline.

  1. Na barra de menus do Cloud Shell, clique em Abrir editor.

  2. Acesse dataflow_python_examples > dataflow_python_examples e abra o arquivo data_ingestion.py.

  3. Leia os comentários que explicam o que o código faz.

Esse código preenche uma tabela do BigQuery com os arquivos de dados do Cloud Storage.

  1. Para retornar ao Cloud Shell, clique em Abrir terminal.

Configurar o contêiner do Docker para jobs do Dataflow

  1. Volte para a sessão do Cloud Shell para configurar as bibliotecas Python necessárias.

Os jobs do Dataflow deste laboratório exigem o Python 3.8. Para verificar se você tem a versão correta, execute os processos do Dataflow em um contêiner do Docker com Python 3.8.

  1. Execute o seguinte comando no Cloud Shell para iniciar um contêiner Python:
cd ~ docker run -it -e PROJECT=$PROJECT -v $(pwd)/dataflow-python-examples:/dataflow python:3.8 /bin/bash

Esse comando extrai um contêiner do Docker com a versão estável mais recente do Python 3.8 e roda um shell de comando para executar os próximos comandos no contêiner. A flag -v fornece o código-fonte como um volume para o contêiner, para permitir a edição do código no editor do Cloud Shell e manter o acesso a ele no contêiner em execução.

  1. Depois que o contêiner terminar a extração e começar a execução no Cloud Shell, execute o seguinte comando para instalar o apache-beam nele:
pip install apache-beam[gcp]==2.59.0
  1. Em seguida, no contêiner que está em execução no Cloud Shell, altere os diretórios para o local em que você vinculou o código-fonte:
cd dataflow/
  1. Defina o ID do projeto no contêiner:
export PROJECT={{{ project_0.project_id }}}

Executar o pipeline de ingestão de dados na nuvem

  1. Execute o código a seguir para executar o pipeline de ingestão de dados:
python dataflow_python_examples/data_ingestion.py \ --project=$PROJECT \ --region={{{ project_0.default_region | REGION }}} \ --runner=DataflowRunner \ --machine_type=e2-standard-2 \ --staging_location=gs://$PROJECT/test \ --temp_location gs://$PROJECT/test \ --input gs://$PROJECT/data_files/head_usa_names.csv \ --save_main_session

Esse código ativa os workers necessários e os desativa quando o pipeline é concluído.

  1. Na barra de título do console, digite Dataflow no campo Pesquisar e clique em Dataflow nos resultados da pesquisa.

Quando a página do Dataflow abrir, confira o status do job.

  1. Clique no nome do job para acompanhar o progresso.

Quando o Status do job aparecer como Concluído, siga para a próxima etapa. Esse pipeline de ingestão leva cerca de cinco minutos para iniciar, concluir a tarefa e encerrar.

  1. Acesse o BigQuery (Menu de navegação > BigQuery) e confira se os dados foram preenchidos.

  2. Clique no nome do projeto para exibir a tabela usa_names no conjunto de dados lake.

Tabela usa_names

  1. Clique na tabela e acesse a guia Visualização para conferir exemplos dos dados de usa_names.
Observação: se a tabela usa_names não for exibida, tente atualizar a página ou visualizar as tabelas usando a interface clássica do BigQuery.

Clique em Verificar meu progresso para conferir a tarefa realizada.

Criar um pipeline de ingestão de dados.

Tarefa 6: analisar e executar o pipeline de transformação de dados

Nesta tarefa, você vai analisar o pipeline de transformação de dados para entender como ele funciona e, em seguida, vai executar o pipeline para processar os arquivos do Cloud Storage e gerar o resultado no BigQuery.

O pipeline de transformação de dados também ingere dados do Cloud Storage na tabela do BigQuery usando a origem TextIO e o destino BigQueryIO, mas com outras transformações de dados. Especificamente, o pipeline:

  • ingere os arquivos do Cloud Storage;
  • converte as linhas lidas em objetos de dicionário;
  • transforma os dados que contêm o ano em um formato que o BigQuery possa entender como data;
  • envia as linhas para o BigQuery.

Revisar o código Python do pipeline de transformação de dados

  • No editor de código, abra o arquivo data_transformation.py.

Leia os comentários que explicam o que o código faz.

Executar o pipeline de transformação de dados na nuvem

  1. Execute o código a seguir para executar o pipeline de transformação de dados:
python dataflow_python_examples/data_transformation.py \ --project=$PROJECT \ --region={{{ project_0.default_region | REGION }}} \ --runner=DataflowRunner \ --machine_type=e2-standard-2 \ --staging_location=gs://$PROJECT/test \ --temp_location gs://$PROJECT/test \ --input gs://$PROJECT/data_files/head_usa_names.csv \ --save_main_session
  1. Na barra de título do console do Google Cloud, digite Dataflow no campo Pesquisar e clique em Dataflow nos resultados da pesquisa.

  2. Clique no nome do job para conferir o status dele.

Esse pipeline do Dataflow leva cerca de cinco minutos para iniciar, concluir a tarefa e encerrar.

  1. Quando o Status do job aparecer como Concluído na tela correspondente do Dataflow, acesse o BigQuery para verificar se os dados foram preenchidos.

A tabela usa_names_transformed deve aparecer abaixo do conjunto de dados lake.

  1. Clique na tabela e acesse a guia Visualização para consultar exemplos dos dados de usa_names_transformed.
Observação: se a tabela usa_names_transformed não for exibida, atualize a página ou visualize as tabelas usando a interface clássica do BigQuery.

Clique em Verificar meu progresso para conferir a tarefa realizada.

Criar um pipeline de transformação de dados.

Tarefa 7: analisar e executar o pipeline de aprimoramento de dados

Crie um pipeline de aprimoramento de dados que faz o seguinte:

  • ingerir os arquivos do Cloud Storage;
  • filtrar a linha de cabeçalho nos arquivos;
  • converter as linhas lidas em objetos de dicionário;
  • enviar as linhas para o BigQuery.

Revisar e editar o código Python do pipeline de aprimoramento de dados

  1. No editor de código, abra data_enrichment.py.

  2. Confira os comentários que explicam o que o código faz. Esse código preenche os dados no BigQuery.

No momento, esta é a linha 83:

values = [x.decode('utf8') for x in csv_row]
  1. Faça as seguintes alterações nessa linha:
values = [x for x in csv_row]
  1. Depois de editar a linha, lembre-se de Salvar o arquivo atualizado, basta selecionar a opção Arquivo no editor de código e clicar em Salvar.

Executar o pipeline de aprimoramento de dados

  1. Execute o código a seguir para executar o pipeline de aprimoramento de dados:
python dataflow_python_examples/data_enrichment.py \ --project=$PROJECT \ --region={{{ project_0.default_region | REGION }}} \ --runner=DataflowRunner \ --machine_type=e2-standard-2 \ --staging_location=gs://$PROJECT/test \ --temp_location gs://$PROJECT/test \ --input gs://$PROJECT/data_files/head_usa_names.csv \ --save_main_session
  1. Na página do Dataflow, clique no job para conferir o status dele.

Esse pipeline do Dataflow leva cerca de cinco minutos para iniciar, concluir a tarefa e encerrar.

  1. Quando o Status do job aparecer como Concluído na tela Status do job do Dataflow, clique em Menu de navegação > BigQuery no console para verificar se os dados foram preenchidos.

A tabela usa_names_enriched será exibida abaixo do conjunto de dados lake.

  1. Clique na tabela e acesse a guia Visualização para conferir exemplos dos dados de usa_names_enriched.
Observação: se a tabela usa_names_enriched não for exibida, atualize a página ou visualize as tabelas usando a interface clássica do BigQuery.

Clique em Verificar meu progresso para conferir a tarefa realizada.

Criar um pipeline de aprimoramento de dados.

Tarefa 8: analisar e executar o pipeline de data lake para data mart

Crie um pipeline do Dataflow que leia dados de duas fontes do BigQuery e combine essas fontes. Mais especificamente, você vai fazer o seguinte:

  • ingerir arquivos de duas fontes do BigQuery;
  • mesclar as duas fontes de dados;
  • filtrar a linha de cabeçalho nos arquivos;
  • converter as linhas lidas em objetos de dicionário;
  • enviar as linhas para o BigQuery.

Executar o pipeline de ingestão de dados para realizar uma combinação e gravar a tabela resultante no BigQuery

Primeiro, analise o código data_lake_to_mart.py para entender o que ele faz. Em seguida, execute o pipeline na nuvem.

  1. No Editor de código, abra o arquivo data_lake_to_mart.py.

Leia os comentários que explicam o que o código faz. Esse código combina duas tabelas e grava os resultados em uma nova tabela no BigQuery.

  1. Execute o bloco de código a seguir para executar o pipeline:
python dataflow_python_examples/data_lake_to_mart.py \ --worker_disk_type="compute.googleapis.com/projects//zones//diskTypes/pd-ssd" \ --max_num_workers=4 \ --project=$PROJECT \ --runner=DataflowRunner \ --machine_type=e2-standard-2 \ --staging_location=gs://$PROJECT/test \ --temp_location gs://$PROJECT/test \ --save_main_session \ --region={{{ project_0.default_region | REGION }}}
  1. Na barra de título do console do Google Cloud, digite Dataflow no campo Pesquisar e clique em Dataflow nos resultados da pesquisa.

  2. Clique no novo job para conferir o status.

Esse pipeline do Dataflow leva cerca de cinco minutos para iniciar, concluir a tarefa e encerrar.

  1. Quando o Status do job aparecer como Concluído na tela correspondente do Dataflow, clique em Menu de navegação > BigQuery para verificar se os dados foram preenchidos.

A tabela orders_denormalized_sideinput será exibida abaixo do conjunto de dados lake.

  1. Clique na tabela e acesse a seção Visualização para conferir exemplos dos dados de orders_denormalized_sideinput.
Observação: se a tabela orders_denormalized_sideinput não for exibida, atualize a página ou visualize as tabelas usando a interface clássica do BigQuery.

Clique em Verificar meu progresso para conferir a tarefa realizada.

Crie um pipeline do Dataflow para o data lake de Mart

Teste seu conhecimento

Responda às perguntas de múltipla escolha a seguir para reforçar os conceitos abordados neste laboratório. Use tudo que aprendeu até aqui.

Parabéns!

Você executou o código Python usando o Dataflow para ingerir dados do Cloud Storage no BigQuery e, em seguida, transformar e aprimorar os dados no BigQuery.

Próximas etapas / Saiba mais

Quer saber mais? Confira a documentação oficial:

Treinamento e certificação do Google Cloud

Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.

Manual atualizado em 1 de abril de 2025

Laboratório testado em 1 de abril de 2025

Copyright 2025 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.