O BigQuery oferece duas experiências de notebook integradas ao console GCP: os notebooks nativos do BigQuery Studio e o Colab Enterprise, ambos permitindo combinar SQL, Python e visualizações sem sair do ambiente GCP.
BigQuery Studio Notebooks
Notebooks Python gerenciados diretamente na interface do BigQuery. Ficam salvos no projeto GCP (não no Google Drive) e usam a identidade do usuário ou de uma Service Account para autenticação.
Acessar BigQuery via Python
from google.cloud import bigquery
import pandas as pd
client = bigquery.Client(project="meu-projeto")
# Query retornando DataFrame
df = client.query("""
SELECT
DATE(criado_em) AS data,
regiao,
SUM(valor) AS receita
FROM `meu-projeto.trusted.pedidos`
WHERE DATE(criado_em) >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
GROUP BY 1, 2
ORDER BY 1, 3 DESC
""").to_dataframe()
df.head(10)Magic bigquery executa SQL direto na célula e retorna um DataFrame:
# Carregar resultado em uma variável Python
%%bigquery df_vendas --project meu-projeto
SELECT
mes,
regiao,
SUM(receita) AS receita_total
FROM `meu-projeto.trusted.vendas_mensais`
GROUP BY 1, 2
ORDER BY 1, 3 DESC# A variável df_vendas já está disponível
import matplotlib.pyplot as plt
df_vendas.groupby("mes")["receita_total"].sum().plot(kind="bar")
plt.title("Receita mensal")
plt.tight_layout()
plt.show()Parâmetros em queries
from google.cloud.bigquery import ArrayQueryParameter, ScalarQueryParameter, QueryJobConfig
job_config = QueryJobConfig(
query_parameters=[
ScalarQueryParameter("data_inicio", "DATE", "2026-01-01"),
ScalarQueryParameter("regiao", "STRING", "sul"),
]
)
df = client.query("""
SELECT * FROM `meu-projeto.trusted.pedidos`
WHERE DATE(criado_em) >= @data_inicio
AND regiao = @regiao
""", job_config=job_config).to_dataframe()Salvar DataFrame de volta ao BigQuery
# Append em tabela existente
job_config = bigquery.LoadJobConfig(
write_disposition=bigquery.WriteDisposition.WRITE_APPEND
)
client.load_table_from_dataframe(
df_resultado,
"meu-projeto.sandbox.analise_exploratoria",
job_config=job_config
).result()Colab Enterprise
Versão gerenciada do Google Colab integrada ao GCP. Roda em um ambiente de runtime provisionado dentro do projeto, com acesso direto à rede VPC e aos serviços GCP.
Diferenças em relação ao Colab padrão
| Colab (gratuito) | Colab Enterprise | |
|---|---|---|
| Runtime | Google (compartilhado) | VMs no projeto GCP |
| Acesso à VPC | Não | Sim |
| Autenticação GCP | Manual | Automática via SA do projeto |
| Persistência | Google Drive | GCS ou Cloud Storage |
| Controle de custo | Sem | Billing no projeto GCP |
| Ideal para | Protótipos pessoais | Trabalho em equipe com dados sensíveis |
Runtime com GPU/TPU
No Colab Enterprise é possível escolher o tipo de máquina do runtime diretamente, incluindo VMs com GPU para workloads de ML:
# Verificar o runtime ativo
import subprocess
subprocess.run(["nvidia-smi"]) # confirma se GPU está disponívelBigQuery DataFrames
Extensão que permite usar a API do pandas diretamente sobre BigQuery, sem mover os dados para memória local. Ideal para datasets que não cabem no ambiente do notebook:
import bigframes.pandas as bpd
bpd.options.bigquery.project = "meu-projeto"
bpd.options.bigquery.location = "US"
# df aponta para o BigQuery, não carrega dados localmente
df = bpd.read_gbq("meu-projeto.trusted.pedidos")
# Operações são traduzidas para SQL e executadas no BigQuery
resultado = (
df[df["status"] == "ativo"]
.groupby("regiao")["valor"]
.sum()
.sort_values(ascending=False)
)
# Apenas aqui os dados são materializados localmente
resultado.to_pandas()BigQuery DataFrames suporta boa parte da API do pandas e também integra com scikit-learn via bigframes.ml.
Quando usar notebooks vs queries SQL puras
| Cenário | Notebooks | SQL puro |
|---|---|---|
| Análise exploratória | Ideal (visualizações, iteração rápida) | Limitado |
| ETL de produção | Não recomendado | Sim (ou Dataform/dbt) |
| ML e estatística avançada | Ideal | Limitado (BigQuery ML para casos simples) |
| Compartilhar resultado com stakeholders | Bom (executar e exportar) | Bom (Looker Studio) |
| Auditabilidade e versionamento | Requer disciplina (salvar no Git) | Natural (Dataform/dbt) |
Ver também: gcp-bigquery | gcp-bigquery-sql | gcp-bigquery-dataform | gcp-looker