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

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

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


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: 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