Cómo consultar archivos Parquet con SQL (sin Python)

· Parquet Explorer
parquetsqlduckdbtutorial

Cuando alguien dice “archivos Parquet”, lo primero que se viene a la mente es Python con pandas o PySpark. Pero no siempre necesitas levantar un entorno de Python para explorar tus datos. Si sabes SQL — y si trabajas con datos, es muy probable que sí — puedes consultar archivos Parquet directamente, y además obtener insights sobre la calidad y estructura de tus datos que van más allá de una simple consulta.

En este tutorial te muestro cómo hacerlo desde el navegador con Parquet Explorer y desde la terminal con DuckDB CLI.

Opción 1: Parquet Explorer (en el navegador)

La forma más completa de trabajar con archivos Parquet sin instalar nada es Parquet Explorer. Empezó como un visor, pero hoy es una plataforma integral que corre 100% en tu navegador usando DuckDB-WASM. Tus datos nunca salen de tu máquina.

Cómo empezar

  1. Abre parquetexplorer.com.
  2. Arrastra tu archivo .parquet a la interfaz (o haz clic para seleccionarlo).
  3. Inmediatamente verás una vista previa de los datos, el esquema con tipos anidados en un árbol visual, y un panel de metadata.
  4. Abre el editor SQL y escribe tu consulta. Las sugerencias contextuales te proponen queries relevantes basadas en la estructura de tu tabla — ideal cuando no conoces bien el dataset.

Más que SQL: lo que puedes hacer antes, durante y después de consultar

Lo interesante de Parquet Explorer es que las consultas SQL son solo una parte del flujo:

  • Antes de consultar: el perfilador de datos te da un panorama completo de cada columna — distribución de valores con histogramas, detección automática de tipos semánticos (emails, URLs, UUIDs, direcciones IP, teléfonos) y un puntaje de calidad de datos. Esto te ayuda a formular mejores queries porque ya sabes qué contiene cada columna.
  • Durante la consulta: la tabla de resultados está virtualizada, así que puedes manejar resultados de millones de filas sin que el navegador se trabe. El historial de consultas guarda automáticamente tus queries previas.
  • Después de consultar: exporta los resultados a CSV, JSON o Parquet (con compresión Snappy). Si necesitas ajustar algo, puedes editar celdas inline, agregar o eliminar filas y columnas directamente.

Ejemplo práctico

Supongamos que tienes un archivo ventas_2025.parquet con columnas como fecha, producto, categoria, monto, region y vendedor.

Ventas totales por categoría:

SELECT
  categoria,
  COUNT(*) AS total_transacciones,
  SUM(monto) AS venta_total,
  AVG(monto) AS ticket_promedio
FROM ventas_2025
GROUP BY categoria
ORDER BY venta_total DESC;

Ventas mensuales de una región específica:

SELECT
  DATE_TRUNC('month', fecha) AS mes,
  SUM(monto) AS venta_mensual
FROM ventas_2025
WHERE region = 'LATAM'
GROUP BY mes
ORDER BY mes;

Top 10 vendedores:

SELECT
  vendedor,
  COUNT(*) AS operaciones,
  SUM(monto) AS venta_total
FROM ventas_2025
GROUP BY vendedor
ORDER BY venta_total DESC
LIMIT 10;

Comparación mes a mes con window functions:

SELECT
  DATE_TRUNC('month', fecha) AS mes,
  SUM(monto) AS total,
  LAG(SUM(monto)) OVER (ORDER BY DATE_TRUNC('month', fecha)) AS mes_anterior,
  ROUND(
    (SUM(monto) - LAG(SUM(monto)) OVER (ORDER BY DATE_TRUNC('month', fecha)))
    / LAG(SUM(monto)) OVER (ORDER BY DATE_TRUNC('month', fecha)) * 100, 2
  ) AS variacion_pct
FROM ventas_2025
GROUP BY mes
ORDER BY mes;

Todo esto se ejecuta directamente en tu navegador, con la potencia completa de DuckDB SQL — CTEs, window functions, subqueries, todo disponible.

Opción 2: DuckDB CLI (en la terminal)

Si prefieres trabajar desde la terminal o necesitas automatizar consultas, DuckDB CLI es una excelente alternativa. Es un motor SQL embebido — parecido a SQLite, pero optimizado para análisis.

Instalación

# macOS
brew install duckdb

# Linux
wget https://github.com/duckdb/duckdb/releases/latest/download/duckdb_cli-linux-amd64.zip
unzip duckdb_cli-linux-amd64.zip

# Windows
winget install DuckDB.cli

Uso básico

-- Leer un archivo Parquet como si fuera una tabla
SELECT * FROM 'ventas_2025.parquet' LIMIT 5;

-- Ver el esquema
DESCRIBE SELECT * FROM 'ventas_2025.parquet';

-- Consultar múltiples archivos con globs
SELECT * FROM 'datos/ventas_*.parquet';

Lo elegante de DuckDB es que puedes referenciar archivos Parquet directamente en el FROM, sin necesidad de crear tablas ni importar nada.

Queries esenciales para exploración de datos

Independientemente de la herramienta que uses, estas son las consultas que más vas a repetir.

Inspeccionar la estructura

-- Columnas y tipos
DESCRIBE SELECT * FROM archivo;

-- Conteo de filas
SELECT COUNT(*) FROM archivo;

-- Estadísticas básicas
SELECT
  MIN(columna) AS minimo,
  MAX(columna) AS maximo,
  AVG(columna) AS promedio,
  STDDEV(columna) AS desviacion
FROM archivo;

Distribuciones y valores únicos

-- Distribución de frecuencia
SELECT
  categoria,
  COUNT(*) AS frecuencia,
  ROUND(COUNT(*) * 100.0 / SUM(COUNT(*)) OVER(), 2) AS porcentaje
FROM archivo
GROUP BY categoria
ORDER BY frecuencia DESC;

Nota: si usas Parquet Explorer, el perfilador de datos te genera estas distribuciones automáticamente con histogramas visuales, sin necesidad de escribir SQL.

Detectar problemas de calidad

-- Contar nulos por columna
SELECT
  COUNT(*) - COUNT(columna_a) AS nulos_a,
  COUNT(*) - COUNT(columna_b) AS nulos_b
FROM archivo;

-- Buscar duplicados
SELECT columna_id, COUNT(*) AS duplicados
FROM archivo
GROUP BY columna_id
HAVING COUNT(*) > 1;

De nuevo, el data profiler de Parquet Explorer detecta estos patrones automáticamente — conteo de nulos, valores distintos, y calcula un puntaje de calidad de datos por columna. Pero tener los queries a mano te da control total para investigaciones más específicas.

Análisis de series de tiempo

-- Tendencia diaria
SELECT
  CAST(fecha AS DATE) AS dia,
  COUNT(*) AS eventos,
  SUM(valor) AS total
FROM archivo
GROUP BY dia
ORDER BY dia;

Del análisis a la acción: editar y exportar

Una ventaja de usar Parquet Explorer como plataforma de consultas es que el flujo no termina con los resultados del query. Puedes:

  • Exportar resultados a CSV, JSON o Parquet con un clic. Si necesitas mandar un resumen a un colega que solo usa Excel, exportas a CSV. Si el resultado alimenta otro pipeline, exportas a Parquet con compresión Snappy.
  • Editar los datos directamente. Si encontraste un error en una celda, lo corriges inline. Si necesitas agregar una fila o columna, lo haces sin escribir código.
  • Crear un Parquet nuevo desde cero, definiendo el esquema y los datos manualmente. Útil para archivos de prueba o datasets de referencia.

¿Cuándo elegir cada herramienta?

Usa Parquet Explorer cuando:

  • Quieres explorar un archivo con SQL y además perfilar los datos, inspeccionar metadata y exportar resultados — todo en un solo lugar.
  • Estás en una máquina donde no puedes instalar software.
  • La privacidad es importante y no quieres que los datos pasen por ningún servidor.
  • Necesitas editar datos o convertir entre formatos (CSV/TSV/JSON/JSONL a Parquet y viceversa).

Usa DuckDB CLI cuando:

  • Trabajas con archivos muy grandes (varios GB) que podrían ser pesados para el navegador.
  • Necesitas automatizar consultas en scripts de bash.
  • Quieres integrar las consultas en un pipeline de datos.

Conclusión

No necesitas Python ni Spark para trabajar con archivos Parquet de forma productiva. SQL es más que suficiente para la gran mayoría de tareas analíticas, y herramientas como Parquet Explorer te dan mucho más que un editor SQL — te dan una plataforma completa para consultar, perfilar, inspeccionar, editar, convertir y exportar, todo desde el navegador y sin que tus datos salgan de tu máquina.

Si nunca has consultado un Parquet con SQL, arrastra un archivo a Parquet Explorer y empieza a escribir queries. Las sugerencias contextuales te van a guiar, y en menos de un minuto vas a estar explorando tus datos con la potencia completa de DuckDB.