Motores disponibles
| Motor | Descripción | Ideal para |
|---|---|---|
auto | Selecciona automáticamente el mejor motor para cada operación | Uso general (predeterminado) |
chdb | Hace que todas las operaciones se ejecuten con ClickHouse SQL | Conjuntos de datos grandes, agregaciones |
pandas | Hace que todas las operaciones se ejecuten con pandas | Pruebas de compatibilidad, funciones específicas de pandas |
Configuración del motor
Configuración global
Comprobar el motor actual
Modo automático
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
applypersonalizadas (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
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ón | Rendimiento |
|---|---|
| GroupBy/Agregación | Excelente (hasta 20x más rápido) |
| Filtrado complejo | Excelente |
| Ordenación | Muy bueno |
| Filtros simples de una sola condición | Bueno (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
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ón | Rendimiento |
|---|---|
| Operaciones simples individuales | Bueno |
| Funciones personalizadas | Excelente |
| Agregaciones complejas | Más lentas que chDB |
| Grandes conjuntos de datos | Uso intensivo de memoria |
Motor entre DataStores
Ejemplo
Lógica de selección del motor
Árbol de decisiones del modo automático
Sobrescritura a nivel de función
Comparación de rendimiento
| Operación | pandas (ms) | chdb (ms) | Aceleración |
|---|---|---|---|
| Conteo con GroupBy | 347 | 17 | 19.93x |
| Operaciones combinadas | 1,535 | 234 | 6.56x |
| Canalización compleja | 2,047 | 380 | 5.39x |
| Filtrar+Ordenar+Head | 1,537 | 350 | 4.40x |
| Agregación con GroupBy | 406 | 141 | 2.88x |
| Filtro simple | 276 | 526 | 0.52x |
- chDB destaca en las agregaciones y las canalizaciones complejas
- pandas es ligeramente más rápido en operaciones simples
- Usa el modo
autopara obtener lo mejor de ambos