Publicado en: Dec 21, 2017

Amazon Redshift usa ahora la materialización tardía para reducir la cantidad de datos analizados y mejorar el desempeño de las consultas con filtros de predicado. 

La materialización tardía (filtrado a nivel de fila) reduce las operaciones de E/S para las consultas con filtros al aplicar la agrupación por lotes y la factorización al filtrado de predicados antes de recuperar bloques de datos en la columna siguiente. Por ejemplo, imagine una consulta con filtros en dos columnas que se aplica a una tabla CUSTOMER_DETAIL con un millón de filas: 

SELECT FIRST_NAME, LAST_NAME, EMAIL, CITY, SALES_REP, 
FROM CUSTOMER_DETAIL 
WHERE CUSTOMER_SINCE_DATE < ’01-01-2000’
AND CUSTOMER_STATUS_LEVEL IN (’Gold’ , ’Silver’) ;

Con la materialización tardía, Redshift recupera un lote de datos de las columnas CUSTOMER_SINCE_DATE y CUSTOMER_STATUS_LEVEL y, después, aplica los predicados correspondientes. Si tan solo el 10% de las filas de la tabla CUSTOMER_DETAIL se ajustan a los filtros del predicado, seguramente Redshift pueda ahorrarse un 90% de las operaciones de E/S para las columnas restantes, mejorando así el desempeño de las consultas. Además, este mejora aún más al analizar las columnas por lotes en lugar de fila por fila. 

Con esta versión, hemos añadido una nueva columna, "is_rlf_scan", a la tabla STL_SCAN. Si una consulta usa la materialización tardía, esta columna tendrá un valor de "t" o TRUE. De lo contrario, tendrá un valor de "f" o FALSE. 

Amazon Redshift habilita la materialización tardía de forma predeterminada. Se activa automáticamente para una consulta cuando Redshift detecta que se puede mejorar el rendimiento de esta. Con la última versión, 1.0.1583, la materialización tardía está disponible en todas las regiones de AWS.