DEV Community

Cover image for BigQuery
Henrique Vital
Henrique Vital

Posted on

BigQuery

BigQuery é um serviço de análise de dados altamente escalável e rápido fornecido pela Google Cloud. Ele é projetado para processar grandes volumes de dados em tempo real, facilitando a análise de dados estruturados e não estruturados. BigQuery usa SQL como sua linguagem principal para consultas, mas também oferece integrações com outras ferramentas de análise de dados, como Python, R, e interfaces de BI.

Aqui está um guia passo a passo para começar com o BigQuery.

1. Configuração Inicial do BigQuery

Antes de começar a usar o BigQuery, você precisa configurar um projeto no Google Cloud e ativar a API BigQuery. Aqui estão os passos para configurar:

  1. Crie uma conta no Google Cloud (se você ainda não tiver uma).
  2. Crie um novo projeto no console do Google Cloud.
  3. Ative a API BigQuery no console do Google Cloud.
  4. Crie um bucket do Cloud Storage (opcional, para armazenar dados antes de carregá-los no BigQuery).
  5. Instale o Google Cloud SDK (se for usar BigQuery via linha de comando ou Python).

2. Estrutura Básica do BigQuery

O BigQuery organiza os dados em três níveis:

  • Projetos: O nível mais alto, geralmente vinculado à sua conta do Google Cloud.
  • Datasets: Dentro de um projeto, você pode ter vários datasets, que funcionam como "pastas" para organizar tabelas e visualizações.
  • Tabelas: Dados armazenados no BigQuery, que podem ser acessados, modificados ou consultados.

3. Consultas no BigQuery

Você pode escrever consultas SQL para acessar, manipular e analisar dados. O BigQuery usa uma variação do SQL chamada Standard SQL (em vez de SQL clássico).

Exemplo 1: Seleção Simples

Para recuperar dados de uma tabela:

SELECT nome, idade
FROM `meu_projeto.meu_dataset.minha_tabela`
WHERE idade > 18;
Enter fullscreen mode Exit fullscreen mode
  • SELECT: Especifica as colunas que você deseja selecionar.
  • FROM: Especifica a tabela de onde os dados serão retirados.
  • WHERE: Filtra os dados com base em uma condição.

Exemplo 2: Contar Registros

Para contar o número de registros em uma tabela:

SELECT COUNT(*) AS total_registros
FROM `meu_projeto.meu_dataset.minha_tabela`;
Enter fullscreen mode Exit fullscreen mode

Exemplo 3: Agrupar Dados

Para agrupar dados e aplicar funções agregadas, como contar ou somar:

SELECT idade, COUNT(*) AS total
FROM `meu_projeto.meu_dataset.minha_tabela`
GROUP BY idade
ORDER BY total DESC;
Enter fullscreen mode Exit fullscreen mode
  • GROUP BY: Agrupa os dados com base na coluna idade.
  • COUNT(*): Conta o número de registros para cada grupo.
  • ORDER BY: Ordena os resultados pelo total em ordem decrescente.

4. Importando Dados para o BigQuery

Você pode importar dados para o BigQuery de várias fontes, como arquivos CSV, JSON, Google Sheets, ou até mesmo de outros serviços da Google Cloud, como o Cloud Storage.

Exemplo de como carregar dados a partir de um arquivo CSV:

  1. Acesse o BigQuery no Google Cloud Console.
  2. No painel de navegação à esquerda, clique em BigQuery.
  3. Clique em Criar Dataset (caso ainda não tenha um).
  4. Após criar um dataset, clique nele e depois clique em Criar Tabela.
  5. Escolha Carregar para carregar dados do seu arquivo CSV ou de uma fonte do Google Cloud (como o Cloud Storage).
  6. Configure o esquema da tabela (as colunas e tipos de dados).
  7. Clique em Criar Tabela para carregar os dados.

Alternativamente, você pode usar comandos SQL para importar dados diretamente:

CREATE OR REPLACE TABLE `meu_projeto.meu_dataset.nova_tabela`
AS
SELECT *
FROM `meu_projeto.meu_dataset.minha_tabela_existente`;
Enter fullscreen mode Exit fullscreen mode

5. Funções Avançadas e Subconsultas

Você pode usar várias funções avançadas em BigQuery, como janelas, funções de agregação e subconsultas.

Exemplo 1: Função de Janela

A função de janela permite realizar cálculos como somas acumuladas ou rankings.

SELECT nome, idade,
       SUM(idade) OVER (ORDER BY idade) AS soma_acumulada
FROM `meu_projeto.meu_dataset.minha_tabela`;
Enter fullscreen mode Exit fullscreen mode

Essa consulta calcula a soma acumulada das idades dos alunos, ordenada pela idade.

Exemplo 2: Subconsulta

Uma subconsulta pode ser usada dentro de uma consulta maior.

SELECT nome, idade
FROM `meu_projeto.meu_dataset.minha_tabela`
WHERE idade > (SELECT AVG(idade) FROM `meu_projeto.meu_dataset.minha_tabela`);
Enter fullscreen mode Exit fullscreen mode

Essa consulta retorna os alunos com idade superior à média de idade de todos os alunos.

6. Exportando Dados do BigQuery

Depois de analisar seus dados, você pode exportá-los de volta para o Google Cloud Storage ou para outro formato.

Exemplo de exportação:

EXPORT DATA OPTIONS(
  uri='gs://meu_bucket/resultado/*.csv',
  format='CSV'
) AS
SELECT * FROM `meu_projeto.meu_dataset.minha_tabela`;
Enter fullscreen mode Exit fullscreen mode

Isso exporta os dados da tabela para arquivos CSV armazenados no Google Cloud Storage.

7. Segurança e Controle de Acesso

O BigQuery oferece controle de acesso refinado usando IAM (Identity and Access Management). Você pode configurar permissões para permitir ou negar o acesso a projetos, datasets e tabelas.

  • IAM Roles: O BigQuery oferece vários papéis, como roles/bigquery.dataViewer, roles/bigquery.dataEditor, e roles/bigquery.admin, que você pode atribuir a usuários ou grupos.

8. BigQuery com Python

Você pode interagir com o BigQuery usando a biblioteca google-cloud-bigquery em Python. Aqui está um exemplo básico:

Instalando a biblioteca:

pip install google-cloud-bigquery
Enter fullscreen mode Exit fullscreen mode

Exemplo de código em Python:

from google.cloud import bigquery

# Criando um cliente BigQuery
client = bigquery.Client()

# Definindo uma consulta SQL
query = """
    SELECT nome, idade
    FROM `meu_projeto.meu_dataset.minha_tabela`
    WHERE idade > 18
"""

# Executando a consulta
query_job = client.query(query)

# Aguardando o término da consulta e exibindo os resultados
results = query_job.result()
for row in results:
    print(f"{row.nome}: {row.idade}")
Enter fullscreen mode Exit fullscreen mode

9. Boas Práticas no BigQuery

  • Evite usar SELECT * em consultas complexas: Selecione apenas as colunas que você realmente precisa para melhorar o desempenho.
  • Use partições e clustering: Organize suas tabelas para que as consultas possam ser executadas de maneira mais eficiente.
  • Monitore os custos: O BigQuery cobra com base na quantidade de dados processados, então é importante escrever consultas eficientes e evitar varreduras desnecessárias de grandes volumes de dados.

Conclusão

BigQuery é uma ferramenta poderosa para análise de grandes volumes de dados. Com o uso do SQL, você pode fazer consultas complexas, agregações, exportações e muito mais. À medida que você aprende mais sobre BigQuery, explore recursos como particionamento de tabelas, tabelas temporárias, e visualizações, além de ferramentas como BigQuery ML para análise preditiva.

Se você tiver dúvidas específicas ou precisar de mais detalhes sobre algum aspecto, posso fornecer mais exemplos ou explicações!

Top comments (0)