Skip to main content
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

1. SQL Pushdown

Se hace pushdown de las operaciones en la fuente de datos:

2. Poda de columnas

Solo se leen las columnas necesarias:

3. Evaluación diferida

Varias operaciones se compilan en una sola consulta:

Benchmark: DataStore frente a pandas

Entorno de prueba

  • Datos: 10 millones de filas
  • Hardware: portátil estándar
  • Formato de archivo: CSV

Resultados

Puntos clave

  1. Operaciones de GroupBy: DataStore hasta 19.93 veces más rápido
  2. Canalizaciones complejas: DataStore 5-6 veces más rápido (beneficio de SQL Pushdown)
  3. Operaciones de slicing simples: Rendimiento comparable; la diferencia es insignificante
  4. Mejor caso de uso: Operaciones de varios pasos con GroupBy/agregación
  5. Zero-copy: to_df() no tiene sobrecarga por conversión de datos

Cuándo destaca DataStore

Agregaciones intensivas

Canalizaciones complejas

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

Consejos de optimización

1. Habilite el modo de rendimiento para cargas de trabajo exigentes

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

7. Operaciones por lotes

8. Usa explain() para optimizar


Perfilado de la carga de trabajo

Activar el perfilado

Identificar cuellos de botella

Comparación de enfoques


Resumen de buenas prácticas


Guía rápida para decidir

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