Puedes leer todo sin registrarte. Solo crearemos un perfil anónimo cuando decidas guardar tu progreso.
Lección 2 de 5
Statistics y data skipping
Diseña data skipping a partir de predicados reales y estadísticas, evitando layouts que sólo reflejan cómo llegó el dato.
- Duración
- 17 min aprox.
- Objetivo
- Diseña data skipping a partir de predicados reales y estadísticas, evitando layouts que sólo reflejan cómo llegó el dato.
- Siguiente paso
- Continuar con la siguiente lección
Ver detalles del módulo
Photon, data skipping y liquid clustering
Diseña layout y mantenimiento de tablas según patrones de consulta que cambian con el tiempo.
- Interpretar data skipping y pruning
- Elegir liquid clustering
- Explicar deletion vectors, Photon y predictive optimization
02ImplementaciónStatistics y data skipping
Diseña data skipping a partir de predicados reales y estadísticas, evitando layouts que sólo reflejan cómo llegó el dato.
+
Statistics y data skipping
Diseña data skipping a partir de predicados reales y estadísticas, evitando layouts que sólo reflejan cómo llegó el dato.
Delta registra estadísticas por archivo para que el motor descarte archivos cuyo rango no puede satisfacer el filtro. El skipping funciona cuando las columnas consultadas tienen estadísticas útiles y los valores están organizados de forma que distintos archivos cubren rangos discriminantes. Un filtro muy selectivo no ayuda si todos los archivos contienen casi todo el rango de la columna.
En tablas Unity Catalog administradas, predictive optimization puede recopilar estadísticas automáticamente. Si cambias las columnas de estadísticas, `ANALYZE TABLE ... COMPUTE DELTA STATISTICS` recalcula la información del log; las estadísticas del optimizador se actualizan con `ANALYZE TABLE ... COMPUTE STATISTICS`. Verifica en Query Profile bytes leídos y porcentaje podado, no sólo el tiempo caliente de una segunda ejecución.
Modelo mental
Data skipping funciona como un índice grueso distribuido: Delta conserva estadísticas por archivo, como mínimos y máximos de columnas elegibles, y el motor descarta archivos imposibles antes de leer sus filas. No busca una fila concreta ni sustituye un filtro; reduce el conjunto de archivos candidatos cuando el predicado es selectivo y los valores relacionados están físicamente agrupados. Si cada archivo contiene todo el rango de fechas o clientes, sus intervalos se solapan y las estadísticas no ayudan. El diseño empieza con el historial real de filtros y joins, no con el orden de llegada. Clustering, compactación y tamaño de archivos moldean la utilidad de esas estadísticas sin crear una jerarquía rígida de directorios.
Metadato como mínimo, máximo, nulos y recuento asociado a un archivo de datos.
Permite descartar archivos sin leer su contenido cuando el predicado queda fuera del rango.Eliminación de archivos o particiones candidatas durante la planificación de lectura.
Reduce I/O y trabajo downstream; Query Profile permite medir cuántos bytes se evitaron.Fracción del conjunto total que satisface un predicado.
Los filtros selectivos obtienen más valor de un layout que agrupa sus columnas.ALTER TABLE prod.gold.orders
SET TBLPROPERTIES ('delta.dataSkippingStatsColumns' = 'order_date,customer_id');
ANALYZE TABLE prod.gold.orders COMPUTE DELTA STATISTICS;
ANALYZE TABLE prod.gold.orders COMPUTE STATISTICS;
SELECT *
FROM prod.gold.orders
WHERE order_date = DATE '2026-07-20'
AND customer_id = 184203;La recomputación puede ser costosa en tablas grandes; documenta el cambio y compara bytes leídos antes y después.
Puntos clave
- El skipping depende de estadísticas y distribución física, no de índices de filas tradicionales.
- Prioriza columnas presentes en filtros selectivos y frecuentes.
- Mide bytes/archivos podados con caché controlada.
Evita
- Añadir muchas columnas de estadísticas sin relación con predicados, aumentando metadatos y mantenimiento.
- Medir sólo una segunda consulta que ya se beneficia de caché.
Recuerdo activo