Datos y documentos

Polars 2.0 introduce procesamiento fuera de memoria y consultas SQL más rápidas

Polars 2.0 habilita el procesamiento con volcado a disco por defecto y supera a DuckDB en benchmarks de SQL, ofreciendo una seguridad de tipos más estricta para flujos de trabajo de IA.

Un cubo de datos metálico dividiéndose en bloques con líneas de circuitos brillantes.
Ilustración generada para este artículo

Traducido automáticamente del original en inglés.

El equipo de Polars ha lanzado la versión 2.0 de su biblioteca de procesamiento de datos, marcando un cambio significativo en cómo el motor gestiona la memoria y las cargas de trabajo SQL. Publicado el 6 de octubre de 2026, esta actualización mayor introduce el procesamiento fuera de memoria (out-of-core) como función predeterminada y posiciona a Polars como uno de los líderes en benchmarks estándar de SQL frente a competidores como DuckDB y DataFusion.

Qué ocurrió

Este lanzamiento se centra en la resiliencia y el rendimiento, más que simplemente añadir nuevas funciones. El cambio más impactante es que llamar a collect en un LazyFrame ahora utiliza por defecto el motor de streaming. Este cambio permite a Polars manejar conjuntos de datos más grandes que la RAM disponible mediante el volcado de datos temporales al disco. El sistema inicia este proceso de volcado a disco cuando el uso de memoria alcanza aproximadamente el 80% de la RAM disponible, con un presupuesto de disco predeterminado de 64GB. Actualmente, operaciones como ordenamiento, funciones de ventana y muchas expresiones admiten este comportamiento fuera de memoria, mientras que las uniones (joins) y operaciones de agrupación están previstas para futuras actualizaciones.

Dado que el motor de streaming no garantiza el orden de filas en operaciones como join, group_by y unpivot, este cambio requirió un salto de versión mayor. Los usuarios que dependen de un orden específico de filas deben establecer explícitamente maintain_order=True. Este comportamiento predeterminado busca hacer que Polars sea más robusto para profesionales de datos casuales que trabajan con cargas de alta memoria, previniendo fallos que ocurrían previamente cuando los conjuntos de datos excedían los límites de memoria física.

Además de la gestión de memoria, Polars 2.0 trata SQL como un ciudadano de primera clase. La biblioteca ha aumentado drásticamente su cobertura de SQL y mejoró su optimizador con un reordenamiento de uniones más eficiente, eliminación de subplanes comunes y predicados dinámicos. Estas mejoras permiten a Polars ejecutar consultas SQL complejas de manera más eficiente, cerrando la brecha entre la manipulación programática de datos y las interacciones tradicionales con bases de datos.

Cómo funciona

Las ganancias de rendimiento en la ejecución de SQL provienen de profundas optimizaciones en el motor de consultas. Polars ahora aprovecha filtros Bloom y predicados dinámicos para reducir la cantidad de datos procesados durante la ejecución de consultas. Al eliminar subplanes comunes y reordenar uniones eficazmente, el motor minimiza los cálculos redundantes. Estas mejoras técnicas permiten a Polars competir directamente con bases de datos analíticas establecidas.

Para validar estas afirmaciones, el equipo ejecutó benchmarks utilizando datos derivados de TPC-H y TPC-DS en instancias AWS c7a. Compararon Polars contra DuckDB 1.5.6, DuckDB 2.0 alpha y DataFusion 54.0.0. Las pruebas implicaban ejecutar cada consulta cinco veces en un entorno caliente (hot setting), limpiando la caché de archivos entre motores y tomando el mejor tiempo de ejecución. Los resultados mostraron que Polars fue el motor más rápido en casi todos los benchmarks tanto en máquinas de 16 vCPU como de 192 vCPU, aunque exhibió cierta sobrecarga en consultas de datos pequeños cuando se escalaba a 192 hilos.

Detalles clave

  • El procesamiento fuera de memoria está habilitado por defecto, volcando al disco al ~80% del uso de RAM con un presupuesto de disco predeterminado de 64GB.
  • El motor de streaming es ahora el predeterminado para collect, lo cual puede cambiar el orden de las filas a menos que se establezca maintain_order=True.
  • Polars superó a DuckDB y DataFusion en los benchmarks TPC-H y TPC-DS1 tanto en instancias c7a.4xlarge como c7a.metal.
  • Un nuevo tipo de dato Map soporta directamente Arrow MapType, permitiendo búsquedas e iteraciones similares a diccionarios por clave.
  • Una comprobación de tipos más estricta y collect_schema() permiten bucles de retroalimentación más rápidos para agentes de IA y desarrolladores.
  • DataFusion agotó el tiempo o la memoria en varias consultas donde Polars y DuckDB completaron exitosamente.

Por qué importa

Para ingenieros de software y científicos de datos, el soporte predeterminado fuera de memoria significa mayor confiabilidad al procesar grandes conjuntos de datos. Anteriormente, exceder los límites de memoria provocaba fallos en el proceso, requiriendo división manual de datos (chunking) o herramientas externas. Ahora, Polars puede manejar elegantemente cargas de trabajo mayores que la memoria utilizando espacio en disco, facilitando la construcción de pipelines de datos resilientes sin una extensa configuración de infraestructura. Esto es particularmente valioso para equipos que no cuentan con recursos dedicados de ingeniería de datos para gestionar sistemas distribuidos complejos.

El sistema de tipos más estricto y la validación de esquemas también abordan una necesidad creciente en el desarrollo impulsado por IA. A medida que más desarrolladores usan agentes de IA para generar código, la detección temprana de errores se vuelve crítica. Al fallar rápidamente ante discrepancias de esquema mediante collect_schema(), Polars ayuda a los agentes y humanos a iterar más rápido. Esto reduce el tiempo invertido en depurar fallos silenciosos o tipos de datos incorrectos en profundidad dentro de un pipeline, conduciendo a código de procesamiento de datos más mantenible y correcto.

Qué puedes hacer

  • Actualiza a Polars 2.0 y revisa la guía de migración proporcionada por el equipo para manejar cambios incompatibles (breaking changes).
  • Prueba tus pipelines existentes para dependencias de orden de filas y añade maintain_order=True donde sea necesario.
  • Experimenta con el nuevo tipo de dato Map para manejar estructuras de datos anidadas clave-valor de manera más eficiente.
  • Ejecuta consultas SQL directamente en Polars para aprovechar el optimizador mejorado y comparar el rendimiento con tu stack actual.
  • Usa collect_schema() en tu flujo de trabajo de desarrollo para detectar errores de tipos antes de ejecutar operaciones pesadas de datos.
  • Monitorea el uso de memoria y ajusta el umbral de volcado a disco si tu carga de trabajo requiere una asignación de recursos diferente.

Herramientas de la Tienda de Bytechap

$89

DocBento

Gestión documental autoalojada que lee cada escaneo y responde con citas de página.

Demo en vivo

Seguir leyendo

Todos los artículos