arrow_back

Como migrar dados para e do Spanner com o Dataflow

Acesse mais de 700 laboratórios e cursos

Como migrar dados para e do Spanner com o Dataflow

Laboratório 1 hora universal_currency_alt 1 crédito show_chart Introdutório
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Acesse mais de 700 laboratórios e cursos

SCBL008

Visão geral

Neste laboratório, você vai usar o Dataflow e o Apache Beam para migrar dados para o Spanner.

Objetivos

Neste laboratório, você vai aprender a:

  • Criar pipelines de ETL usando o Apache Beam;
  • Executar pipelines do Apache Beam usando o Google Cloud Dataflow.

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 é iniciado quando você clica em Começar o 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, 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 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.
  • Tempo para concluir o laboratório: não se esqueça, depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta pessoal do Google Cloud neste laboratório para evitar cobranças extras.

Ative o Google Cloud Shell

O Google Cloud Shell é uma máquina virtual com ferramentas de desenvolvimento. Ele conta com um diretório principal permanente de 5 GB e é executado no Google Cloud. O Google Cloud Shell permite acesso de linha de comando aos seus recursos do GCP.

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

  2. Clique em Continue (continuar):

Demora alguns minutos para provisionar e conectar-se ao ambiente. Quando você está conectado, você já está autenticado e o projeto é definido como seu PROJECT_ID . Por exemplo:

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

É possível listar o nome da conta ativa com este comando:

gcloud auth list

Saída:

ACTIVE: *
ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net
To set the active account, run:
    $ gcloud config set account `ACCOUNT`
	

É possível listar o ID de projeto com este comando:

gcloud config list project
	

Saída:

[core]
project = <project_ID>
	

Exemplo de saída:

[core]
project = qwiklabs-gcp-44776a13dea667a6
	

Tarefa 1: Criar um pipeline do Apache Beam para importar dados para o Spanner

  1. Na barra de título do console do Google Cloud, clique em Ativar o Cloud Shell (). Caso solicitado, clique em Continuar.

  2. Execute o seguinte comando para definir o ID do projeto:

gcloud config set project {{{project_0.project_id|placeholder_project_id}}}
  1. Execute os comandos a seguir para fazer o download dos arquivos necessários para este laboratório:
git clone https://github.com/GoogleCloudPlatform/training-data-analyst cd training-data-analyst/courses/understanding_spanner/dataflow
  1. Execute o script a seguir para criar um banco de dados do Spanner.
bash ./create-spanner-pets-database.sh {{{project_0.default_region|placeholder_region}}}
  1. Execute o comando a seguir para conferir o esquema. Neste laboratório, há apenas uma tabela e os campos PetID e OwnerID são inteiros, não strings.
cat pets-db-schema.sql
  1. Execute o comando a seguir para conferir os dados importados. Observe que as chaves primárias e externas usam contadores. Como você aprendeu no curso, esse é um antipadrão ao usar o Spanner.
    Para resolver isso, use um pipeline do Dataflow escrito no Apache Beam para inverter os bits dos inteiros antes de importar os dados para o Spanner.
    Isso resolve o problema dos números inteiros e mantém as relações.
cat pets.csv
  1. Clique no botão Abrir editor e abra o arquivo de código training-data-analyst/courses/understanding_spanner/dataflow/csv-to-spanner.py. Observe que o pipeline é criado na função principal (linhas 53 a 68).

    O pipeline lê o arquivo CSV, inverte os bits nos campos PetID e OwnerID e grava os dados no Spanner.
    A função reverse_bits começa na linha 21.
  2. Volte ao terminal. Vamos tentar executar esse pipeline. Primeiro, instale os pré-requisitos do Python com os seguintes comandos.

pip install apache-beam[gcp]==2.42.0 pip install apache-beam[dataframe]
  1. Execute o pipeline. Esse código executa o pipeline localmente no Cloud Shell. Não é necessário acessar o Dataflow.
python csv-to-spanner.py
  1. Quando o pipeline for concluído, execute a consulta a seguir para conferir os resultados:
gcloud spanner databases execute-sql pets-db --instance=test-spanner-instance --sql='SELECT * FROM Pets'
  1. Execute o comando a seguir para remover os dados que você acabou de adicionar:
gcloud spanner databases execute-sql pets-db --instance=test-spanner-instance --sql='DELETE FROM Pets WHERE True'
  1. Em seguida, você vai executar o código usando o serviço do Dataflow.

Tarefa 2: Executar um job do Dataflow

  1. Para executar o job usando o Dataflow, você precisa de um bucket do Cloud Storage para entradas, preparação e saídas. Use o comando abaixo para criar um bucket que contém o ID do projeto (isso garante um nome exclusivo para o bucket). Além disso, copie o arquivo pets.csv para o bucket. Execute cada um deles individualmente, não juntos.
gsutil mb -l {{{project_0.default_region|place_holder_text}}} gs://$DEVSHELL_PROJECT_ID-data-flow gsutil cp ./pets.csv gs://$DEVSHELL_PROJECT_ID-data-flow
  1. Acesse o Cloud Storage no console e verifique se o bucket foi criado e o arquivo foi copiado.

  2. Execute os seguintes comandos para garantir que a API Dataflow seja ativada corretamente no projeto.

gcloud services disable dataflow.googleapis.com gcloud services enable dataflow.googleapis.com
  1. Execute o pipeline usando o Dataflow com o seguinte comando.
python csv-to-spanner.py \ --region {{{project_0.default_region|place_holder_text}}} \ --worker_machine_type e2-standard-2 \ --input gs://$DEVSHELL_PROJECT_ID-data-flow/pets.csv \ --output gs://$DEVSHELL_PROJECT_ID-data-flow/results/outputs \ --runner DataflowRunner \ --project $DEVSHELL_PROJECT_ID \ --temp_location gs://$DEVSHELL_PROJECT_ID-data-flow/tmp/
  1. Use o menu de navegação para acessar os jobs do Dataflow. Pode levar alguns instantes para que o job seja mostrado. Clique no botão Atualizar até que ele apareça. Depois, clique no job para conferir os detalhes. A execução do job no serviço do Dataflow leva vários minutos, porque ele cria um cluster ou uma ou mais VMs para enviar o job.

  2. Como antes, verifique se os dados foram adicionados ao banco de dados do Spanner. Execute a consulta a seguir para conferir os dados carregados:

gcloud spanner databases execute-sql pets-db --instance=test-spanner-instance --sql='SELECT * FROM Pets'
  1. Exclua a instância do Spanner para não receber mais cobranças por ela.

Parabéns! Você usou o Dataflow e o Apache Beam para migrar dados para o Spanner.

Terminar o laboratório

Após terminar seu laboratório, clique em End Lab. O Qwiklabs removerá os recursos usados e limpará a conta para você.

Você poderá classificar sua experiência neste laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Submit.

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

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

Veuillez vous connecter pour accéder à ce contenu.

close

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.