O catálogo oficial de pipelines ETL para o motor sidra-sql.
Este repositório contém o conjunto padrão de definições (fetch + transform) para baixar, normalizar e carregar as principais pesquisas do IBGE (SIDRA) diretamente em um banco de dados PostgreSQL.
- O que é este repositório?
- Pipelines Disponíveis
- Instalação
- Como Usar
- Estrutura de uma Pipeline
- Desenvolvimento
- Licença
O sidra-pipelines funciona como um hub de plugins para o motor sidra-sql. Ele separa a lógica de execução (o motor) da declaração dos dados (os metadados das tabelas do IBGE e as queries SQL de transformação).
Ao instalar este repositório como um plugin, você ganha acesso imediato a uma série de tabelas analíticas prontas para uso em ferramentas como Power BI, Metabase ou Excel, sem precisar escrever uma única linha de código Python.
O catálogo cobre 20 pipelines distribuídas em 7 grandes temas:
Cada pipeline pode gerar uma ou mais tabelas analíticas (uma por entrada em seu transform.toml).
| ID da Pipeline | Pesquisa | Tabelas SIDRA | Destino Analítico |
|---|---|---|---|
pib_municipal |
PIB dos Municípios | 5938 | analytics.pib_municipal |
contas_nacionais_anual |
Contas Nacionais Anuais | 6784 | analytics.cna |
contas_nacionais_trimestral |
Contas Nacionais Trimestrais (CNT) | 5932, 1620, 1621, 1846, 6612, 6613, 2072, 2205 | analytics.cnt_taxas, cnt_indices, cnt_valores, cnt_contas_economicas, cnt_conta_financeira |
| ID da Pipeline | Pesquisa | Tabelas SIDRA | Destino Analítico |
|---|---|---|---|
snipc |
SNIPC — INPC, IPCA e IPCA-15 (Inflação) | 22, 58, 7060, 7062, 7063, 1736, 1737, 3065 … (séries históricas completas desde 1979) | analytics.inpc, ipca, ipca15, inflacao, inflacao_numero_indice, inflacao_difusao, inflacao_hierarquia_subitem |
ipp |
IPP — Índice de Preços ao Produtor | 6904, 6903, 6723 | analytics.ipp_categoria_economica, ipp_cnae, ipp_grupo_industrial |
sinapi |
SINAPI — Custos da Construção | 2296, 6586, 647 | analytics.sinapi_custo_medio, sinapi_custo_projeto |
| ID da Pipeline | Pesquisa | Tabelas SIDRA | Destino Analítico |
|---|---|---|---|
pim_pf |
PIM-PF — Produção Física Industrial (Brasil e regional) | 8885, 8886, 8887, 8888, 8889 | analytics.pim_pf_brasil, pim_pf_regional |
| ID da Pipeline | Pesquisa | Tabelas SIDRA | Destino Analítico |
|---|---|---|---|
pmc |
PMC — Pesquisa Mensal do Comércio | 8190, 8757, 8880, 8881, 8882, 8883, 8884 | analytics.pmc_agregado, pmc_por_atividade |
pms |
PMS — Pesquisa Mensal de Serviços | 5906, 8163, 8688, 8693, 8694, 8695 | analytics.pms_agregado, pms_por_segmento, pms_por_atividade |
| ID da Pipeline | Pesquisa | Tabelas SIDRA | Destino Analítico |
|---|---|---|---|
pnadcm |
PNAD Contínua Mensal — Mercado de Trabalho | 6022, 6318, 6381, 6390, 6392 … (24 tabelas) | analytics.pnadcm_populacao, pnadcm_pia, pnadcm_ocupada, pnadcm_rendimento, pnadcm_massa_rendimento |
| ID da Pipeline | Pesquisa | Tabelas SIDRA | Destino Analítico |
|---|---|---|---|
pam |
PAM — Produção Agrícola Municipal (lavouras permanentes e temporárias) | 839, 1000, 1001, 1002, 1612, 1613 | analytics.pam_lavouras_permanentes, pam_lavouras_temporarias |
ppm |
PPM — Pesquisa Pecuária Municipal (rebanhos, produção e exploração) | 73, 74, 94, 95, 3939, 3940 | analytics.ppm_rebanhos, ppm_producao, ppm_exploracao |
pevs |
PEVS — Extração Vegetal e Silvicultura (produção e área florestal) | 289, 291, 5930 | analytics.pevs_producao, pevs_area_florestal |
abate |
Abate (Bovinos, Suínos e Frangos) | 1092, 1093, 1094 | analytics.abate |
leite |
Pesquisa Trimestral do Leite | 1086 | analytics.leite |
couro |
Pesquisa Trimestral do Couro | 1088, 1089, 1090 | analytics.couro_adquirido, couro_terceiros_total, couro_curtido |
pog |
POG — Avicultura de Postura (Galinhas Poedeiras e Ovos) | 7524 | analytics.pog |
lspa |
LSPA — Levantamento Sistemático da Produção Agrícola | 6588 | analytics.lspa |
estoques |
Pesquisa de Estoques de Grãos | 254, 255, 259, 278, 911, 912, 5459, 5470 | analytics.estoques_estoque, estoques_capacidade_*, estoques_armazens_convencionais, estoques_inativos |
| ID da Pipeline | Pesquisa | Tabelas SIDRA | Destino Analítico |
|---|---|---|---|
populacao |
População — censo, contagem, estimativas e união | 200, 305, 793, 4709, 6579 | analytics.censo_populacao, contagem_populacao, estimativa_populacao, populacao |
Para utilizar estas pipelines, você deve ter o sidra-sql instalado. Com ele pronto, instale este catálogo usando a CLI:
# Instala o catálogo oficial com o alias 'std'
sidra-sql plugin install https://github.com/Quantilica/sidra-pipelines.git --alias stdPara verificar se as pipelines foram registradas corretamente:
sidra-sql plugin listPara executar uma pipeline (baixar os dados + transformar em tabela analítica), use o comando run:
# Executar a pipeline de PIB Municipal
sidra-sql run std pib_municipal
# Executar a pipeline de inflação (INPC, IPCA e IPCA-15)
sidra-sql run std snipcO sidra-sql cuidará automaticamente de:
- Consultar os metadados da tabela no IBGE.
- Baixar os dados em paralelo (com retry e cache).
- Carregar os dados brutos no schema
ibge_sidra. - Executar a transformação SQL e criar a tabela no schema
analytics.
Cada pipeline dentro deste repositório segue o padrão exigido pelo motor:
id-da-pipeline/
├── fetch.toml # Define quais tabelas, variáveis e períodos baixar
├── transform.toml # Declara uma ou mais tabelas destino (nome, schema, índices)
├── transform.sql # Query SQL para a tabela destino (pipeline de saída única)
└── *.sql # Uma query por tabela destino (pipelines de múltiplas saídas)
- Fetch: Utiliza o motor de download inteligente que evita requisições duplicadas.
- Transform: Cada entrada
[[table]]dotransform.tomlaponta para um arquivo.sql. Gera tabelas no formato wide (pivot), onde cada variável SIDRA vira uma coluna. Valores como"...","-"ou"X"são convertidos paraNULL.
Para um guia detalhado de como criar novas pipelines, consulte o Guia de Criação de Pipelines no repositório principal.
git clone https://github.com/Quantilica/sidra-pipelines.git
cd sidra-pipelines
uv sync --dev
uv run pytestMIT — veja LICENSE.