Saltar al contenido principal
DataStore puede ejecutar operaciones con distintos backends. Esta guía explica cómo configurar y optimizar la elección del motor.

Motores disponibles

MotorDescripciónIdeal para
autoSelecciona automáticamente el mejor motor para cada operaciónUso general (predeterminado)
chdbHace que todas las operaciones se ejecuten con ClickHouse SQLConjuntos de datos grandes, agregaciones
pandasHace que todas las operaciones se ejecuten con pandasPruebas de compatibilidad, funciones específicas de pandas

Configuración del motor

Configuración global

Comprobar el motor actual


Modo automático

En el modo auto (predeterminado), DataStore selecciona el motor óptimo para cada operación:

Operaciones ejecutadas en chDB

  • Filtrado compatible con SQL (filter(), where())
  • Selección de columnas (select())
  • Ordenación (sort(), orderby())
  • Agrupación y agregación (groupby().agg())
  • Uniones (join(), merge())
  • Valores distintos (distinct(), drop_duplicates())
  • Limitación de resultados (limit(), head(), tail())

Operaciones ejecutadas en pandas

  • Funciones apply personalizadas (apply(custom_func))
  • Tablas dinámicas complejas con agregaciones personalizadas
  • Operaciones que no se pueden expresar en SQL
  • Cuando la entrada ya es un DataFrame de pandas

Ejemplo


Modo chDB

Fuerza todas las operaciones mediante ClickHouse SQL:

Cuándo usar

  • Procesamiento de grandes volúmenes de datos (millones de filas)
  • Cargas de trabajo con agregaciones intensivas
  • Cuando necesites la máxima optimización de SQL
  • Comportamiento uniforme en todas las operaciones

Características del rendimiento

Tipo de operaciónRendimiento
GroupBy/AgregaciónExcelente (hasta 20x más rápido)
Filtrado complejoExcelente
OrdenaciónMuy bueno
Filtros simples de una sola condiciónBueno (ligera sobrecarga)

Limitaciones

  • Es posible que no se admitan funciones personalizadas de Python
  • Algunas características específicas de pandas requieren conversión

Modo pandas

Fuerza todas las operaciones mediante pandas:

Cuándo usar

  • Pruebas de compatibilidad con pandas
  • Uso de funciones específicas de pandas
  • Depuración de problemas relacionados con pandas
  • Cuando los datos ya están en formato pandas

Características de rendimiento

Tipo de operaciónRendimiento
Operaciones simples individualesBueno
Funciones personalizadasExcelente
Agregaciones complejasMás lentas que chDB
Grandes conjuntos de datosUso intensivo de memoria

Motor entre DataStores

Configure el motor para operaciones que combinan columnas de distintos DataStores:

Ejemplo


Lógica de selección del motor

Árbol de decisiones del modo automático

Sobrescritura a nivel de función

En algunas funciones, se puede configurar explícitamente el motor:
Consulta Configuración de funciones para más detalles.

Comparación de rendimiento

Resultados de benchmark con 10 M de filas:
Operaciónpandas (ms)chdb (ms)Aceleración
Conteo con GroupBy3471719.93x
Operaciones combinadas1,5352346.56x
Canalización compleja2,0473805.39x
Filtrar+Ordenar+Head1,5373504.40x
Agregación con GroupBy4061412.88x
Filtro simple2765260.52x
Conclusiones clave:
  • chDB destaca en las agregaciones y las canalizaciones complejas
  • pandas es ligeramente más rápido en operaciones simples
  • Usa el modo auto para obtener lo mejor de ambos

Buenas prácticas

1. Comienza con el modo automático

2. Perfila antes de forzar

3. Forzar un motor para cargas de trabajo específicas

4. Usa explain() para comprender la ejecución


Solución de problemas

Problema: La operación es más lenta de lo esperado

Problema: Operación no admitida en modo chdb

Problema: problemas de memoria al trabajar con grandes volúmenes de datos

Modo de rendimientoSi ejecuta cargas de trabajo de agregación intensivas y no necesita compatibilidad exacta con la salida de pandas (orden de las filas, MultiIndex, correcciones de dtype), considere usar Performance Mode. Configura automáticamente el motor como chdb y elimina toda la sobrecarga de compatibilidad con pandas.
Última modificación el 2 de julio de 2026