DEV Community

Cover image for Como reduzir sua fatura do BigQuery em 80%: Particionamento, Clustering e BI Engine
BIX
BIX

Posted on Originally published at bixtecnologia.com.br

Como reduzir sua fatura do BigQuery em 80%: Particionamento, Clustering e BI Engine

Se você usa o Google BigQuery no seu dia a dia, sabe que a precificação baseada em bytes escaneados pode ser uma armadilha. Uma query malfeita com SELECT * numa tabela de 10TB pode custar dezenas de dólares em uma única execução.

Neste tutorial prático, vou te mostrar como paramos de queimar dinheiro implementando três estratégias:
Particionamento, Clustering e BI Engine. O ganho financeiro aqui é imediato.

O Problema (O Antes)

Temos uma tabela transacional (vendas_brutas) com 5 anos de histórico. Um analista precisa somar a receita do último mês.

SQL

-- Custo estimado: 500 GB escaneados (aprox. US$ 2.50 por execução)
SELECT SUM(valor) 
FROM dataset.vendas_brutas 
WHERE data_compra >= '2026-07-01';
Enter fullscreen mode Exit fullscreen mode

1. Particionamento (Cortando o mal pela raiz)

O particionamento divide a tabela física em pedaços menores baseados em uma coluna (geralmente data). Quando você filtra pela data particionada, o BigQuery simplesmente ignora as outras partições.

SQL

-- Recriando a tabela com particionamento
CREATE OR REPLACE TABLE dataset.vendas_particionadas
PARTITION BY DATE(data_compra) AS
SELECT * FROM dataset.vendas_brutas;

-- Nova Query: Custo estimado de 8 GB escaneados (aprox. US$ 0.04)
SELECT SUM(valor) 
FROM dataset.vendas_particionadas 
WHERE DATE(data_compra) >= '2026-07-01';
Enter fullscreen mode Exit fullscreen mode

2. Clustering (A sintonia fina)

Se você já particionou por data, mas os usuários frequentemente filtram por id_cliente ou regiao, o Clustering organiza fisicamente os dados dentro de cada partição para acelerar esses filtros.

SQL

CREATE OR REPLACE TABLE dataset.vendas_otimizadas
PARTITION BY DATE(data_compra)
CLUSTER BY regiao, id_cliente AS
SELECT * FROM dataset.vendas_brutas;
Enter fullscreen mode Exit fullscreen mode

3. BI Engine (Para Dashboards)

Se o seu problema não é volume de dados, mas sim a concorrência (ex: 50 diretores atualizando o Looker Studio ao mesmo tempo), o BI Engine aloca os dados quentes na memória RAM do BigQuery. As queries caem de 2 segundos para milissegundos, e as leituras no BI Engine não cobram pelos bytes escaneados da tabela original.

Aplicar apenas o Particionamento reduziu a fatura dessa pipeline específica em quase 80% na nossa infraestrutura. Custo em cloud é código.

Top comments (0)