Consulta tu Data Lake con IA gratis: Ollama + DataSpoc Lens
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:
- Gratis — sin costos de API, sin limites de uso, sin sorpresas en la facturacion
- Privado — tus datos y consultas nunca salen de tu máquina
- 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
dataspoc-lens setup-aiEste comando:
- Verifica si Ollama esta instalado; si no, lo instala
- Descarga el modelo recomendado para generacion SQL
- Configura Lens para usar el modelo local
- 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
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 catalogo2. Lens construye un prompt con esquemas + tu pregunta3. El prompt se envia a Ollama (HTTP local en puerto 11434)4. Ollama genera SQL usando el modelo local5. Lens valida la sintaxis SQL6. Lens ejecuta el SQL via DuckDB7. Los resultados se muestranNingun 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.
ollama pull duckdb-nsql:7bdataspoc-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.
ollama pull qwen2.5-coder:1.5bdataspoc-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.
ollama pull qwen2.5-coder:7bdataspoc-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:
| Modelo | SQL correcto | Errores menores | Incorrecto | Tiempo promedio |
|---|---|---|---|---|
| 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 |
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:
# 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 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 overrideanswer = 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:
# 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 equipados con GPU, Ollama usa automáticamente la GPU para inferencia mas rapida:
# Check GPU detectionollama ps
# On a T4 GPU, expect ~500ms per query for 7B modelsSolucion de problemas
Ollama no esta corriendo:
# Start the Ollama daemonollama serve
# Or check the servicesystemctl status ollamaModelo muy lento:
# Switch to the smaller modeldataspoc-lens config set ai.model qwen2.5-coder:1.5b
# Or check if GPU is being usedollama psSQL generado incorrecto:
# See the generated SQL without executingdataspoc-lens ask "your question" --show-sql-only
# Fix and run manuallydataspoc-lens query "your corrected SQL"Sin memoria:
# 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 gratuitas sobre tus propios datos. Sin API key, sin internet, sin datos saliendo de tu máquina. Instala una vez, pregunta siempre.