DataStore ofrece un rendimiento significativamente superior al de pandas en muchas operaciones. Esta guía explica por qué y cómo optimizar sus cargas de trabajo.
Por qué DataStore es más rápido
Se hace pushdown de las operaciones en la fuente de datos:
Solo se leen las columnas necesarias:
Varias operaciones se compilan en una sola consulta:
Benchmark: DataStore frente a pandas
- Datos: 10 millones de filas
- Hardware: portátil estándar
- Formato de archivo: CSV
- Operaciones de GroupBy: DataStore hasta 19.93 veces más rápido
- Canalizaciones complejas: DataStore 5-6 veces más rápido (beneficio de SQL Pushdown)
- Operaciones de slicing simples: Rendimiento comparable; la diferencia es insignificante
- Mejor caso de uso: Operaciones de varios pasos con GroupBy/agregación
- Zero-copy:
to_df() no tiene sobrecarga por conversión de datos
Procesamiento de archivos grandes
Operaciones con varias columnas
Cuándo pandas ofrece un rendimiento comparable
En la mayoría de los casos, DataStore iguala o supera el rendimiento de pandas. Sin embargo, pandas puede ser ligeramente más rápido en estos casos concretos:
Conjuntos de datos pequeños (<1.000 filas)
Operaciones simples de slicing
Funciones lambda personalizadas en Python
ImportanteIncluso en los casos en que DataStore sea “más lento”, el rendimiento suele estar a la altura de pandas; la diferencia es insignificante en la práctica. Las ventajas de DataStore en operaciones complejas superan con creces estos casos puntuales.Para tener un control detallado de la ejecución, consulta la configuración del motor de ejecución.
Integración de DataFrames con zero-copy
DataStore utiliza zero-copy para leer y escribir DataFrames de pandas. Esto significa:
Implicaciones clave:
to_df() es prácticamente gratuito: no requiere serialización ni copia de memoria
- Crear un DataStore a partir de un pandas DataFrame es instantáneo
- La memoria se comparte entre el DataStore y las vistas de pandas
Para cargas de trabajo con mucha agregación en las que no necesita el formato de salida exacto de pandas (orden de las filas, columnas MultiIndex, correcciones de dtype), habilite el modo de rendimiento para obtener el máximo rendimiento:
Mejora esperada: Entre 2 y 8 veces más rápido para cargas de trabajo con filtros y GroupBy, con menor uso de memoria para archivos Parquet de gran tamaño.
Consulte modo de rendimiento para ver todos los detalles.
2. Utiliza Parquet en lugar de CSV
Mejora esperada: lecturas entre 3 y 10 veces más rápidas
3. Filtre lo antes posible
4. Selecciona solo las columnas necesarias
5. Aproveche las agregaciones en SQL
6. Usa head() en lugar de consultas completas
8. Usa explain() para optimizar
Perfilado de la carga de trabajo
Identificar cuellos de botella
Resumen de buenas prácticas
Para seleccionar automáticamente el motor óptimo, usa config.set_execution_engine('auto') (predeterminado).
Para obtener el máximo rendimiento en cargas de trabajo de agregación, usa config.use_performance_mode().
Consulta Motor de ejecución y Modo de rendimiento para más detalles. Última modificación el 23 de julio de 2026