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
RuntimeGoogle (compartilhado)VMs no projeto GCP
Acesso à VPCNãoSim
Autenticação GCPManualAutomática via SA do projeto
PersistênciaGoogle DriveGCS ou Cloud Storage
Controle de custoSemBilling no projeto GCP
Ideal paraProtótipos pessoaisTrabalho 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ível

BigQuery 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árioNotebooksSQL puro
Análise exploratóriaIdeal (visualizações, iteração rápida)Limitado
ETL de produçãoNão recomendadoSim (ou Dataform/dbt)
ML e estatística avançadaIdealLimitado (BigQuery ML para casos simples)
Compartilhar resultado com stakeholdersBom (executar e exportar)Bom (Looker Studio)
Auditabilidade e versionamentoRequer disciplina (salvar no Git)Natural (Dataform/dbt)

Ver também: gcp-bigquery | gcp-bigquery-sql | gcp-bigquery-dataform | gcp-looker