Saltar al contenido principal
DataStore tiene dos modos de compatibilidad que determinan si la salida se formatea para ser compatible con pandas o se optimiza para el rendimiento de Raw SQL.

Descripción general

Qué desactiva el modo de rendimiento


Habilitar el modo de rendimiento

Uso del objeto de configuración

Uso de funciones del módulo

Uso de importaciones simplificadas

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

Cuándo usar el modo de rendimiento

Usa el modo de rendimiento cuando:
  • Procesas grandes conjuntos de datos (de cientos de miles a 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 de SQL con una sobrecarga mínima
  • Te preocupa el uso de memoria (lectura paralela de Parquet, sin DataFrames intermedios)
Mantente en el 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 agregaciones de GroupBy
  • head() / tail() sin 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 que se utiliza en el modo pandas:
Esto evita 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 parámetros de configuración independientes: Establecer compat_mode='performance' configura automáticamente execution_engine='chdb', ya que el modo de rendimiento está diseñado para ejecutar SQL.

Pruebas del modo de rendimiento

Al escribir pruebas para el 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 luego 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 del script

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

3. Úselo para cargas de trabajo batch/ETL

4. Alternar entre modos dentro de una sesión


Última modificación el 1 de julio de 2026