6 Guia do analista de dados do colibri
Este guia cobre o ritual de conexão ao lakehouse do Colibri para visualização, download de tabelas e consultas em SQL, R ou Python. Assume que você já seguiu o Guia de instalação e tem a credencial de visualizador (colibri-token-visualizador) configurada em .segredos.yml.
6.1 Sincronizar o catálogo local
Antes do primeiro uso (e sempre que quiser garantir que está vendo os dados mais recentes), baixe o catálogo meta.ducklake e os manifestos para a raiz do projeto:
colibri sincronizar6.2 Explorar o catálogo pela interface gráfica
colibri lake uiAbre a DuckDB UI local, conectada ao catálogo do Colibri — uma interface em estilo notebook, onde é possível rodar fragmentos de SQL um de cada vez, ver o resultado imediatamente, e inspecionar tipo de dado e percentual de valores faltantes por coluna. Os cadernos ficam salvos localmente para acessos futuros.
6.3 Explorar e consultar pela linha de comando
colibri lake tables # tabelas/views no catálogo, com contagem de linhas/parquets
colibri lake years <tabela> # contagem de linhas por ano de uma tabela
colibri lake download <tabela> # exporta uma tabela para parquet local
colibri lake query "<sql>" # roda uma consulta SQL livreO comando correto é colibri lake query, não colibri lake q — essa abreviação aparece por engano em alguns exemplos mais antigos.
Exemplo de validação, comparando a tabela mrt_pncp_comprasgov__resumo_anual com os totais publicados no painel “PNCP em Números”:
colibri lake query "SELECT * FROM lake.main_marts.mrt_pncp_comprasgov__resumo_anual ORDER BY ano_compra"6.4 Tabelas disponíveis hoje
| Tabela | Fonte | Atualização |
|---|---|---|
ncm_prefixos |
Portal Único Siscomex | Full replace quando há mudança |
int_pncp_comprasgov__compras |
comprasGOV (diário/mensal/anual) | Incremental, histórico versionado (SCD2) por cod_compra |
int_pncp_comprasgov__itens |
comprasGOV (diário/mensal/anual) | Incremental, histórico versionado (SCD2) por id_compra_item |
int_pncp_comprasgov__resultados |
comprasGOV (diário/mensal/anual) | Incremental, histórico versionado (SCD2) por (id_compra_item, sequencial_resultado) |
mrt_pncp_comprasgov__resumo_anual |
agregação de int_pncp_comprasgov__compras |
Recalculada a cada execução |
Use colibri docs para ver a documentação completa de todas as tabelas e colunas geradas pelos modelos dbt:
colibri docs # gera e abre a documentação dos modelos dbt
colibri docs --sem-servidor # apenas gera, sem subir o servidor local6.5 Conexão direta via R
library(DBI)
library(duckdb)
con <- dbConnect(duckdb())
dbExecute(con, "INSTALL httpfs; LOAD httpfs;")
dbExecute(con, "INSTALL ducklake; LOAD ducklake;")
dbExecute(con, "
CREATE SECRET (
TYPE s3,
KEY_ID '<SUA ACCESS KEY>',
SECRET '<SUA SECRET KEY>',
ENDPOINT '<ACCOUNTID>.r2.cloudflarestorage.com',
REGION 'auto',
URL_STYLE 'path'
);
")
dbExecute(con, "ATTACH 'ducklake:meta.ducklake' AS lake (DATA_PATH 's3://<BUCKET LAKE>/lake/');")
resultado <- dbGetQuery(con, "
SELECT * FROM lake.main_marts.mrt_pncp_comprasgov__resumo_anual
ORDER BY ano_compra
")
dbDisconnect(con, shutdown = TRUE)6.6 Conexão direta via Python
import duckdb
con = duckdb.connect()
con.execute("INSTALL httpfs; LOAD httpfs;")
con.execute("INSTALL ducklake; LOAD ducklake;")
con.execute("""
CREATE SECRET (
TYPE s3,
KEY_ID '<SUA ACCESS KEY>',
SECRET '<SUA SECRET KEY>',
ENDPOINT '<ACCOUNTID>.r2.cloudflarestorage.com',
REGION 'auto',
URL_STYLE 'path'
);
""")
con.execute("ATTACH 'ducklake:meta.ducklake' AS lake (DATA_PATH 's3://<BUCKET LAKE>/lake/');")
df = con.execute("""
SELECT * FROM lake.main_marts.mrt_pncp_comprasgov__resumo_anual
ORDER BY ano_compra
""").df()Também é possível usar o pacote pyducklake, que simplifica esses mesmos passos de ATTACH. As credenciais (endpoint, access_key, secret_key, bucket_lake) são as mesmas configuradas em .segredos.yml — veja o Guia de instalação.
6.7 Baixar tabelas para análise local
Se preferir trabalhar totalmente offline, baixe a tabela inteira em Parquet e leia-a com a ferramenta de sua preferência (pandas, arrow, data.table etc.):
colibri lake download mrt_pncp_comprasgov__resumo_anual