Article image
Stella Costa
Stella Costa19/08/2023 20:28
Compartilhe

Desvendando o Google BigQuery: Um Guia Prático para Iniciantes na Análise de Dados 🚀📊

  • #SQL
  • #Big Data

Você já se perguntou como é possível explorar dados no GoogleBigQuery?🕵️‍♂️ Neste artigo, vou mostrar como é possível fazer isso de forma simples e rápida.

Acessando o Console do BigQuery 🖥️

Primeiro, você precisa entrar no território mágico do Google Cloud. Faça login na sua conta do Google Cloud e navegue até o BigQuery. Se for sua primeira vez, não se preocupe! O ambiente é amigável e cheio de ícones intuitivos. 😉

Navegue até os Conjuntos de Dados Públicos 🌍

No menu à esquerda, deslize para baixo até avistar a categoria “BigQuery Public Datasets”. Ao clicar, ela se abrirá revelando uma coleção de conjuntos de dados públicos para você explorar. 🌍 E ei, uma dica de ouro: se você quiser ter acesso rápido ao seu conjunto de dados predileto, é só dar um toque na estrelinha ao lado dele. Assim, ele estará sempre à mão para você! ⭐🚀

Visualizando tabelas 🪄

Ao navegar pelo conjunto de dados, uma série de tabelas se revelará para você. Escolha aquela que despertar sua curiosidade e dê um clique. E como num passe de mágica… Tcharã! 🎩✨ Detalhes e informações sobre os dados surgirão na tela, prontos para serem descobertos. 🧙‍♂️🔍

Escolhendo o Conjunto de Dados 📚

Neste guia, embarcaremos em uma jornada pelo conjunto de dados `new_york_citibike`. O repositório `bigquery-public-data.new_york_citibike` nos leva pelas avenidas e vielas do sistema de compartilhamento de bicicletas Citi Bike em Nova York. Imagine-se pedalando e explorando padrões de uso, descobrindo as estações mais populares e conhecendo um pouco sobre os ciclistas que movimentam essa incrível cidade. 🚲🗽

Primeiras Impressões 🤔

Começaremos nossa exploração com a tabela `citibike_trips`. Para mergulhar nos dados, simplesmente clique no nome da tabela. 🖱️✨

Curioso(a) sobre a estrutura e os detalhes por trás dessa tabela? Não se preocupe! Basta clicar nas abas “Esquema” ou “Detalhes” 📝 para ter um panorama completo dos metadados. E se você é fã de comandos, pode usar `INFORMATION_SCHEMA.COLUMNS` para obter essas informações de forma programática. 🛠️🔍

Tente você mesmo!

SELECT
 *
FROM
  `bigquery-public-data.new_york_citibike.INFORMATION_SCHEMA.COLUMNS`
WHERE
  table_name = 'citibike_trips';

Descobrindo o tamanho de uma tabela no BigQuery 📏

Caso você queira saber o tamanho de uma tabela, basta clicar na aba “Detalhes” e rolar a página até a seção “Estatísticas da tabela”. Lá, você encontrará o tamanho da tabela em bytes. 📏 Ou podemos usar o comando abaixo para obter o mesmo resultado. 🛠️

SELECT
table_id AS table_name,
ROUND(size_bytes / (1024 * 1024 * 1024), 2) AS size_in_GB
FROM
`bigquery-public-data.new_york_citibike.__TABLES__`
WHERE
table_id = 'citibike_trips';

Quantas e linhas e colunas tem uma tabela? 📊

Quem está familiarizado com pandas sabe que o comando `shape` retorna o número de linhas e colunas de um DataFrame. No BigQuery, podemos usar o comando `COUNT` para obter o número de linhas e `INFORMATION_SCHEMA.COLUMNS` para obter o número de colunas. 🛠️

SELECT
  COUNT(*) AS number_of_rows
FROM
  `bigquery-public-data.new_york_citibike.citibike_trips`;
SELECT
  COUNT(*) AS number_of_columns
FROM
  `bigquery-public-data.new_york_citibike.INFORMATION_SCHEMA.COLUMNS`
WHERE
  table_name = 'citibike_trips';

🔍 Para visualizar o nome de cada coluna e seu respectivo tipo de dados, podemos usar o comando abaixo:

SELECT
  column_name,
  data_type
FROM
  `bigquery-public-data.new_york_citibike.INFORMATION_SCHEMA.COLUMNS`
WHERE
  table_name = 'citibike_trips';

Hora de explorar os dados! 🚀

O comando LIMIT📋

As tabelas no BigQuery podem ser gigantescas contendo milhões e bilhões de registros. Similar ao comando `head` do pandas, podemos usar o comando `LIMIT` para visualizar as primeiras linhas de uma tabela. 📋

SELECT
  *
FROM
  `bigquery-public-data.new_york_citibike.citibike_trips`
LIMIT
  10;

Outro exemplo, mas agora selecionando apenas algumas colunas:

SELECT
gender, tripduration
FROM
`bigquery-public-data`.new_york_citibike.citibike_trips
LIMIT 5

Renomeando colunas 🏷️

Por padrão, as colunas retornam com o nome da tabela e o nome da coluna. Para renomear uma coluna, basta usar a palavra-chave `AS` seguida do novo nome. 🏷️

SELECT
gender,
tripduration AS rental_duration
FROM
`bigquery-public-data`.new_york_citibike.citibike_trips
LIMIT 5

Filtrando com WHERE 🔍

Se quisermos refinar nossa análise e focar em um subconjunto específico dos dados, podemos usar filtros. Por exemplo, para destacar apenas as viagens feitas por mulheres, utilizamos a palavra-chave `WHERE` seguida da condição que temos em mente.

SELECT
gender, tripduration
FROM
`bigquery-public-data`.new_york_citibike.citibike_trips
WHERE gender = 'female'

Ah, e tem mais! A cláusula `WHERE` é super flexível e aceita expressões booleanas. 😍 Então, se estivermos curiosos para explorar viagens feitas por mulheres que duraram entre 5 e 10 minutos, basta combinar as condições assim:

SELECT
  gender,
  tripduration
FROM
  `bigquery-public-data`.new_york_citibike.citibike_trips
WHERE tripduration >= 300 AND tripduration < 600 AND gender = 'female'

Selecionando tudo exceto algumas colunas 🚫

Já aprendemos que para selecionar todas as colunas de uma tabela basta usar `SELECT *`. Mas e se quisermos selecionar todas as colunas exceto algumas? Para isso, usamos o operador `EXCEPT` seguido do nome das colunas que queremos excluir. 🚫

SELECT
* EXCEPT(gender, tripduration)
FROM
`bigquery-public-data`.new_york_citibike.citibike_trips
LIMIT 15

Classificando os resultados

Podemos classificar os resultados de uma consulta usando a palavra-chave `ORDER BY` seguida do nome da coluna pela qual queremos classificar. Por padrão, a classificação é feita em ordem crescente. Para classificar em ordem decrescente, basta adicionar a palavra-chave `DESC` após o nome da coluna. 📊

SELECT
gender, tripduration/60 AS minutes
FROM
`bigquery-public-data`.new_york_citibike.citibike_trips
WHERE gender = 'female'
ORDER BY minutes DESC
LIMIT 5

Agrupando resultados 🔢

Podemos ainda agrupar nossos resultados usando a clausula `GROUP BY`. Por exemplo, se quisermos saber quantas viagens foram feitas por cada gênero, podemos usar o comando abaixo. 🔢

SELECT
  gender,
  COUNT(*) AS num_trips
FROM
  `bigquery-public-data`.new_york_citibike.citibike_trips
GROUP BY
  gender
ORDER BY num_trips DESC

Filtrando com HAVING 📊

É possível que você queira filtrar os resultados de uma consulta usando uma condição que não possa ser expressa usando a cláusula `WHERE`. Por exemplo, suponha que você queira excluir grupos com menos de 10000000 viagens. Nesse caso, podemos usar a cláusula `HAVING` em vez de `WHERE`. 📊

SELECT
  gender,
  COUNT(*) AS num_trips
FROM
  `bigquery-public-data.new_york_citibike.citibike_trips`
GROUP BY
  gender
HAVING
  num_trips > 10000000;

Vamos mergulhar um pouco mais fundo e explorar a duração média das viagens. Imagine que você queira entender como a duração das viagens varia entre diferentes gêneros e focar especialmente nas viagens que, em média, duram mais de 14 minutos. O BigQuery está aqui para nos ajudar nessa missão! 🚀

SELECT
gender,
AVG(tripduration / 60) AS avg_trip_duration
FROM
`bigquery-public-data.new_york_citibike.citibike_trips`
WHERE
tripduration IS NOT NULL
GROUP BY
gender
HAVING
avg_trip_duration > 14
ORDER BY
avg_trip_duration DESC;

Nesta consulta, estamos calculando a duração média das viagens (em minutos) para cada gênero. Usamos a função `AVG` para obter a média e dividimos tripduration por 60 para converter a duração de segundos para minutos. 🕰️

E, claro, queremos garantir que estamos considerando apenas registros válidos, então adicionamos a condição tripduration `IS NOT NULL`.

Finalmente, com a cláusula `HAVING`, filtramos os resultados para mostrar apenas os gêneros cujas viagens duraram, em média, mais de 14 minutos. E, para deixar tudo mais organizado, ordenamos os resultados pela duração média das viagens em ordem decrescente. 📊📈

E aí está! Uma visão detalhada das durações médias das viagens por gênero, focando nas mais longas. 🚴‍♂️🌆

Localizando valores exclusivos com DISTINCT 🔎

Você já se perguntou quais são os diferentes valores de gênero presentes no nosso conjunto de dados? Bem, embora o `GROUP BY` possa ser uma opção, temos um atalho chamado `SELECT DISTINCT` que torna tudo mais simples e direto. 🎩✨

Vamos dar uma olhada em como fazer isso:

SELECT DISTINCT
 gender
FROM
`bigquery-public-data.new_york_citibike.citibike_trips`

Para não ficar massante encerrarei por aqui a parte 1 do tutorial. 📚📖

Espero que esse texto tenha ajudado você a entender melhor como usar o BigQuery. Aproveite para explorar outros conjuntos de dados e praticar suas habilidades. 🚀 Em breve, abordarei o tema dos `JOINS` e como eles podem ampliar ainda mais nossas análises. 📊📈

Referencias: Google BigQuery: The Definitive Guide

Compartilhe
Comentários (0)