GSP413

Informações gerais
O BigQuery é um banco de dados de análise NoOps, totalmente gerenciado e de baixo custo desenvolvido pelo Google. Com ele, você pode consultar muitos terabytes de dados sem ter que gerenciar uma infraestrutura ou precisar de um administrador de banco de dados. O BigQuery usa SQL e está disponível no modelo de pagamento por uso. Assim, você pode se concentrar na análise dos dados para encontrar informações relevantes.
Você usará um conjunto de dados de e-commerce com milhões de registros do Google Analytics referentes à Google Merchandise Store (em inglês). Será necessário conferir os campos e as linhas disponíveis para receber insights.
Este laboratório explica como criar novas tabelas de relatórios usando as funções JOIN e UNION do SQL.
Situação: a equipe de marketing enviou para você e a equipe de ciência de dados todas as avaliações de produtos no seu site de e-commerce. Vocês vão trabalhar juntos para criar um data warehouse no BigQuery com dados de três origens:
- Dados de e-commerce do site
- Níveis de estoque de inventário de produtos e tempos de lead
- Análise de sentimento das avaliações dos produtos
Atividades
Neste laboratório, você vai aprender a executar as seguintes tarefas:
- Examinar novos dados de e-commerce na análise de sentimento.
- Mesclar conjuntos de dados e criar novas tabelas.
- Anexar dados históricos com a função UNION e caracteres curinga de 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.
Abrir o console do BigQuery
- No Console do Google Cloud, selecione o menu de navegação > BigQuery:
Você verá a caixa de mensagem Olá! Este é o BigQuery no Console do Cloud. Ela tem um link para o guia de início rápido e as notas de versão.
- Clique em OK.
O console do BigQuery vai abrir.
Tarefa 1. criar um novo conjunto de dados para armazenar as tabelas
Para começar, crie um novo conjunto chamado e-commerce no BigQuery para armazenar suas tabelas.
-
No painel à esquerda, selecione o nome do seu projeto do BigQuery (qwiklabs-gcp-xxxx
).
-
Clique nos três pontos ao lado do nome do projeto e selecione Criar conjunto de dados.
A caixa de diálogo Criar conjunto de dados será aberta.
-
Defina o ID do conjunto de dados como ecommerce
e não altere as outras opções.
-
Clique em Criar conjunto de dados.
Clique em Verificar meu progresso para conferir o andamento do objetivo.
Crie um conjunto de dados para armazenar as tabelas
Tarefa 2: examinar o conjunto de dados de sentimento dos produtos
A equipe de ciência de dados passou todas as avaliações de produtos pela API e calculou a média da pontuação de sentimento e magnitude para cada um deles.
O projeto com o conjunto de dados da equipe de marketing é o data-to-insights. O BigQuery não exibe por padrão os próprios conjuntos de dados públicos. As consultas neste laboratório usarão o conjunto de dados data-to-insights
, mesmo que ele não esteja aparecendo para você.
- Primeiro, crie uma cópia da tabela feita pela equipe de ciência de dados para você poder ler as informações:
create or replace TABLE ecommerce.products AS
SELECT
*
FROM
`data-to-insights.ecommerce.products`
Observação: isso é apenas para você conferir as informações. As consultas neste laboratório usarão o projeto data-to-insights
.
- Clique no conjunto de dados e-commerce para mostrar a tabela
products
.
Examinar os dados usando as guias "Visualização" e "Esquema"
- Acesse o conjunto de dados > e-commerce > produtos e clique na guia Visualização para ver os dados.
- Clique na guia Esquema.
Crie uma consulta que mostre os 5 principais produtos que receberam avaliações com o sentimento mais positivo
- No Editor de consultas, escreva sua consulta SQL.
Possível solução:
SELECT
SKU,
name,
sentimentScore,
sentimentMagnitude
FROM
`data-to-insights.ecommerce.products`
ORDER BY
sentimentScore DESC
LIMIT 5
- Revise sua consulta para mostrar os cinco principais produtos que receberam avaliações com o sentimento mais negativo e filtre os valores NULL.
Possível solução:
SELECT
SKU,
name,
sentimentScore,
sentimentMagnitude
FROM
`data-to-insights.ecommerce.products`
WHERE sentimentScore IS NOT NULL
ORDER BY
sentimentScore
LIMIT 5
Qual é o produto avaliado com o sentimento mais negativo?
Clique em Verificar meu progresso para conferir o andamento do objetivo.
Examine o conjunto de dados de sentimento dos produtos
Tarefa 3: mesclar conjuntos de dados para extrair insights
Situação: é o primeiro dia do mês, e a equipe de inventário informou que o campo orderedQuantity
no conjunto de dados está desatualizado. Ela precisa da sua ajuda para consultar o total de vendas por produto em 01/08/2017 e cruzar informações com os níveis atuais em estoque para descobrir quais produtos precisam de reposição primeiro.
Calcule o volume de vendas diário por productSKU
- Crie uma nova tabela no seu conjunto de dados ecommerce com as seguintes características:
- Nome
sales_by_sku_20170801
- Origem dos dados
data-to-insights.ecommerce.all_sessions_raw
- Incluir apenas resultados distintos
- Retornar
productSKU
- Retornar a quantidade total encomendada (
productQuantity
). Dica: use SUM()
com uma condição IFNULL.
- Filtrar apenas as vendas feitas em
20170801
- Usar
ORDER BY
para classificar as SKUs com o maior número de pedidos primeiro
Possível solução:
# extrair as vendas de 01/08/2017
CREATE OR REPLACE TABLE ecommerce.sales_by_sku_20170801 AS
SELECT
productSKU,
SUM(IFNULL(productQuantity,0)) AS total_ordered
FROM
`data-to-insights.ecommerce.all_sessions_raw`
WHERE date = '20170801'
GROUP BY productSKU
ORDER BY total_ordered DESC #462 skus sold
- Clique na tabela
sales_by_sku
e selecione a guia Visualizar.
Quantas SKUs de produtos distintos foram vendidas?
Resposta: 462
Em seguida, aprimore seus dados de vendas com informações de inventário de produtos mesclando os dois conjuntos de dados.
Mescle dados de vendas e de inventário
- Usando uma operação JOIN, aprimore os dados de e-commerce do site com estes campos do conjunto de dados do inventário de produtos:
name
stockLevel
restockingLeadTime
sentimentScore
sentimentMagnitude
- Complete a consulta parcialmente escrita:
# join against product inventory to get name
SELECT DISTINCT
website.productSKU,
website.total_ordered,
inventory.name,
inventory.stockLevel,
inventory.restockingLeadTime,
inventory.sentimentScore,
inventory.sentimentMagnitude
FROM
ecommerce.sales_by_sku_20170801 AS website
LEFT JOIN `data-to-insights.ecommerce.products` AS inventory
ORDER BY total_ordered DESC
Possível solução:
# agrupar com o inventário de produtos para conseguir os nomes
SELECT DISTINCT
website.productSKU,
website.total_ordered,
inventory.name,
inventory.stockLevel,
inventory.restockingLeadTime,
inventory.sentimentScore,
inventory.sentimentMagnitude
FROM
ecommerce.sales_by_sku_20170801 AS website
LEFT JOIN `data-to-insights.ecommerce.products` AS inventory
ON website.productSKU = inventory.SKU
ORDER BY total_ordered DESC
- Modifique a consulta que você escreveu para realizar as seguintes ações:
- Incluir um campo calculado de (
total_ordered / stockLevel
) com o nome "ratio
" Dica: use SAFE_DIVIDE(field1,field2)
para evitar erros de divisão por 0 quando o estoque acabar.
- Filtrar os resultados para incluir apenas produtos que já atingiram 50% ou mais do inventário no início do mês.
Possível solução:
# calcular proporção e filtrar
SELECT DISTINCT
website.productSKU,
website.total_ordered,
inventory.name,
inventory.stockLevel,
inventory.restockingLeadTime,
inventory.sentimentScore,
inventory.sentimentMagnitude,
SAFE_DIVIDE(website.total_ordered, inventory.stockLevel) AS ratio
FROM
ecommerce.sales_by_sku_20170801 AS website
LEFT JOIN `data-to-insights.ecommerce.products` AS inventory
ON website.productSKU = inventory.SKU
# gone through more than 50% of inventory for the month
WHERE SAFE_DIVIDE(website.total_ordered,inventory.stockLevel) >= .50
ORDER BY total_ordered DESC
Clique em Verificar meu progresso para conferir o andamento do objetivo.
Mescle conjuntos de dados para extrair insights
Tarefa 4: Adicionar outros registros ao final
Sua equipe internacional já fez vendas na loja em 02/08/2017, e você quer registrá-las nas tabelas de vendas diárias.
Crie uma nova tabela vazia para armazenar vendas por productSKU para 02/08/2017
- Para o esquema, especifique os seguintes campos:
- O nome da tabela como
ecommerce.sales_by_sku_20170802
productSKU STRING
-
total_ordered
como um campo INT64
Possível solução:
CREATE OR REPLACE TABLE ecommerce.sales_by_sku_20170802
(
productSKU STRING,
total_ordered INT64
);
- Verifique se agora você tem duas tabelas de vendas compartilhadas por data. Para isso, use o menu suspenso ao lado de Sales_by_sku nos resultados da tabela ou atualize a página para conferir as informações no menu à esquerda:

- Insira o registro de vendas que você recebeu da equipe de vendas:
INSERT INTO ecommerce.sales_by_sku_20170802
(productSKU, total_ordered)
VALUES('GGOEGHPA002910', 101)
- Acesse a tabela para conferir se o registro aparece. Selecione o nome da tabela para exibir os resultados.
Adicionar dados históricos ao final
Há várias maneiras de adicionar ao final dados que têm o mesmo esquema. Duas formas comuns são usar UNIONs e caracteres curinga de tabela.
-
Union é um operador SQL que anexa linhas de conjuntos de resultados diferentes.
-
Caracteres curinga de tabela permitem consultar várias tabelas usando instruções SQL concisas. Tabelas curinga estão disponíveis apenas no SQL padrão.
- Escreva uma consulta UNION que resultará em todos os registros das duas tabelas abaixo:
ecommerce.sales_by_sku_20170801
ecommerce.sales_by_sku_20170802
SELECT * FROM ecommerce.sales_by_sku_20170801
UNION ALL
SELECT * FROM ecommerce.sales_by_sku_20170802
Observação: a diferença entre UNION
e UNION ALL
é que UNION
não incluirá registros duplicados.
Qual erro é comum com o uso de várias tabelas de vendas diárias? Você precisará escrever muitas instruções UNION
em sequência.
É melhor usar o caractere curinga de tabela e _TABLE_SUFFIX
para filtrar as informações.
- Escreva uma consulta que use o caractere curinga de tabela (*) para selecionar todos os registros de
ecommerce.sales_by_sku_
do ano de 2017.
Possível solução:
SELECT * FROM `ecommerce.sales_by_sku_2017*`
- Modifique a consulta anterior para adicionar um filtro e limitar os resultados à data de 02/08/2017.
Possível solução:
SELECT * FROM `ecommerce.sales_by_sku_2017*`
WHERE _TABLE_SUFFIX = '0802'
Observação: outra opção é criar uma tabela particionada que possa ingerir automaticamente dados de vendas diárias na partição correta.
Clique em Verificar meu progresso para conferir o andamento do objetivo.
Adicionar outros registros ao final
Parabéns!
Você analisou exemplos de dados de e-commerce criando tabelas de relatórios e manipulando visualizações com funções SQL JOIN e UNION.
Próximas etapas / Saiba mais
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 3 de fevereiro de 2024
Laboratório testado em 31 de outubro de 2023
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.