自動具體化視觀表 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

自動具體化視觀表

具體化視觀表是改善 Amazon Redshift 中查詢效能的強大工具。其透過儲存預先計算的結果集來做到這一點。類似的查詢不必每次都重新執行相同的邏輯,因為它們可以從現有的結果集擷取記錄。開發人員和分析師會在分析工作負載之後建立具體化視觀表,以判斷哪些查詢可以受益,以及每個具體化視觀表的維護成本是否值得。隨著工作負載的增長或變化,這些具體化視觀表必須經過審查,以確保它們繼續提供實際的效能優勢。

Redshift 中的自動具體化視觀表 (AutoMV) 功能提供與使用者建立的具體化視觀表相同的效能優勢。Amazon Redshift 會使用機器學習持續監控工作負載,並在有益的情況下建立新的具體化視觀表。AutoMV 會平衡建立和維持具體化視觀表最新狀態的成本,以及查詢延遲的預期效益。系統也會監控先前建立的 AutoMV,並在它們不再有利時將其捨棄。

AutoMV 行為和功能與使用者建立的具體化視觀表相同。其使用相同的準則和限制以自動且累加的方式進行重新整理。就像使用者建立的具體化視觀表一樣,自動查詢重寫以使用具體化視檢視 會識別可受益於系統建立之 AutoMV 的查詢。它會自動重寫這些查詢以使用 AutoMV,從而改善查詢效能。開發人員不需要修改查詢即可利用 AutoMV。

注意

自動具體化視觀表會間歇性重新整理。重寫為使用 AutoMV 的查詢永遠會傳回最新的結果。當 Redshift 偵測到資料不是最新的時候,就不會將查詢重寫為從自動具體化視觀表讀取。相反地,查詢會從基底資料表中選取最新資料。

任何具有重複使用之查詢的工作負載都可以受益於 AutoMV。常用案例包括:

  • 儀表板 - 儀表板廣泛用於提供關鍵業務指標 (KPI)、事件、趨勢和其他指標的快速檢視。它們通常具有包含圖表和資料表的通用版面配置,但會顯示不同的檢視來用於篩選或維度選取操作 (例如向下鑽研)。儀表板通常有一組共同的查詢,以不同的參數重複使用。儀表板查詢可以從自動具體化視觀表中獲益匪淺。

  • 報告 - 報告查詢可以安排在不同的頻率下進行,根據業務需求和報告的類型。此外,它們可以是自動或隨需形式。報告查詢的一個共同特徵是可以長時間執行且屬於資源密集型。使用 AutoMV 時,這些查詢不需要在每次執行時重新計算,這會減少 Redshift 中每個查詢的執行期和資源使用率。

若要關閉自動具體化視觀表,請將 auto_mv 參數群組更新為 false。如需詳細資訊,請參閱《Amazon Redshift 叢集管理指南》中的 Amazon Redshift 參數群組

自動具體化視觀表的 SQL 範圍和考量

  • 自動具體化視觀表可以由查詢或子查詢啟動和建立,前提是它包含 GROUP BY 子句或下列其中一個彙總函數:SUM、COUNT、MIN、MAX 或 AVG。但不能包含以下任何項目:

    • 左側、右側或完整外部聯結

    • SUM、COUNT、MIN、MAX 與 AVG 以外的彙總函數。(這些特定函式可與自動查詢重寫搭配使用。)

    • 任何包含 DISTINCT 的彙總函數

    • 任何範圍函數

    • SELECT DISTINCT 或 HAVING 子句

    • 其他具體化視觀表

    不保證符合準則的查詢會啟動自動具體化視觀表的建立。系統會根據其對工作負載的預期效益和要維護的資源成本 (包括系統要重新整理的成本),決定要從哪些候選項目建立檢視。每個產生的具體化視觀表都可透過自動查詢重寫來使用。

  • 即使 AutoMV 可能是由子查詢或集合運算子的個別支段啟動,產生的具體化視觀表也不會包含子查詢或集合運算子。

  • 若要判斷 AutoMV 是否用於查詢,請檢視 EXPLAIN 計劃並在輸出中尋找 %_auto_mv_%。如需詳細資訊,請參閱 EXPLAIN

  • 外部資料表 (例如資料共用和聯合資料表) 不支援自動具體化視觀表。

自動具體化視觀表限制

下列是使用自動具體化視觀表的限制:

  • AutoMV 的最大數目 - 叢集中每個資料庫的自動具體化視觀表限制為 200 個。

  • 儲存空間和容量 - AutoMV 的一個重要特點是,它是使用備用背景週期來執行,以協助實現使用者工作負載不受影響的目的。如果叢集忙碌或儲存空間不足,AutoMV 會停止其活動。具體而言,在叢集總容量的 80% 時,不會建立新的自動具體化視觀表。在總容量的 90% 時,它們可能會被捨棄,以在不降低校能的情況下繼續使用者工作負載。如需決定叢集容量的相關資訊,請參閱 STV_NODE_STORAGE_CAPACITY

自動具體化視觀表的計費

Amazon Redshift 的自動最佳化功能可建立和重新整理自動具體化視觀表。此程序的運算資源無須付費。自動具體化視觀表的儲存費用是以一般儲存費率計費。如需詳細資訊,請參閱 Amazon Redshift 定價

其他資源

下列部落格文章提供有關自動具體化視觀表的進一步說明 其中詳細介紹了其建立、維護和捨棄方式。還說明了推動這些決策的基礎演算法:使用自動具體化視觀表最佳化 Amazon Redshift 查詢效能

此影片從具體化視觀表的說明開始,並示範其如何改善效能及節省資源。然後,透過程序流程動畫和現場示範,提供自動具體化視觀表的深入說明。