ollamalocal-aiprivacydata-analysisfree

Consulta tu Data Lake con IA gratis: Ollama + DataSpoc Lens

Michael San Martim · 2026-04-28

Cada herramienta de IA para datos requiere una API key. OpenAI cobra por token. Anthropic cobra por token. Los datos de tu empresa van a los servidores de alguien mas. Para una pregunta rapida sobre tus propios datos, eso es mucha friccion y riesgo.

DataSpoc Lens funcióna con Ollama para ejecutar consultas de IA completamente en tu máquina. Sin API key, sin internet, sin datos saliendo de tu laptop. Pregunta “cuales fueron los productos top el mes pasado?” y obtendras una consulta SQL real ejecutada contra tu data lake — todo local.

Por que IA local para consultas de datos

Tres razones:

  1. Gratis — sin costos de API, sin limites de uso, sin sorpresas en la facturacion
  2. Privado — tus datos y consultas nunca salen de tu máquina
  3. Rápido para modelos pequenos — respuestas en menos de un segundo para generacion SQL en un MacBook

La compensacion: los modelos locales son menos capaces que GPT-4o o Claude. Para generacion SQL sobre esquemas conocidos, suelen ser suficientes.

Configuracion: Un solo comando

Terminal window
dataspoc-lens setup-ai

Este comando:

  1. Verifica si Ollama esta instalado; si no, lo instala
  2. Descarga el modelo recomendado para generacion SQL
  3. Configura Lens para usar el modelo local
  4. Ejecuta una consulta de prueba 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"

Tu primera consulta con IA

Terminal window
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 │
│ ... │ ... │
└──────────────────┴───────────────┘

El modelo leyo los esquemas de tus tablas, genero una consulta SQL de DuckDB, Lens la ejecuto y obtuviste resultados reales. Todo local.

Como funcióna internamente

Cuando ejecutas dataspoc-lens ask, esto es lo que sucede:

1. Lens lee los esquemas de las tablas del catalogo
2. Lens construye un prompt con esquemas + tu pregunta
3. El prompt se envia a Ollama (HTTP local en puerto 11434)
4. Ollama genera SQL usando el modelo local
5. Lens valida la sintaxis SQL
6. Lens ejecuta el SQL via DuckDB
7. Los resultados se muestran

Ningun dato va a internet. El prompt contiene metadatos de esquema (nombres de tablas y columnas) y tu pregunta. La respuesta es una consulta SQL. DuckDB la ejecuta contra tu cache local o bucket en la nube.

Eligiendo el modelo correcto

DataSpoc Lens soporta multiples modelos de Ollama. Asi se comparan para generacion SQL:

duckdb-nsql:7b (Recomendado por defecto)

Un modelo de 7B parametros ajustado especificamente para generacion SQL de DuckDB.

Terminal window
ollama pull duckdb-nsql:7b
dataspoc-lens config set ai.model duckdb-nsql:7b
  • Tamano: 4.1 GB
  • RAM: 8 GB minimo
  • Velocidad: ~2 segundos por consulta en Mac M1
  • Precision: Alta para SQL estandar (agregaciones, joins, filtros)
  • Debilidad: Tiene dificultades con window functions complejas

qwen2.5-coder:1.5b (Liviano)

Un modelo diminuto que corre en casi cualquier máquina.

Terminal window
ollama pull qwen2.5-coder:1.5b
dataspoc-lens config set ai.model qwen2.5-coder:1.5b
  • Tamano: 1.0 GB
  • RAM: 4 GB minimo
  • Velocidad: ~500ms por consulta
  • Precision: Buena para consultas simples, falla en joins complejos
  • Mejor para: Maquinas con pocos recursos, consultas rapidas

qwen2.5-coder:7b (Equilibrado)

Un modelo de programacion de proposito general con buenas capacidades SQL.

Terminal window
ollama pull qwen2.5-coder:7b
dataspoc-lens config set ai.model qwen2.5-coder:7b
  • Tamano: 4.4 GB
  • RAM: 8 GB minimo
  • Velocidad: ~2 segundos por consulta
  • Precision: Buena en todos los tipos de consultas
  • Mejor para: Cuando también quieres el modelo para tareas de programacion no-SQL

Comparación de precision: Local vs. Nube

Probamos 50 preguntas en lenguaje natural contra un dataset estandar de e-commerce (clientes, ordenes, productos, eventos). Cada pregunta fue probada contra tres proveedores:

ModeloSQL correctoErrores menoresIncorrectoTiempo promedio
Claude claude-sonnet-4-2025051447/50 (94%)2/501/501.2s
GPT-4o45/50 (90%)3/502/501.8s
duckdb-nsql:7b (local)40/50 (80%)6/504/502.1s
qwen2.5-coder:7b (local)38/50 (76%)7/505/502.3s
qwen2.5-coder:1.5b (local)30/50 (60%)10/5010/500.5s

Donde los modelos locales sobresalen:

  • Agregaciones simples: “ingreso total este mes”
  • Filtros: “ordenes de California”
  • Joins básicos: “ordenes con nombres de clientes”
  • Group by: “ingresos por categoria de producto”

Donde los modelos locales tienen dificultades:

  • Window functions complejas: “promedio movil con particion”
  • CTEs de multiples pasos: “análisis de retencion por cohorte”
  • Preguntas ambiguas: “cómo va el negocio?”
  • Casos limite de matematica de fechas: “calculos de trimestre fiscal”

80% de precision de un modelo gratuito y local es impresionante. Para el 20% de consultas complejas, usa IA en la nube o escribe el SQL tu mismo.

Cuando ir local vs. nube

Usa local cuando

  • Estas explorando datos interactivamente (preguntas rapidas, iteracion)
  • La privacidad de datos es un requisito estricto (salud, finanzas, gobierno)
  • Quieres evitar costos de API para consultas frecuentes
  • Estas sin conexión o en una red restringida
  • Las consultas son directas (filtros, agregaciones, joins simples)

Usa la nube cuando

  • Necesitas alta precision en preguntas analiticas complejas
  • La consulta involucra razonamiento de multiples pasos (análisis de cohorte, funnels)
  • Estas construyendo un producto donde la precision importa mas que el costo
  • Quieres explicaciones en lenguaje natural junto con los resultados

Usa ambos

Configura Lens para usar local por defecto, nube bajo demanda:

Terminal window
# Default: local model
dataspoc-lens config set ai.provider ollama
dataspoc-lens config set ai.model duckdb-nsql:7b
# Quick local query
dataspoc-lens ask "total orders today"
# Complex query: override to cloud
dataspoc-lens ask "build a cohort retention analysis by signup month" --provider anthropic

Uso del SDK

Usa IA local desde 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 override
answer = lens.ask(
"complex cohort retention analysis",
provider="anthropic",
model="claude-sonnet-4-20250514",
)
print(answer)

Ejecucion en un servidor

Ollama corre cómo un daemon. Para un servidor de analitica compartido:

Terminal window
# Start Ollama as a service
sudo systemctl enable ollama
sudo systemctl start ollama
# Pull models
ollama pull duckdb-nsql:7b
# Multiple users can query simultaneously
# Each dataspoc-lens instance connects to localhost:11434

Para servidores equipados con GPU, Ollama usa automáticamente la GPU para inferencia mas rapida:

Terminal window
# Check GPU detection
ollama ps
# On a T4 GPU, expect ~500ms per query for 7B models

Solucion de problemas

Ollama no esta corriendo:

Terminal window
# Start the Ollama daemon
ollama serve
# Or check the service
systemctl status ollama

Modelo muy lento:

Terminal window
# Switch to the smaller model
dataspoc-lens config set ai.model qwen2.5-coder:1.5b
# Or check if GPU is being used
ollama ps

SQL generado incorrecto:

Terminal window
# See the generated SQL without executing
dataspoc-lens ask "your question" --show-sql-only
# Fix and run manually
dataspoc-lens query "your corrected SQL"

Sin memoria:

Terminal window
# Check model size vs available RAM
ollama list
# Use the 1.5B model on machines with < 8 GB RAM
dataspoc-lens config set ai.model qwen2.5-coder:1.5b

Consultas de IA gratuitas sobre tus propios datos. Sin API key, sin internet, sin datos saliendo de tu máquina. Instala una vez, pregunta siempre.

Recomendados