Saltar al contenido principal
Comprender el modelo de evaluación diferida de DataStore es fundamental para usarlo eficazmente y obtener un rendimiento óptimo.

Evaluación diferida

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

Ejemplo: evaluación diferida vs. inmediata

Beneficios de la evaluación diferida

  1. Optimización de consultas: Varias operaciones se convierten en una única 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/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 siguen siendo diferidas

Ejemplos:

Ejecución en tres fases

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

Fase 1: Construcción perezosa de consultas SQL

Se acumulan las operaciones que pueden expresarse en SQL:

Fase 2: Punto de ejecución

Cuando ocurre un evento activador, se ejecuta el SQL acumulado:

Fase 3: Operaciones de DataFrame (si las hay)

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

Ver planes de ejecución

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

Caché

DataStore guarda en caché los resultados de ejecución para evitar consultas redundantes.

Cómo funciona la caché

Invalidación de caché

La caché se invalida cuando se realizan operaciones que modifican el DataStore:

Control manual de caché


Combinación de operaciones SQL y de Pandas

DataStore gestiona de forma inteligente las operaciones que combinan SQL y Pandas:

Operaciones compatibles con SQL

Se compilan a SQL:
  • filter(), where()
  • select()
  • groupby(), agg()
  • sort(), orderby()
  • limit(), offset()
  • join(), union()
  • distinct()
  • Operaciones sobre columnas (matemáticas, comparación, métodos de cadenas)

Operaciones exclusivas de Pandas

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

Canalizaciones híbridas


Selección del motor de ejecución

DataStore puede ejecutar operaciones con distintos motores:

Modo automático (predeterminado)

Forzar el motor chDB

Forzar el motor de pandas

Consulta Configuración: motor de ejecución para más información.

Implicaciones en el rendimiento

Bien: filtrar pronto

Mal: filtrar tarde

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 luego ejecútala una sola vez
  2. Filtra cuanto antes - Reduce los datos en el origen
  3. Selecciona solo las columnas necesarias - Descartar 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 - Comprende cuándo se invalida
Última modificación el 2 de julio de 2026