Instruções e requisitos de configuração do laboratório
Proteja sua conta e seu progresso. Sempre use uma janela anônima do navegador e suas credenciais para realizar este laboratório.

Como projetar esquemas de tabelas no BigQuery para profissionais do Redshift

Laboratório 1 hora universal_currency_alt 5 créditos show_chart Introdutório
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Este conteúdo ainda não foi otimizado para dispositivos móveis.
Para aproveitar a melhor experiência, acesse nosso site em um computador desktop usando o link enviado a você por e-mail.

Visão geral

No BigQuery, você organiza os dados em conjuntos de dados e define o esquema (ou estrutura) de cada tabela usando nomes de colunas e tipos de dados. O esquema de uma tabela pode afetar o desempenho e o custo das consultas no BigQuery, pois determina o nível de rapidez e a eficiência com que o BigQuery vai acessar e processar os dados em uma tabela. O BigQuery é compatível com esquemas flexíveis, e é possível fazer mudanças sem precisar reescrever os dados.

Neste laboratório, oferecemos aos profissionais do Redshift o conhecimento e as habilidades de que precisam para começar a projetar e implementar esquemas de tabelas do BigQuery. Os objetivos de aprendizagem são entender melhor como criar, otimizar e consultar esquemas de tabelas do BigQuery.

Neste laboratório, você vai criar conjuntos de dados e tabelas do BigQuery para armazenar dados, criar campos aninhados e repetidos para manter relacionamentos em dados desnormalizados e criar tabelas particionadas e em cluster para otimizar o desempenho das consultas.

Consulte o guia de conversão de SQL do Redshift para o BigQuery se quiser mais informações sobre isso: https://cloud.google.com/bigquery/docs/migration/redshift-sql.

Objetivos

Neste laboratório, você vai aprender a:

  • Criar conjuntos de dados e tabelas no BigQuery.
  • Criar e consultar campos aninhados e repetidos no BigQuery.
  • Criar e consultar tabelas particionadas no BigQuery.
  • Criar e consultar tabelas em cluster no BigQuery.

Configuração e requisitos

Para cada laboratório, você recebe um novo projeto do Google Cloud e um conjunto de recursos por um determinado período sem custo financeiro.

  1. Faça login no Google Skills usando uma janela anônima.

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

  3. Quando tudo estiver pronto, clique em Começar o laboratório.

  4. Anote as credenciais (Nome de usuário e Senha). É com elas que você vai fazer login no Console do Google Cloud.

  5. Clique em Abrir Console do Google.

  6. Clique em Usar outra conta e copie e cole as credenciais deste laboratório nos locais indicados. Se você usar outras credenciais, vai receber mensagens de erro ou cobranças.

  7. Aceite os termos e pule a página de recursos de recuperação.

Como começar o laboratório e fazer login no console

  1. Clique no botão Começar o laboratório. Se for preciso pagar pelo laboratório, você verá um pop-up para selecionar a forma de pagamento. Um painel aparece à esquerda contendo as credenciais temporárias que você precisa usar no laboratório.

    Painel de credenciais

  2. Copie o nome de usuário e clique em Abrir console do Google. O laboratório ativa os recursos e depois abre a página Escolha uma conta em outra guia.

    Observação: abra as guias em janelas separadas, lado a lado.
  3. Na página "Escolha uma conta", clique em Usar outra conta. A página de login abre.

    Caixa de diálogo "Escolha uma conta" com a opção "Usar outra conta" destacada

  4. Cole o nome de usuário que foi copiado do painel "Detalhes da conexão". Em seguida, copie e cole a senha.

Observação: é necessário usar as credenciais do painel "Detalhes da conexão". Não use suas credenciais do Google Skills. Caso tenha sua própria conta do Google Cloud, não a use para este laboratório (isso evita cobranças).
  1. 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 sem custo financeiro.

Depois de alguns instantes, o console do Cloud abre nesta guia.

Observação: para acessar a lista dos produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo. Menu do console do Cloud

Tarefa 1: criar conjuntos de dados e tabelas no BigQuery

No BigQuery, você pode usar a linguagem de definição de dados (DDL) para criar conjuntos de dados e tabelas. Você também pode usar a instrução SQL LOAD DATA para carregar dados de um ou mais arquivos em uma tabela.

Se quiser aprender a usar instruções DDL para criar conjuntos de dados e tabelas do BigQuery e uma instrução SQL LOAD DATA para carregar dados, consulte a documentação Instrução CREATE SCHEMA, Instrução CREATE TABLE e Instrução LOAD DATA.

Nesta tarefa, você vai usar DDL para criar conjuntos de dados e tabelas no BigQuery e, em seguida, carregar dados nas tabelas novas com a instrução LOAD DATA.

  1. No Menu de navegação (Menu de navegação) do console do Google Cloud, em "Analytics", clique em BigQuery.

A caixa de mensagem "Olá! Este é o BigQuery no console do Cloud" vai aparecer. Esta caixa de mensagem fornece um link para o guia de início rápido e para as notas da versão.

  1. Clique em Concluído.

  2. Na barra do espaço de trabalho SQL, clique no ícone Editor para abrir o editor de consultas SQL.

bq_editor.PNG

  1. No editor de consultas, copie e cole a consulta abaixo, depois clique em Executar:
CREATE SCHEMA IF NOT EXISTS ticket_sales OPTIONS( location="us");

Essa consulta cria um conjunto de dados no BigQuery chamado ticket_sales. A instrução DDL usa o termo SCHEMA para se referir a uma coleção lógica de tabelas, visualizações e outros recursos. No BigQuery, trata-se de um conjunto de dados.

bq_dataset_created.PNG

  1. Expanda o painel "Explorer" no lado esquerdo, que lista o conjunto de dados, e clique no nome do conjunto de dados ticket_sales para confirmar se ele foi criado.

bq_goto_ticket_sales.PNG

  1. No editor, execute esta consulta:
CREATE OR REPLACE TABLE ticket_sales.sales( salesid INT64, listid INT64, sellerid INT64, buyerid INT64, eventid INT64, dateid INT64, qtysold INT64, pricepaid INT64, commission FLOAT64, saletime STRING);

Isso cria uma tabela chamada sales no conjunto de dados ticket_sales.

bq_statement_created.PNG

  1. Expanda o painel "Explorer", que lista o conjunto de dados e a tabela, e clique no nome da tabela sales.

  2. Clique nas guias Detalhes e Visualização para saber mais sobre a tabela.

Neste caso, a tabela está vazia.

  1. No editor, execute esta consulta:
LOAD DATA INTO ticket_sales.sales ( salesid INT64, listid INT64, sellerid INT64, buyerid INT64, eventid INT64, dateid INT64, qtysold INT64, pricepaid INT64, commission FLOAT64, saletime STRING ) FROM FILES ( skip_leading_rows=1, format = 'CSV', field_delimiter = ',', max_bad_records = 10, uris = ['gs://tcd_repo/data/entertainment_media/ticket-sales/sales.csv']);

Essa consulta usa uma definição explícita de esquema de tabelas para carregar, na tabela sales, dados de um arquivo CSV no Cloud Storage.

O painel Resultados indica que a instrução LOAD foi executada.

bq_data_loaded.PNG

  1. No painel "Explorer", clique nas guias Detalhes e Visualização para confirmar se os dados foram carregados na tabela sales.

Clique em Atualizar no canto superior direito para atualizar os dados na guia Visualização.

bq_sales_details.PNG

bq_sales_preview1.PNG

Clique em Verificar meu progresso para conferir o objetivo. Criar conjunto de dados e tabelas no BigQuery

Você usou instruções SQL no BigQuery para criar um conjunto de dados e uma tabela e carregar dados nela. Crie outra tabela e carregue dados sobre informações de eventos para praticar o que aprendeu.

  1. No editor, execute a seguinte consulta para criar a tabela events:
CREATE OR REPLACE TABLE ticket_sales.events( eventid INT64, venueid INT64, catid INT64, dateid INT64, eventname STRING, starttime TIMESTAMP);

bq_new_table_events.PNG

  1. No painel Explorer, confira se há duas tabelas: sales e events.

bq_new_events_table_explorer.PNG

  1. No editor, execute a seguinte consulta para carregar dados na tabela events:
LOAD DATA INTO ticket_sales.events FROM FILES ( skip_leading_rows=1, format = 'CSV', field_delimiter = ',', max_bad_records = 10, uris =['gs://tcd_repo/data/entertainment_media/ticket-sales/events.csv']);

Essa consulta usa a detecção automática de esquemas para carregar, na tabela events, os dados de um arquivo CSV no Cloud Storage.

O painel Resultados indica que a instrução LOAD foi executada.

bq_new_events_loaded.PNG

  1. Clique nas guias Detalhes e Visualização para conferir se os dados foram carregados na tabela events.

Clique em Atualizar no canto superior direito para atualizar os dados na guia Visualização.

bq_events_preview.PNG

Clique em Verificar meu progresso para conferir o objetivo. Carregar dados na tabela de eventos

Tarefa 2: criar e consultar campos aninhados e repetidos

A desnormalização é uma estratégia conhecida para melhorar o desempenho de leitura em conjuntos de dados relacionais que já foram normalizados. No BigQuery, a recomendação para desnormalizar dados é usar campos aninhados e repetidos. Use esses campos para manter relacionamentos em dados desnormalizados, em vez de simplificar por completo os dados comuns.

Para saber mais sobre campos aninhados e repetidos no BigQuery, consulte a documentação Usar campos aninhados e repetidos.

Nesta tarefa, você vai aprender a criar e consultar campos aninhados e repetidos no BigQuery.

  1. No editor, execute esta consulta:
SELECT e.eventid, e.eventname, s.saletime, s.qtysold, s.pricepaid, s.commission FROM ticket_sales.events e JOIN ticket_sales.sales s ON e.eventid = s.eventid ORDER BY eventid, eventname;

bq_repeated_fields.PNG

Observação: há uma relação de um para muitos entre as tabelas de eventos e de vendas. Quando executar essa consulta, uma repetição no lado "um" da relação de um para muitos vai aparecer. Para cada venda, o evento se repete. Para remover a repetição, agregue os dados de vendas em uma matriz.
  1. No editor, execute esta consulta:
SELECT e.eventid, e.eventname, ARRAY_AGG(STRUCT( s.saletime, s.qtysold, s.pricepaid, s.commission)) as sales FROM ticket_sales.events e JOIN ticket_sales.sales s ON e.eventid = s.eventid GROUP BY eventid, eventname ORDER BY eventid, eventname;

Embora o SQL da etapa 2 seja semelhante ao SQL da etapa 1, foram adicionadas as funções ARRAY_AGG, STRUCT e GROUP BY.

  1. Revise os resultados da consulta.

Em vez de repetir os dados no lado "um" da relação de um para muitos, os dados no lado "muitos" agora ficam em uma matriz de structs.

bq_removed_repetition.PNG

Você também pode incluir a consulta anterior em uma instrução CREATE TABLE para criar uma tabela hierárquica aninhada.

  1. No editor, execute esta consulta:
CREATE OR REPLACE TABLE ticket_sales.event_sales as ( SELECT e.eventid, e.eventname, ARRAY_AGG(STRUCT( s.saletime, s.qtysold, s.pricepaid, s.commission)) as sales FROM ticket_sales.events e JOIN ticket_sales.sales s ON e.eventid = s.eventid GROUP BY eventid, eventname );

bq_event_sales_table_created.PNG

  1. Clique em Acessar a tabela e analise o esquema dela.

O esquema inclui um campo aninhado e repetido chamado sales, que contém o horário da venda, a quantidade vendida, o preço pago e a comissão de cada venda do evento.

bq_event_sales_schema_2.png

Essa nova estrutura aninhada e repetida muda a forma de escrever consultas.

  1. Para contar o número de vendas por evento, execute a seguinte consulta:
SELECT eventid, eventname, ARRAY_LENGTH(sales) AS sale_count FROM ticket_sales.event_sales ORDER BY sale_count DESC;

bq_sales_count.PNG

E se você quisesse conferir as principais comissões por evento? Seria preciso ter uma consulta na matriz. Para isso, você precisa nivelar a matriz ou remover o aninhamento dela.

  1. Para remover o aninhamento e identificar as duas principais comissões por evento, execute o seguinte:
SELECT eventid, eventname, ARRAY((SELECT AS STRUCT saletime, commission FROM UNNEST(sales) ORDER BY(commission) DESC LIMIT 2)) as top_2 FROM ticket_sales.event_sales ORDER BY eventid;

O operador UNNEST é usado para nivelar a matriz de vendas e facilitar as consultas, e esses resultados são convertidos em uma matriz.

bq_top_commissions.PNG

Para saber como usar UNNEST e nivelar matrizes, consulte a documentação Operador UNNEST.

Clique em Verificar meu progresso para conferir o objetivo. criar e consultar campos aninhados e repetidos

Tarefa 3: criar e consultar tabelas particionadas

No BigQuery, um método para reduzir os bytes processados pelas consultas é dividir uma tabela grande em segmentos menores (partições) e incluir um filtro nas consultas para selecionar apenas os dados da partição que você escolher. Esse processo se chama remoção de partições e pode ser usado para reduzir os custos de uma consulta.

Para saber mais sobre tabelas particionadas e remoção de partições, consulte a documentação Introdução às tabelas particionadas e Consultar tabelas particionadas.

Nesta tarefa, você vai aprender a criar e consultar tabelas particionadas por unidade de tempo (em uma coluna DATETIME) para minimizar os bytes processados por consulta.

  1. No editor de consultas, cole o seguinte código (não clique em "Executar" ainda):
SELECT * FROM ticket_sales.sales;

O validador de consultas no BigQuery estima quantos bytes serão processados durante a execução. Nesta consulta, a estimativa é de 15,12 MB.

bq_ticket_sales_bytes.PNG

  1. Cole a consulta a seguir (não clique em "Executar" ainda):
SELECT * FROM ticket_sales.sales WHERE saletime = '12/14/2008 09:13:17';

bq_ticket_sales_time_bytes.PNG

O número de bytes processados é o mesmo da consulta na Etapa 1 (15,12 MB), mesmo que a nova consulta esteja trazendo apenas vendas de uma data específica.

  1. Para criar uma tabela de vendas particionada diariamente com a coluna saletime, execute a seguinte consulta:
CREATE OR REPLACE TABLE ticket_sales.sales_partitioned_by_date PARTITION BY DATETIME_TRUNC(saletime, DAY) AS ( SELECT * except (saletime), PARSE_DATETIME( "%m/%d/%Y %H:%M:%S", saletime) as saletime FROM ticket_sales.sales );

bq_sales_partitioned_by_date_created.PNG

  1. Clique na guia Detalhes para confirmar que a tabela está particionada por DIA na coluna saletime.

bq_sales_partitioned_field.PNG

  1. Cole a consulta a seguir para ver a estimativa menor de dados a processar (18, 98 KB).
SELECT * FROM ticket_sales.sales_partitioned_by_date WHERE saletime = parse_datetime("%m/%d/%Y %H:%M:%S", '12/14/2008 09:13:17');
  1. Clique em Executar para trazer os resultados da consulta.

A consulta processa menos dados (18,98 KB) porque está sendo executada na tabela particionada. O BigQuery usa a remoção de partições para processar menos dados, o que reduz custos e acelera consultas.

Clique em Verificar meu progresso para conferir o objetivo. Criar e consultar tabelas particionadas

Tarefa 4: criar e consultar tabelas em cluster

Outro método para otimizar o desempenho das consultas no BigQuery é agrupar valores em uma tabela para classificar e agrupar dados em blocos de armazenamento lógicos. As consultas que filtram ou agregam pelas colunas em cluster só verificam os blocos relevantes com base nas colunas em cluster, e não em toda a tabela ou na partição da tabela. Esse processo é conhecido como remoção de blocos e pode acelerar junções, pesquisas, agrupamentos e classificações.

Para saber mais sobre tabelas em cluster e remoção de blocos, consulte a documentação Introdução às tabelas em cluster e Como consultar tabelas em cluster.

Nesta tarefa, você vai aprender a criar e consultar tabelas em cluster para otimizar as consultas.

  1. No editor, execute esta consulta:
SELECT LANGUAGE, COUNT(views) AS views FROM `cloud-training-demos.wikipedia_benchmark.Wiki1B` GROUP BY LANGUAGE ORDER BY views DESC;

bq_count_by_views.PNG

Essa consulta usa um dos conjuntos de dados públicos do Google que contém muitos dados (neste caso, 1 bilhão de linhas). A consulta conta visualizações por idioma em uma tabela de dados da Wikipedia.

  1. No painel Resultados, clique na guia Detalhes da execução.

Observe o número de bytes redistribuídos (619,68 KB).

bq_bytes_shuffled.PNG

  1. Para criar um conjunto com os dados da Wikipedia, execute a seguinte consulta:
CREATE SCHEMA IF NOT EXISTS wiki_clustered OPTIONS( location="us");
  1. Para criar uma tabela agrupada na coluna language, execute a seguinte consulta:
CREATE OR REPLACE TABLE wiki_clustered.Wikipedia_by_language CLUSTER BY language AS ( SELECT * FROM `cloud-training-demos.wikipedia_benchmark.Wiki1B`);

Esse comando às vezes demora um pouco para rodar.

bq_wiki_clustered_dataset_created.PNG

  1. Confira na guia Detalhes da tabela se ela está agrupada na coluna language.

bq_wikipedia_by_lang_details.PNG

  1. Para consultar a tabela em cluster, execute a consulta abaixo:
SELECT LANGUAGE, COUNT(views) AS views FROM wiki_clustered.Wikipedia_by_language GROUP BY language ORDER BY views DESC;

bq-select_count_clustered.PNG

  1. No painel Resultados, clique na guia Detalhes da execução.

O número de bytes redistribuídos fica menor (47,98 KB) quando a mesma consulta é executada na tabela em cluster. Quanto menor a redistribuição de bytes, mais rápida a execução no BigQuery.

bq_reduced_bytes_shuffled.PNG

Clique em Verificar meu progresso para conferir o objetivo. Criar e consultar tabelas em cluster

Finalize o laboratório

Após concluir o laboratório, clique em Terminar o laboratório. O Google Skills remove os recursos usados e limpa 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 Enviar.

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

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

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

A melhor maneira de executar este laboratório é usando uma janela de navegação anônima ou privada. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.