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
-
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
-
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.
-
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.
-
Clique em Próxima.
-
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.
-
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.
-
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.
-
Clique em Ativar o Cloud Shell
na parte de cima do console do Google Cloud.
-
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.
- (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
- Clique em Autorizar.
Saída:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (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.
-
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.
-
Clique em Gerenciar.
-
Clique em Desativar API.
Se for necessário confirmar, clique em Desativar.
- 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.
- 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 .
- 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.
-
Na barra de menus do Cloud Shell, clique em Abrir editor.
-
Acesse dataflow_python_examples
> dataflow_python_examples
e abra o arquivo data_ingestion.py
.
-
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.
- Para retornar ao Cloud Shell, clique em Abrir terminal.
Configurar o contêiner do Docker para jobs do Dataflow
- 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.
- 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.
- 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
- 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/
- Defina o ID do projeto no contêiner:
export PROJECT={{{ project_0.project_id }}}
Executar o pipeline de ingestão de dados na nuvem
- 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.
- 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.
- 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.
-
Acesse o BigQuery (Menu de navegação > BigQuery) e confira se os dados foram preenchidos.
-
Clique no nome do projeto para exibir a tabela usa_names no conjunto de dados lake
.

- 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
- 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
-
Na barra de título do console do Google Cloud, digite Dataflow no campo Pesquisar e clique em Dataflow nos resultados da pesquisa.
-
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.
- 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
.
- 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
-
No editor de código, abra data_enrichment.py
.
-
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]
- Faça as seguintes alterações nessa linha:
values = [x for x in csv_row]
- 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
- 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
- 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.
- 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
.
- 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.
- 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.
- 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 }}}
-
Na barra de título do console do Google Cloud, digite Dataflow no campo Pesquisar e clique em Dataflow nos resultados da pesquisa.
-
Clique no novo job para conferir o status.
Esse pipeline do Dataflow leva cerca de cinco minutos para iniciar, concluir a tarefa e encerrar.
- 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
.
- 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.