게시된 날짜: Dec 21, 2017
Amazon Redshift는 이제 LM(Late Materialization)을 사용하여 스캔되는 데이터의 양을 줄이고, 조건자 필터로 쿼리 성능을 높입니다.
LM(Late Materialization)(행 수준 필터링)은 다음 열의 데이터 블록을 가져오기 전에 조건자 필터링을 일괄 처리하고 팩터링함으로써 필터로 쿼리 I/O를 줄입니다. 예를 들어 두 열에 대한 필터를 포함하는 쿼리가 수백만 개의 행이 있는 CUSTOMER_DETAIL 테이블에서 수행되는 경우를 생각해 보십시오.
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’) ;
Redshift는 LM(Late Materialization)을 사용하여 CUSTOMER_SINCE_DATE 및 CUSTOMER_STATUS_LEVEL 열에서 일괄 데이터를 가져온 후 해당 조건자를 적용합니다. CUSTOMER_DETAIL 테이블 행의 10%만 조건자 필터를 충족하는 경우 Redshift는 나머지 열을 위해 I/O의 90%를 저장할 수 있으며 따라서 쿼리 성능이 향상됩니다. 또한 한 번에 한 행씩 스캔하는 대신 열을 일괄로 스캔하므로 성능이 더욱 향상됩니다.
이 릴리스에서는 STL_SCAN 테이블에 ‘is_rlf_scan’ 열을 새로 추가했습니다. 쿼리가 LM(Late Materialization)을 사용하면 이 열에 't'(TRUE) 값이 오고, LM(Late Materialization)을 사용하지 않으면 'f'(FALSE) 값이 옵니다.
Amazon Redshift는 기본적으로 LM(Late Materialization)을 활성화합니다. Redshift가 쿼리 성능 향상이 가능하다고 감지하면 쿼리에 대해 자동으로 LM(Late Materialization)이 활성화됩니다. 최신 빌드 1.0.1583에서는 모든 AWS 리전에서 LM(Late Materialization)을 사용할 수 있습니다.