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

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.

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

  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

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.