En el mundo del desarrollo de software, la toma de decisiones arquitectónicas basada en datos es un pilar fundamental para garantizar la escalabilidad y el rendimiento de los sistemas. Un caso recurrente en aplicaciones modernas es la necesidad de servir datos filtrados, ordenados y paginados desde grandes volúmenes almacenados en formato columnar como Parquet. La tentación inicial de cargar todo el archivo en memoria y aplicar la lógica de filtrado en la capa de aplicación puede ser viable para conjuntos pequeños, pero cuando el número de filas supera el centenar de miles, aparecen cuellos de botella que impactan tanto en la latencia como en el consumo de memoria. Este artículo analiza por qué las consultas pushdown —es decir, aquellas que empujan los predicados y la ordenación directamente al motor de consulta que lee desde el almacenamiento— pueden ofrecer mejoras drásticas de 5x en latencia y hasta 160x en uso de memoria, basándose en una evaluación comparativa controlada con 15 patrones de consulta reales.

La arquitectura tradicional de filtrado en memoria implica cargar el archivo Parquet completo en el proceso de la aplicación, lo que establece un piso de latencia ligado a la E/S y la descompresión, y un pico de memoria que crece proporcionalmente al tamaño del conjunto de trabajo. En cambio, las consultas pushdown trasladan la carga computacional al motor de consulta —como un motor SQL sobre object storage—, que devuelve únicamente la página final solicitada. Este cambio no solo reduce el tiempo de respuesta, sino que permite que el mismo nodo maneje muchas más peticiones concurrentes sin riesgo de OOM. En escenarios típicos de API, como una tabla con filtros combinados y paginación profunda, el enfoque pushdown mantiene la latencia media por debajo de los 250 ms, mientras que la alternativa en memoria supera el segundo y puede alcanzar picos de 237 MB por petición, frente a menos de 1 MB en la versión pushdown. Esto tiene implicaciones directas en el dimensionamiento de clústeres y en los costes operativos.

Sin embargo, toda regla tiene su excepción. Cuando la carga de trabajo principal consiste en exportaciones o escaneos completos de tablas, el filtrado en memoria puede ser más rápido porque no paga el overhead de descomposición en un motor externo. En las pruebas realizadas, una carga completa tomó ~1,0 s con 119 MB en memoria, frente a ~4,8 s y 470 MB usando pushdown. La lección es clara: la elección arquitectónica debe alinearse con la distribución del tráfico real. No es una cuestión de qué técnica es mejor en abstracto, sino de qué patrón domina en producción.

En Q2BSTUDIO, entendemos que optimizar el rendimiento de las aplicaciones va más allá de aplicar recetas prefabricadas. Por eso ofrecemos aplicaciones a medida que integran inteligencia artificial y agentes IA para automatizar procesos de negocio, así como servicios cloud AWS y Azure que permiten desplegar arquitecturas pushdown de forma eficiente. Nuestra experiencia en servicios inteligencia de negocio, como Power BI, también se beneficia de estas técnicas para acelerar el acceso a datos filtrados sin saturar la memoria. Además, la ciberseguridad es parte integral de cualquier solución: al reducir la superficie de datos en memoria, se mitigan riesgos de exposición. Si tu organización necesita software a medida con un enfoque basado en evidencias, podemos ayudarte a diseñar la ruta de consulta que mejor se adapte a tu patrón de tráfico, ya sea interactivo o de exportación masiva. La clave está en medir, no en asumir.