LHCX

Análise de Dados Interativa com DuckDB e Streamlit

No cenário atual da análise de dados, a capacidade de explorar e visualizar dados de forma rápida e interativa é crucial. Tradicionalmente, essa tarefa envolvia a configuração de bancos de dados compl...

31 de outubro de 2025
6 min de leitura
🔒 Faça login para curtir

Autor

Autor

Autor

Autor no blog LHCX.

Gostou do conteúdo?

🔒 Faça login para curtir

Sua curtida nos ajuda a melhorar

Análise de Dados Interativa com DuckDB e Streamlit

No cenário atual da análise de dados, a capacidade de explorar e visualizar dados de forma rápida e interativa é crucial. Tradicionalmente, essa tarefa envolvia a configuração de bancos de dados complexos e ferramentas de visualização separadas. No entanto, com o surgimento de ferramentas como DuckDB e Streamlit, o processo se tornou significativamente mais simplificado e acessível.

DuckDB: Um Banco de Dados Analítico In-Process

DuckDB é um sistema de gerenciamento de banco de dados analítico (OLAP) projetado para ser embutido diretamente em aplicações. Ao contrário dos bancos de dados tradicionais que operam como servidores separados, o DuckDB executa dentro do mesmo processo da aplicação, eliminando a necessidade de comunicação de rede e reduzindo a latência. Isso o torna ideal para análise de dados local, prototipagem rápida e aplicações que exigem tempos de resposta rápidos.

Uma das principais vantagens do DuckDB é sua capacidade de trabalhar diretamente com arquivos CSV, Parquet e outros formatos de dados comuns, sem a necessidade de importação prévia. Isso simplifica o fluxo de trabalho e permite que os analistas de dados comecem a explorar os dados imediatamente.

Recursos Principais do DuckDB:

  • Armazenamento Colunar: O DuckDB armazena dados em formato colunar, o que otimiza as operações de leitura para consultas analíticas.
  • Execução Vetorizada: O DuckDB utiliza execução vetorizada, processando múltiplos valores simultaneamente para aumentar a velocidade de consulta.
  • Integração com Pandas: O DuckDB se integra perfeitamente com o Pandas, permitindo que os usuários utilizem a sintaxe familiar do Pandas para consultar dados no DuckDB.
  • Suporte a SQL: O DuckDB suporta um subconjunto robusto de SQL, incluindo junções, agregações e outras operações analíticas.
Código e Banco de Dados

Streamlit: A Plataforma para Criar Aplicativos de Dados

Streamlit é uma biblioteca Python open source que permite aos desenvolvedores criar aplicativos de dados interativos com facilidade. Com Streamlit, é possível transformar scripts Python em aplicativos web totalmente funcionais com poucas linhas de código. Isso torna o Streamlit uma ferramenta ideal para prototipagem rápida, compartilhamento de resultados e criação de dashboards interativos.

Recursos Principais do Streamlit:

  • Sintaxe Simples: O Streamlit utiliza uma sintaxe declarativa simples, permitindo que os desenvolvedores se concentrem na lógica de análise de dados em vez de se preocuparem com detalhes de interface do usuário.
  • Atualizações Automáticas: O Streamlit atualiza automaticamente a interface do usuário sempre que o código Python é modificado, proporcionando um feedback instantâneo.
  • Widgets Interativos: O Streamlit oferece uma variedade de widgets interativos, como sliders, botões e caixas de seleção, que permitem aos usuários interagir com os dados e personalizar a análise.
  • Visualizações de Dados: O Streamlit se integra com bibliotecas populares de visualização de dados, como Matplotlib, Seaborn e Plotly, permitindo que os desenvolvedores criem gráficos e dashboards visualmente atraentes.

Exemplo Prático: Análise de Dados de Vendas com DuckDB e Streamlit

Vamos demonstrar como usar o DuckDB e o Streamlit para analisar dados de vendas. Assumiremos que temos um arquivo CSV chamado sales.csv com as seguintes colunas: date, product, quantity e price.


import streamlit as st
import duckdb
import pandas as pd

# Carrega os dados do arquivo CSV
df = pd.read_csv('sales.csv')

# Cria uma conexão com o DuckDB
con = duckdb.connect(database=':memory:', read_only=False)

# Carrega o DataFrame do Pandas para o DuckDB
con.register('sales_data', df)

# Permite que o usuário selecione um produto
product = st.selectbox('Selecione um produto', df['product'].unique())

# Executa uma consulta SQL no DuckDB para filtrar os dados pelo produto selecionado
query = f"""
SELECT date, SUM(quantity * price) AS total_revenue
FROM sales_data
WHERE product = '{product}'
GROUP BY date
ORDER BY date
"""

result = con.execute(query).fetchdf()

# Exibe um gráfico da receita total por data
st.line_chart(result.set_index('date'))

# Exibe a tabela de dados
st.dataframe(result)

Explicação do Código:

  1. Importamos as bibliotecas necessárias: streamlit, duckdb e pandas.
  2. Carregamos os dados do arquivo sales.csv usando o Pandas.
  3. Criamos uma conexão com o DuckDB em memória.
  4. Registramos o DataFrame do Pandas como uma tabela no DuckDB chamada sales_data.
  5. Usamos o widget st.selectbox para permitir que o usuário selecione um produto.
  6. Construímos uma consulta SQL para filtrar os dados pelo produto selecionado e calcular a receita total por data.
  7. Executamos a consulta no DuckDB e armazenamos o resultado em um DataFrame do Pandas.
  8. Usamos o widget st.line_chart para exibir um gráfico da receita total por data.
  9. Usamos o widget st.dataframe para exibir a tabela de dados.
Gráfico de Dados

Vantagens de Usar DuckDB e Streamlit Juntos

  • Desenvolvimento Rápido: A combinação de DuckDB e Streamlit permite que os desenvolvedores criem aplicativos de análise de dados interativos de forma rápida e fácil.
  • Desempenho: O DuckDB oferece um desempenho excelente para consultas analíticas, mesmo em grandes conjuntos de dados.
  • Facilidade de Uso: Tanto o DuckDB quanto o Streamlit são fáceis de aprender e usar, mesmo para desenvolvedores com pouca experiência em análise de dados.
  • Flexibilidade: O DuckDB e o Streamlit são ferramentas flexíveis que podem ser usadas para uma variedade de casos de uso, desde prototipagem rápida até criação de dashboards interativos.

Outras Ferramentas e Frameworks para Análise de Dados Interativa

Além do DuckDB e Streamlit, existem outras ferramentas e frameworks que podem ser usados para análise de dados interativa:

  • Apache Superset: Uma plataforma de exploração e visualização de dados open source.
  • Metabase: Uma ferramenta de business intelligence open source.
  • Tableau: Uma plataforma de análise de dados líder de mercado.
  • Looker: Uma plataforma de business intelligence baseada em nuvem.
  • Plotly Dash: Um framework Python para construir aplicativos web interativos.
Dashboard de Dados

Conclusão

A análise de dados interativa é uma habilidade essencial para qualquer profissional de dados. Com ferramentas como DuckDB e Streamlit, é possível explorar e visualizar dados de forma rápida, fácil e eficiente. Ao combinar o poder do DuckDB para processamento de dados com a simplicidade do Streamlit para criação de aplicativos web, os desenvolvedores podem criar dashboards interativos e explorar seus dados de forma intuitiva, impulsionando insights valiosos e decisões mais informadas. A facilidade de integração com Pandas e a capacidade de trabalhar diretamente com arquivos de dados comuns tornam essa combinação uma excelente escolha para projetos de análise de dados de todos os tamanhos.

Engenheiro de Dados trabalhando
Carregando comentários...