
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create Vertex AI Platform Notebooks instance and clone course repo
/ 15
Setup the data environment
/ 15
Run your pipeline from the command line
/ 10
Neste laboratório, você vai:
Pré-requisitos:
No laboratório anterior, você criou um pipeline básico sequencial de extração, transformação e carga, e usou um modelo equivalente do Dataflow para ingerir o armazenamento de dados em lote no Google Cloud Storage. Esse pipeline se baseia em uma sequência de transformações:
No entanto, muitos pipelines não vão exibir uma estrutura tão simples. Neste laboratório, você vai criar um pipeline mais sofisticado e não sequencial.
O caso de uso aqui é otimizar o consumo de recursos. Os produtos variam de acordo com a maneira que consomem recursos. Além disso, nem todos os dados são usados do mesmo modo em uma empresa. Algumas informações serão consultadas regularmente, por exemplo, em cargas de trabalho analíticas, e outras serão usadas apenas para recuperação. Neste laboratório, você vai otimizar o pipeline do primeiro laboratório para o consumo de recursos ao armazenar apenas dados que os analistas usarão no BigQuery e, ao mesmo tempo, arquivar outros dados em um serviço de armazenamento altamente durável e de baixo custo, o Coldline Storage do Google Cloud Storage.
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.
Faça login no Qwiklabs em uma janela anônima.
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.
Quando tudo estiver pronto, clique em Começar o laboratório.
Anote as credenciais (Nome de usuário e Senha). É com elas que você vai fazer login no Console do Google Cloud.
Clique em Abrir Console do Google.
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.
Aceite os termos e pule a página de recursos de recuperação.
Antes de começar a trabalhar no Google Cloud, veja se o projeto tem as permissões corretas no Identity and Access Management (IAM).
No console do Google Cloud, em Menu de navegação (), selecione IAM e administrador > IAM.
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.
editor
, siga as etapas abaixo.729328892908
.{project-number}
pelo número do seu projeto.Neste laboratório, você vai executar todos os comandos em um terminal usando seu notebook.
No console do Google Cloud, abra o Menu de navegação e selecione Vertex AI > Workbench.
Ative a API Notebooks.
Na página "Workbench", clique em CRIAR NOVA.
Na caixa de diálogo Nova instância, defina a região como
Em "Ambiente", selecione Apache Beam.
Clique em CRIAR na parte de baixo da caixa de diálogo.
Agora você precisa dele para usar neste laboratório.
No painel à esquerda do ambiente do notebook, no navegador de arquivos, você vai notar que o repositório training-data-analyst foi adicionado.
Acesse o repositório clonado /training-data-analyst/quests/dataflow_python/
. Nele, você vai encontrar uma pasta para cada laboratório com duas subpastas: lab
, que contém o código que precisa ser concluído, e solution
, que inclui um exemplo prático caso você precise de ajuda.
Clique em Verificar meu progresso para conferir o objetivo.
Neste laboratório, você vai criar um pipeline ramificado que grava dados no Google Cloud Storage e no BigQuery.
Uma maneira de escrever um pipeline com ramificações é aplicar duas transformações diferentes à mesma PCollection, resultando em duas PCollections diferentes:
Se você tiver dúvidas nesta seção ou nas próximas, a solução está disponível na página de treinamento de analista de dados do Google Cloud.
Para concluir esta tarefa, mude um pipeline atual adicionando uma ramificação que faça gravações no Cloud Storage.
Antes de começar a editar o código do pipeline real, é preciso verificar se instalou as dependências necessárias.
Abra my_pipeline.py
no seu ambiente de desenvolvimento integrado, disponível em training-data-analyst/quests/dataflow_python/2_Branching_Pipelines/labs/
.
Role para baixo até o método "run()", em que o corpo do pipeline está definido. Atualmente, o formato se parece com este:
textio.WriteToText
antes de cada elemento que será convertido de json
para dict
.Se você tiver dúvidas nesta seção ou nas próximas, consulte a solução na página de treinamento de analista de dados do Google Cloud.
Clique em Verificar meu progresso para conferir o objetivo.
No momento, o novo pipeline não consome menos recursos, já que todos os dados são armazenados duas vezes. Para começar a otimizar o consumo de recursos, precisamos reduzir a quantidade de informações duplicadas.
O bucket do Google Cloud Storage funciona como um recurso de arquivamento e backup. Por isso, é importante que todos os dados sejam armazenados nele. No entanto, nem todas as informações precisam ser enviadas ao BigQuery.
pop
para soltar um campo de dentro de uma chamável do Python:beam.Map
para soltar o campo user_agent
, que não será usado pelos nossos analistas no BigQuery.Há muitas maneiras de filtrar no Apache Beam. Como estamos trabalhando com uma PCollection de dicionários Python, a maneira mais fácil é usar uma função lambda (anônima) como filtro, uma função que retorna um valor booleano, com beam.Filter
. Exemplo:
beam.Filter
ao pipeline. É possível filtrar por qualquer critério, mas recomendamos tentar eliminar linhas em que num_bytes
seja maior ou igual a 120.O pipeline tem vários parâmetros codificados, incluindo o caminho para a entrada e o local da tabela no BigQuery. No entanto, o pipeline seria mais útil se pudesse ler qualquer arquivo JSON no Cloud Storage. Para adicionar esse recurso, é preciso adicionar um conjunto de parâmetros de linha de comando.
No momento, usamos um ArgumentParser
para ler e analisar argumentos de linha de comando. Em seguida, transmitimos esses argumentos para o objeto PipelineOptions()
que especificamos ao criar nosso pipeline:
O PipelineOptions é usado para interpretar as opções lidas pelo ArgumentParser
. Para adicionar um novo argumento de linha de comando ao analisador, podemos usar a sintaxe:
Para acessar um parâmetro de linha de comando no código, analise os argumentos e consulte o campo no dicionário resultante:
Você deve ter notado que a tabela do BigQuery criada no último laboratório tinha um esquema com todos os campos REQUIRED
como este:
Talvez seja melhor criar um esquema do Apache Beam com campos NULLABLE
em que os dados estejam ausentes, tanto para a execução do pipeline quanto para a tabela resultante do BigQuery.
Podemos atualizar o esquema JSON do BigQuery adicionando um novo modo
de propriedade para um campo que queremos anular:
lat
e lon
como anuláveis no esquema do BigQuery.Clique no nó que representa a função Filter
, que na imagem acima é chamada de FilterFn
. No painel do lado direito, você vai perceber que mais elementos foram adicionados como entradas do que gravados como saídas.
Agora clique no nó que representa a gravação no Cloud Storage. Como todos os elementos foram gravados, esse número precisa estar de acordo com o número de elementos na entrada para a função "Filter".
Quando o processo do pipeline terminar, examine os resultados no BigQuery consultando sua tabela. O número de registros na tabela precisa estar de acordo com o número de elementos gerados pela função "Filter".
Clique em Verificar meu progresso para conferir o objetivo.
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:
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.
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
One lab at a time
Confirm to end all existing labs and start this one