Consulte Seu Data Lake com IA de Graça: Ollama + DataSpoc Lens
Toda ferramenta de IA para dados requer uma chave de API. OpenAI cobra por token. Anthropic cobra por token. Os dados da sua empresa vão para servidores de terceiros. Para uma pergunta rápida sobre seus próprios dados, isso é muita fricção e risco.
O DataSpoc Lens funciona com Ollama para executar consultas de IA inteiramente na sua máquina. Sem chave de API, sem internet, sem dados saindo do seu laptop. Pergunte “quais foram os principais produtos no mês passado?” e obtenha uma consulta SQL real executada contra seu data lake — tudo local.
Por Que IA Local para Consultas de Dados
Três razões:
- Grátis — sem custos de API, sem limites de uso, sem surpresas na cobrança
- Privado — seus dados e consultas nunca saem da sua máquina
- Rápido para modelos pequenos — respostas em menos de um segundo para geração de SQL num MacBook
O trade-off: modelos locais são menos capazes que GPT-4o ou Claude. Para geração de SQL em schemas conhecidos, frequentemente são bons o suficiente.
Setup: Um Comando
dataspoc-lens setup-aiEste comando:
- Verifica se o Ollama está instalado; se não, instala
- Baixa o modelo recomendado para geração de SQL
- Configura o Lens para usar o modelo local
- Executa uma consulta de teste para verificar
[1/4] Checking Ollama... not found[2/4] Installing Ollama... curl -fsSL https://ollama.ai/install.sh | sh ✓ Ollama installed (v0.3.x)[3/4] Pulling model: duckdb-nsql:7b (4.1 GB) ████████████████████████████████ 100% ✓ Model ready[4/4] Running test query... Question: "How many tables are available?" Generated SQL: SELECT COUNT(*) FROM information_schema.tables ✓ AI queries working
Setup complete. Run: dataspoc-lens ask "your question"Sua Primeira Consulta com IA
dataspoc-lens ask "what are our top 10 customers by revenue?"SQL: SELECT c.name, SUM(o.amount) as total_revenue FROM raw.customers c JOIN raw.orders o ON c.customer_id = o.user_id WHERE o.status = 'completed' GROUP BY c.name ORDER BY total_revenue DESC LIMIT 10
┌──────────────────┬───────────────┐│ name │ total_revenue │├──────────────────┼───────────────┤│ Acme Corporation │ 1,245,800 ││ TechFlow Inc │ 892,340 ││ Global Systems │ 756,120 ││ DataVentures │ 623,450 ││ CloudFirst Ltd │ 589,200 ││ ... │ ... │└──────────────────┴───────────────┘O modelo leu os schemas das suas tabelas, gerou uma consulta SQL DuckDB, o Lens executou e você obteve resultados reais. Tudo local.
Como Funciona Por Baixo dos Panos
Quando você executa dataspoc-lens ask, eis o que acontece:
1. Lens lê schemas das tabelas do catálogo2. Lens constrói um prompt com schemas + sua pergunta3. Prompt é enviado ao Ollama (HTTP local na porta 11434)4. Ollama gera SQL usando o modelo local5. Lens valida a sintaxe SQL6. Lens executa o SQL via DuckDB7. Resultados são exibidosNenhum dado vai para a internet. O prompt contém metadados de schema (nomes de tabelas e colunas) e sua pergunta. A resposta é uma consulta SQL. O DuckDB executa contra seu cache local ou bucket na nuvem.
Escolhendo o Modelo Certo
O DataSpoc Lens suporta múltiplos modelos Ollama. Veja como se comparam para geração de SQL:
duckdb-nsql:7b (Padrão Recomendado)
Um modelo de 7B parâmetros fine-tuned especificamente para geração de SQL DuckDB.
ollama pull duckdb-nsql:7bdataspoc-lens config set ai.model duckdb-nsql:7b- Tamanho: 4,1 GB
- RAM: 8 GB mínimo
- Velocidade: ~2 segundos por consulta no M1 Mac
- Precisão: Alta para SQL padrão (agregações, joins, filtros)
- Fraqueza: Dificuldade com window functions complexas
qwen2.5-coder:1.5b (Leve)
Um modelo minúsculo que roda em quase qualquer máquina.
ollama pull qwen2.5-coder:1.5bdataspoc-lens config set ai.model qwen2.5-coder:1.5b- Tamanho: 1,0 GB
- RAM: 4 GB mínimo
- Velocidade: ~500ms por consulta
- Precisão: Boa para consultas simples, erra em joins complexos
- Melhor para: Máquinas com poucos recursos, consultas rápidas
qwen2.5-coder:7b (Equilibrado)
Um modelo de propósito geral para código com boas capacidades SQL.
ollama pull qwen2.5-coder:7bdataspoc-lens config set ai.model qwen2.5-coder:7b- Tamanho: 4,4 GB
- RAM: 8 GB mínimo
- Velocidade: ~2 segundos por consulta
- Precisão: Boa em diversos tipos de consulta
- Melhor para: Quando você também quer o modelo para tarefas de código não-SQL
Comparação de Precisão: Local vs. Nuvem
Testamos 50 perguntas em linguagem natural contra um dataset de e-commerce padrão (customers, orders, products, events). Cada pergunta foi testada contra três provedores:
| Modelo | SQL Correto | Erros Menores | Errado | Tempo Médio |
|---|---|---|---|---|
| Claude claude-sonnet-4-20250514 | 47/50 (94%) | 2/50 | 1/50 | 1,2s |
| GPT-4o | 45/50 (90%) | 3/50 | 2/50 | 1,8s |
| duckdb-nsql:7b (local) | 40/50 (80%) | 6/50 | 4/50 | 2,1s |
| qwen2.5-coder:7b (local) | 38/50 (76%) | 7/50 | 5/50 | 2,3s |
| qwen2.5-coder:1.5b (local) | 30/50 (60%) | 10/50 | 10/50 | 0,5s |
Onde modelos locais se destacam:
- Agregações simples: “receita total este mês”
- Filtragem: “pedidos da Califórnia”
- Joins básicos: “pedidos com nomes de clientes”
- Group by: “receita por categoria de produto”
Onde modelos locais têm dificuldade:
- Window functions complexas: “média móvel com partição”
- CTEs multi-passo: “análise de retenção por coorte”
- Perguntas ambíguas: “como o negócio está indo?”
- Casos especiais de datas: “cálculos de trimestre fiscal”
80% de precisão de um modelo grátis e local é impressionante. Para os 20% de consultas complexas, use IA na nuvem ou escreva o SQL você mesmo.
Quando Ir Local vs. Nuvem
Vá Local Quando
- Você está explorando dados interativamente (perguntas rápidas, iteração)
- Privacidade de dados é um requisito rígido (saúde, finanças, governo)
- Você quer evitar custos de API para consultas frequentes
- Você está offline ou em uma rede restrita
- As consultas são diretas (filtros, agregações, joins simples)
Vá para a Nuvem Quando
- Você precisa de alta precisão em perguntas analíticas complexas
- A consulta envolve raciocínio multi-passo (análise de coorte, funis)
- Você está construindo um produto onde precisão importa mais que custo
- Você quer explicações em linguagem natural junto com os resultados
Use Ambos
Configure o Lens para usar local por padrão, nuvem sob demanda:
# Default: local modeldataspoc-lens config set ai.provider ollamadataspoc-lens config set ai.model duckdb-nsql:7b
# Quick local querydataspoc-lens ask "total orders today"
# Complex query: override to clouddataspoc-lens ask "build a cohort retention analysis by signup month" --provider anthropicUso do SDK
Use IA local a partir do Python:
from dataspoc_lens import LensClient
lens = LensClient()
# Uses the configured AI provider (Ollama by default after setup-ai)answer = lens.ask("what are the top 5 product categories by revenue?")print(answer)
# Explicit provider overrideanswer = lens.ask( "complex cohort retention analysis", provider="anthropic", model="claude-sonnet-4-20250514",)print(answer)Executando em um Servidor
O Ollama roda como um daemon. Para um servidor de analytics compartilhado:
# Start Ollama as a servicesudo systemctl enable ollamasudo systemctl start ollama
# Pull modelsollama pull duckdb-nsql:7b
# Multiple users can query simultaneously# Each dataspoc-lens instance connects to localhost:11434Para servidores com GPU, o Ollama automaticamente usa a GPU para inferência mais rápida:
# Check GPU detectionollama ps
# On a T4 GPU, expect ~500ms per query for 7B modelsResolução de Problemas
Ollama não está rodando:
# Start the Ollama daemonollama serve
# Or check the servicesystemctl status ollamaModelo muito lento:
# Switch to the smaller modeldataspoc-lens config set ai.model qwen2.5-coder:1.5b
# Or check if GPU is being usedollama psSQL gerado incorreto:
# See the generated SQL without executingdataspoc-lens ask "your question" --show-sql-only
# Fix and run manuallydataspoc-lens query "your corrected SQL"Falta de memória:
# Check model size vs available RAMollama list
# Use the 1.5B model on machines with < 8 GB RAMdataspoc-lens config set ai.model qwen2.5-coder:1.5bConsultas de IA grátis nos seus próprios dados. Sem chave de API, sem internet, sem dados saindo da sua máquina. Instale uma vez, pergunte para sempre.