自動具體化視觀表 - Amazon Redshift

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

自動具體化視觀表

本主題說明 Amazon Redshift 如何使用自動化具體化視觀表來改善效能。Amazon Redshift 會根據資料庫活動和效能自動建立具體化檢視。根據預設,Amazon Redshift 會使用自動化具體化檢視。

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

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

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

注意

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

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

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

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

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

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

  • 自動具體化檢視可由查詢或子查詢啟動和建立,只要它包含子GROUP BY句或下列彙總函數之一:SUM、MIN、 COUNTMAX或 AVG。但不能包含以下任何項目:

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

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

    • 任何彙總函數,包括 DISTINCT

    • 任何範圍函數

    • SELECT DISTINCT 或 HAVING子句

    • 其他具體化視觀表

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

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

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

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

自動具體化視觀表限制

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

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

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

自動具體化視觀表的計費

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

其他資源

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

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