Skip to main content
DataStore ofrece mejoras significativas de rendimiento frente a 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

Las operaciones se ejecutan en la fuente de datos:

2. Poda de columnas

Solo se leen las columnas necesarias:

3. Evaluación diferida

Varias operaciones se traducen a una sola consulta:

Benchmark: DataStore vs 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 es hasta 19.93x más rápido
  2. Canalizaciones complejas: DataStore es 5-6x más rápido (gracias al pushdown en SQL)
  3. Operaciones de slicing simples: rendimiento comparable; diferencia insignificante
  4. Caso de uso ideal: operaciones de varios pasos con groupby/agregación
  5. Zero-copy: to_df() no tiene sobrecarga por conversión de datos

Cuándo conviene usar DataStore

Agregaciones exigentes

Canalizaciones complejas

Procesamiento de archivos de gran tamaño

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 de Python

ImportanteIncluso en los casos en que DataStore es “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 un control más preciso de la ejecución, consulte Configuración de Execution Engine.

Integración zero-copy de DataFrames

DataStore usa zero-copy para leer y escribir DataFrames de pandas. Esto significa:
Implicaciones clave:
  • to_df() es prácticamente gratuito: no hay serialización ni copias de memoria
  • Crear un DataStore a partir de un DataFrame de pandas es instantáneo
  • La memoria se comparte entre DataStore y las vistas de pandas

Consejos de optimización

1. Activa el modo de rendimiento para cargas de trabajo intensivas

Para cargas de trabajo con agregación intensiva en las que no necesitas el formato de salida exacto de pandas (orden de las filas, columnas MultiIndex, correcciones de dtype), activa el modo de rendimiento para maximizar el throughput:
Mejora esperada: Entre 2 y 8 veces más rápido en cargas de trabajo con filter+groupby, y menor uso de memoria con archivos Parquet grandes. Consulta Modo de rendimiento para obtener todos los detalles.

2. Usa Parquet en lugar de CSV

Mejora esperada: lecturas entre 3 y 10 veces más rápidas

3. Filtra desde el principio

4. Seleccione solo las columnas necesarias

5. Aprovecha las agregaciones en SQL

6. Usa head() en lugar de consultas completas

7. Operaciones por lotes

8. Utiliza 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 de decisión

Para seleccionar automáticamente el motor óptimo, use config.set_execution_engine('auto') (predeterminado). Para obtener el máximo rendimiento en cargas de trabajo de agregación, use config.use_performance_mode(). Consulte Execution Engine y Performance Mode para obtener más detalles.
Última modificación el 3 de julio de 2026