Skip to main content
Comprender el modelo de evaluación diferida de DataStore es clave para usarlo de forma eficaz y lograr un rendimiento óptimo.

Evaluación diferida

DataStore usa evaluación diferida: las operaciones no se ejecutan inmediatamente, sino que se registran y se compilan en consultas SQL optimizadas. La ejecución solo se produce cuando los resultados realmente son necesarios.

Ejemplo: Diferido vs Inmediato

Beneficios de la evaluación diferida

  1. Optimización de consultas: Varias operaciones se compilan en una sola consulta SQL optimizada
  2. Pushdown de filtros: Los filtros se aplican a nivel de la fuente de datos
  3. Poda de columnas: Solo se leen las columnas necesarias
  4. Decisiones diferidas: El motor de ejecución puede elegirse en tiempo de ejecución
  5. Inspección del plan: Puede ver o depurar la consulta antes de ejecutarla

Activadores de ejecución

La ejecución se activa automáticamente cuando se necesitan valores reales:

Activadores automáticos

Ejemplos:

Operaciones que se mantienen en diferido

Ejemplos:

Ejecución en tres fases

Las operaciones de DataStore siguen un modelo de ejecución en tres fases:

Fase 1: Construcción de consultas SQL (diferida)

Se acumulan las operaciones que pueden expresarse en SQL:

Fase 2: Momento de ejecución

Cuando se produce el evento desencadenante, se ejecuta el SQL acumulado:

Fase 3: Operaciones con DataFrame (si las hay)

Si encadenas operaciones exclusivas de pandas después de la ejecución:

Ver planes de ejecución

Usa explain() para ver qué se va a ejecutar:
Query
Response
Usa verbose=True para ver más detalles:
Consulte Depuración: explain() para obtener la documentación completa.

Almacenamiento en caché

DataStore almacena en caché los resultados de la ejecución para evitar consultas repetidas.

Cómo funciona la caché

Invalidación de caché

La caché se invalida cuando las operaciones modifican el DataStore:

Control manual de caché


Combinación de SQL y operaciones de Pandas

DataStore gestiona inteligentemente las operaciones que combinan SQL y Pandas:

Operaciones compatibles con SQL

Estas se compilan a SQL:
  • filter(), where()
  • select()
  • groupby(), agg()
  • sort(), orderby()
  • limit(), offset()
  • join(), union()
  • distinct()
  • Operaciones con columnas (matemáticas, comparaciones y métodos de cadena)

Operaciones solo de Pandas

Estas activan la ejecución y usan pandas:
  • apply() con funciones personalizadas
  • pivot_table() con agregaciones complejas
  • stack(), unstack()
  • Operaciones sobre DataFrames ya ejecutados

Canalizaciones híbridas


Selección del motor de ejecución

DataStore puede ejecutar operaciones con distintos motores:

Modo automático (predeterminado)

Forzar el uso del motor chDB

Forzar el motor de pandas

Consulta Configuración: Motor de ejecución para más detalles.

Impacto en el rendimiento

Bueno: Filtra pronto

Malo: filtrar al final

Bien: Selecciona las columnas desde el principio

Bien: deja que SQL haga el trabajo


Resumen de buenas prácticas

  1. Encadena las operaciones antes de ejecutar - Construye la consulta completa y ejecútala una sola vez
  2. Filtra cuanto antes - Reduce los datos en el origen
  3. Selecciona solo las columnas necesarias - La poda de columnas mejora el rendimiento
  4. Usa explain() para entender la ejecución - Depura antes de ejecutar
  5. Deja que SQL se encargue de las agregaciones - ClickHouse está optimizado para ello
  6. Ten en cuenta qué desencadena la ejecución - Evita ejecutar antes de tiempo por accidente
  7. Usa la caché con criterio - Entiende cuándo se invalida la caché
Última modificación el 23 de julio de 2026