Posterior a investigar con expertos en esta materia, programadores de deferentes áreas y maestros dimos con la solución a la cuestión y la plasmamos en esta publicación.
Solución:
Es un poco falso para ser honesto (en mi opinión). Aunque RedShift no tiene ninguno de estos, no estoy seguro de que sea lo mismo que decir que no se beneficiaría de ellos.
Vistas materializadas
No tengo idea real de por qué hacen esta afirmación. Posiblemente porque consideran que el motor funciona tan bien que las ganancias por tenerlos son mínimas.
Discutiría esto y el producto en el que trabajo mantiene sus propias vistas materializadas y puede mostrar ganancias de rendimiento significativas al hacerlo. ¿Quizás AWS cree que debo estar haciendo algo mal en primer lugar?
Índices
RedShift no tiene índices.
tiene SORT ORDER
que es excepcionalmente similar a un índice agrupado. Es simplemente una lista de campos por los que se ordenan los datos (como un índice agrupado compuesto).
Incluso ha introducido recientemente INTERLEAVED SORT KEYS
. Este es un intento directo de tener múltiples órdenes de clasificación independientes. En lugar de ordenar por a THEN b THEN c
eso efectivamente órdenes de cada uno de ellos al mismo tiempo.
Eso se vuelve posible debido a cómo RedShift implementa su almacén de columnas.
– Cada columna se almacena por separado de cada otra columna
– Cada columna se almacena en bloques de 1 MB
– Cada bloque de 1 MB tiene estadísticas resumidas
Además de ser el patrón de almacenamiento, se convierte efectivamente en un conjunto de pseudoíndices.
– Si los datos están ordenados por a then b then x
– Pero tu quieres z = 1234
– RedShift mira primero las estadísticas del bloque (para la columna z)
– Esas estadísticas dirán los valores mínimos y máximos almacenados por ese bloque
– Esto permite que Redshift salte muchos de esos bloques en ciertas condiciones
– Este pasante permite que RedShift identifique qué bloques leer de las otras columnas
a partir de diciembre de 2019, Redshift tiene una vista previa de vistas materializadas: Anuncio
de la documentación: Una vista materializada contiene un conjunto de resultados calculado previamente, basado en una consulta SQL sobre una o más tablas base. Puede emitir declaraciones SELECT para consultar una vista materializada, de la misma manera que puede consultar otras tablas o vistas en la base de datos. Amazon Redshift devuelve los resultados precalculados de la vista materializada, sin tener que acceder a las tablas base en absoluto. Desde el punto de vista del usuario, los resultados de la consulta se devuelven mucho más rápido en comparación con la recuperación de los mismos datos de las tablas base.
Si posees alguna incertidumbre y forma de ascender nuestro escrito puedes dejar una interpretación y con placer lo leeremos.