Skip to main content
DataStore tiene dos modos de compatibilidad que determinan si la salida se formatea para mantener la compatibilidad con pandas o se optimiza para el rendimiento de Raw SQL.

Descripción general

Qué desactiva modo de rendimiento


Activar modo de rendimiento

Uso del objeto de configuración

Uso de funciones a nivel de módulo

Uso de importaciones abreviadas

Al activar el modo de rendimiento, el motor de ejecución se establece automáticamente en chdb. No es necesario llamar a config.use_chdb() por separado.

Cuándo usar modo de rendimiento

Usa modo de rendimiento cuando:
  • Procesas grandes conjuntos de datos (cientos de miles o millones de filas)
  • Ejecutas cargas de trabajo con mucha agregación (groupby, sum, mean, count)
  • El orden de las filas no importa (p. ej., resultados agregados, informes, dashboards)
  • Quieres el máximo rendimiento en SQL y una sobrecarga mínima
  • Te preocupa el uso de memoria (lectura paralela de Parquet, sin DataFrames intermedios)
Mantente en modo pandas cuando:
  • Necesitas el comportamiento exacto de pandas (orden de las filas, MultiIndex, dtypes)
  • Dependes de que first()/last() devuelvan realmente la primera/última fila
  • Usas shift(), diff(), cumsum() que dependen del orden de las filas
  • Estás escribiendo pruebas que comparan la salida de DataStore con pandas

Diferencias de comportamiento

Orden de las filas

En el modo de rendimiento, el orden de las filas no está garantizado en ninguna operación. Esto incluye:
  • Resultados de filtros
  • Resultados de agregación de GroupBy
  • head() / tail() sin un sort_values() explícito
  • Agregaciones first() / last()
Si necesitas resultados ordenados, añade un sort_values() explícito:

Resultados de GroupBy

Agregación

Ejecución con una sola consulta SQL

En el modo de rendimiento, la agregación groupby de ColumnExpr (p. ej., ds[condition].groupby('col')['val'].sum()) se ejecuta como una única consulta SQL en lugar del proceso de dos pasos utilizado en el modo pandas:
Esto elimina la materialización intermedia del DataFrame y puede reducir significativamente el uso de memoria y el tiempo de ejecución.

Comparación con el motor de ejecución

El modo de rendimiento (compat_mode) y el motor de ejecución (execution_engine) son ejes de configuración independientes: Establecer compat_mode='performance' configura automáticamente execution_engine='chdb', ya que el modo de rendimiento está diseñado para la ejecución de SQL.

Pruebas con modo de rendimiento

Al escribir pruebas para modo de rendimiento, los resultados pueden diferir de los de pandas en el orden de las filas y en el formato estructural. Utiliza estas estrategias:

Ordenar y comparar (agregaciones, filtros)

Comprobación del rango de valores (primero/último)

Esquema y conteo (LIMIT sin ORDER BY)


Buenas prácticas

1. Actívalo al principio de tu script

2. Añada una ordenación explícita cuando el orden sea importante

3. Úselo para cargas de trabajo por lotes/ETL

4. Cambiar entre modos en una sesión


Última modificación el 23 de julio de 2026