Paneles de análisis rápidos desde un único archivo Parquet

Fuentes: Fast drilldown dashboards from a single Parquet file

Este artículo técnico explica cómo crear paneles de análisis interactivos y rápidos a partir de un único archivo Parquet almacenado en un bucket de R2, sin necesidad de una base de datos ni un motor de consultas. El autor, un ingeniero de MotherDuck, presenta el concepto del "cubo de datos" (data cube), que precalcula los resultados de agregación para un conjunto acotado de preguntas analíticas y los guarda en secciones dentro de un solo archivo Parquet. Cada sección corresponde a un "grouping set" que responde a combinaciones específicas de filtros y granularidades temporales. Gracias a las estadísticas min/max y los row groups del formato Parquet, el cliente puede realizar solicitudes HTTP de rango (range requests) para leer solo los fragmentos necesarios, lo que permite una latencia muy baja incluso con archivos de decenas de megabytes.

Para validar el enfoque, el autor toma el conjunto de datos de solicitudes de servicio NYC 311 (34 millones de filas) y lo transforma en un cubo Parquet de 40 MB con filtros por agencia, tipo de queja, tipo de envío y borough, más una columna de fecha. El archivo se aloja en R2 y se sirve mediante un Cloudflare Worker que cachea los rangos, ya que la URL gratuita de r2.dev tiene límite de velocidad. El panel resultante permite explorar tendencias diarias, semanales y anuales, y filtrar por agencia u otros atributos, respondiendo con menos de 300 KB de datos en lugar de los 40 MB completos.

El artículo detalla cómo funciona la estructura interna: los datos se ordenan por las columnas de filtro para que los valores coincidentes sean contiguos, y las estadísticas de los row groups permiten descartar rápidamente los que no contienen resultados. El autor también analiza las condiciones para que este enfoque sea viable: la combinatoria de filtros y gráficos debe ser limitada, y el pipeline debe reconstruir el archivo con la frecuencia adecuada. Señala que las agregaciones distributivas y algebraicas (sumas, cuentas, promedios) funcionan bien, mientras que las holísticas requieren soluciones más complejas. El texto concluye mencionando precedentes como PMTiles y sugiere que la latencia no depende del tamaño del cubo, sino de la lectura selectiva de rangos. En resumen, ofrece una alternativa ligera y rentable para paneles de uso común, sin añadir dependencias externas.