quantilica-sql¶
O quantilica-sql é o motor SQL do ecossistema. Ele carrega os arquivos baixados pelos coletores em schemas dedicados do PostgreSQL, sem repetir cargas já feitas, e executa pipelines declarativos que materializam tabelas e views na camada analytics.
Ele substitui os motores sidra-sql e bcb-sgs-sql, que seguem documentados e funcionando enquanto você migra. Os pipelines vêm do catálogo quantilica-pipelines.
| Versão | 0.1.1 |
| Banco | PostgreSQL (driver psycopg 3, carga por COPY) |
| Fontes | 15 adaptadores: ANAC, ANP, B3, BCB-SGS, Comex, CVM, DATASUS, INEP, INMET, PDET, RFB-CNPJ, RTN, SIDRA, Tesouro Direto e TSE |
| Distribuição | índice da Quantilica (não está no PyPI) |
Escopo
O quantilica-sql não baixa dados. Baixe com o coletor da fonte (quantilica <fonte> sync) e aponte a carga para o diretório baixado. A separação mantém os coletores leves e a carga em banco opcional.
Instalação¶
# Via CLI unificada (recomendado)
quantilica install sql
# Ou como biblioteca no seu projeto
uv add quantilica-sql --index https://index.quantilica.com/simple/
O extra analysis (Polars e PyArrow) só é necessário para a carga de alguns arquivos grandes, como os ZIPs da RFB-CNPJ:
uv add 'quantilica-sql[analysis]' --index https://index.quantilica.com/simple/
Requisitos: Python 3.12+ e um PostgreSQL acessível.
Configuração¶
A conexão vem da variável de ambiente DATABASE_URL. Sem ela, o padrão é postgresql://postgres@localhost:5432/dados.
export DATABASE_URL='postgresql://<usuario>:<senha>@localhost:5432/dados'
Outras variáveis: QUANTILICA_STORAGE_ROOT (raiz dos dados baixados, padrão ./data) e QUANTILICA_STAGING_DIR (diretório para staging de arquivos grandes, padrão o diretório temporário do sistema).
Primeiro uso¶
# 1. Baixar com o coletor
quantilica cvm sync cia-cad -o ./data/cvm
# 2. Carregar no PostgreSQL
quantilica sql load cvm -s ./data/cvm
# 3. Ver o que foi carregado
quantilica sql status
Rodar o load de novo não duplica nada: cada arquivo carregado fica registrado em {schema}.arquivo_carregado, e os já registrados são pulados. --force refaz a carga.
Comandos¶
| Comando | O que faz |
|---|---|
quantilica sql status |
Mostra schemas, tamanhos e tabelas no PostgreSQL |
quantilica sql load <domínio> |
Carrega uma fonte. -s caminho dos arquivos, -c competência (AAAA-MM ou lista), -a todas as partições, -t filtra tabela ou grupo, --tablespace, --staging-dir, -f força recarga |
quantilica sql run <pipeline> |
Executa um pipeline de transformação na camada analytics. --raw-schema e --target-schema ajustam os schemas |
quantilica sql scaffold <nome> |
Gera o esqueleto de um pipeline (-t ibge, bcb ou general) ou de um catálogo (--catalog) |
quantilica sql plugin install\|list\|remove |
Gerencia catálogos de pipelines instalados via Git |
quantilica sql tablespaces |
Lista as tablespaces da instância |
quantilica sql maintenance |
Tarefas de manutenção e índices |
Domínios aceitos em load: anac, anp, b3, bcb, bcb-sgs, comex, cvm, datasus, inep, inmet, pdet, rfb, rfb-cnpj, rtn, secex-comex, sidra, tddata, tesouro-direto, tesouro_direto e tse.
Fora da CLI unificada, o mesmo conjunto de comandos está disponível como quantilica-sql (útil em scripts, agendadores e contêineres).
Como funciona¶
- Um schema por fonte:
anp,bcb_sgs,cvm,inmet,pdet,rfb_cnpj,ibge_sidrae assim por diante. - Camada analítica: o schema
analyticsguarda as tabelas e views produzidas pelos pipelines. - Cargas idempotentes:
{schema}.arquivo_carregadoregistra o que já entrou. Rodar duas vezes é seguro. COPYem streaming: a carga usaCOPYcompsycopg3, sem montar o arquivo inteiro em memória.- Partições: tabelas grandes são particionadas por mês ou por ano.
- Adaptadores: cada fonte tem um adaptador que sabe localizar os arquivos, criar as tabelas e carregar. Um motor genérico cobre o que é comum entre eles.
Pipelines¶
Um pipeline é uma pasta com fetch.toml (quais dados brutos usa), transform.toml (tabelas de saída, estratégia e chave primária) e um ou mais arquivos .sql. Instale o catálogo oficial como plugin e execute:
quantilica sql plugin install https://github.com/Quantilica/quantilica-pipelines.git --alias std
quantilica sql run macro/juros
Veja quantilica-pipelines para a estrutura e o catálogo.
Migrando de sidra-sql e bcb-sgs-sql¶
| Legado | quantilica-sql |
|---|---|
sidra-sql run <catálogo> <pipeline>, bcb-sgs-sql run … |
quantilica sql run <pipeline> (por exemplo macro/juros) |
bcb-sgs-sql load … |
quantilica sql load bcb-sgs … |
sidra-sql plugin install\|list\|remove |
quantilica sql plugin install\|list\|remove |
sidra-sql plugin scaffold |
quantilica sql scaffold |
config set\|get\|list, plugin update, plugin validate, plugin add-pipeline, transform, run-path |
sem equivalente na CLI da versão 0.1.1 (a configuração vem de variáveis de ambiente) |
A migração é gradual: os pacotes legados continuam instaláveis e documentados em sidra-sql e bcb-sgs-sql.