Veröffentlicht am: Dec 21, 2017

Amazon Redshift verwendet jetzt eine späte Materialisierung, um die Menge der überprüften Daten zu reduzieren und die Leistung für Abfragen mit Prädikatfiltern zu verbessern.

Die späte Materialisierung (Filterung auf Zeilenebene) reduziert die E/A für Abfragen mit Filtern, indem sie beim Filtern von Prädikaten eine Stapelverarbeitung und Faktorisierung anwendet, bevor Datenblöcke in die nächste Spalte geladen werden. Betrachten Sie beispielsweise eine Abfrage mit Filtern für zwei Spalten für eine CUSTOMER_DETAIL-Tabelle mit einer Million Zeilen:

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’) ;

Mit der späten Materialisierung lädt Redshift einen Stapel Daten aus den Spalten CUSTOMER_SINCE_DATE und CUSTOMER_STATUS_LEVEL und wendet dann die jeweiligen Prädikate an. Wenn nur 10 % der CUSTOMER_DETAIL-Tabelle die Prädikatfilter erfüllen, kann Redshift damit potenziell 90 % des E/A für die verbleibenden Spalten einsparen und damit die Abfrageleistung verbessern. Wenn die Spalten in Stapeln statt jeweils als Zeilen durchsucht werden, wird die Leistung weiter verbessert. 

Mit dieser Veröffentlichung haben wir die neue Spalte ‘is_rlf_scan’ für die STL_SCAN-Tabelle eingeführt. Wenn eine Abfrage eine späte Materialisierung verwendet, hat diese Spalte den Wert 't' oder TRUE, andernfalls hat sie den Wert 'f' oder FALSE.

Amazon Redshift unterstützt standardmäßig eine späte Materialisierung. Sie wird für eine Abfrage automatisch ausgelöst, wenn Redshift erkennt, dass die Leistung für die Abfrage erhöht werden kann. Seit dem neuesten Build 1.0.1583 ist die späte Materialisierung in allen AWS-Regionen verfügbar.