AWS在雲端資料倉儲服務Amazon Redshift中,推出具體化檢視表(Materialized View )功能,透過預運算、儲存和最佳化資料存取,可大幅提升資料庫查詢的執行速度。

在關聯式資料庫管理系統中,檢視圖(View)是一種資料庫查詢的虛擬表格,通常在設計結構(Schema)時會用到,可呈現資料的子集、匯總資料,或是跨多個表格存取資料,在使用資料倉儲時,檢視圖也可用來簡化從多表存取工具聚合資料的過程。雖然檢視圖提供了易用性和靈活性,但是卻無法加快資料存取的速度,因為當每次應用程式需要存取檢視圖時,資料庫系統必須要重新執行底層資料查詢。

因此在效能重要的應用中,資料工程師通常會使用CTAS(Create Table as Select)指令,創建一個資料表以保存查詢的資料,應用程式可以像一般表格一樣,使用CTAS創建的表格,但缺點是當基礎資料更新時,CTAS表格中的資料不會跟著更新,由於CTAS定義並不儲存在資料庫中,因此資料庫無從追蹤用來創建CTAS表格的資料,因此也就無法更新CTAS表格。

為此,AWS在Amazon Redshift加入了具體化檢視表功能,具體化檢視表就像是一般檢視表的快取,但不在查詢執行時才建立資料集,具體化檢視表需要須事先創建,進行預運算、儲存和最佳化資料存取,把資料先準備好,讓應用程式存取具體化檢視表的方式,就像是一般的表格一樣。

由於具體化檢視表需要事先創建,且資料已經在資料庫系統中準備好,因此具體化檢視表可大幅提升查詢的執行速度,AWS提到,具體化檢視表對於那些可預測,或是需要一遍又一遍重複執行的查詢特別好用,應用程式可以查詢預先計算好的資料,而非重新對基礎大型表格進行查詢。

當基礎資料表格有更新時,使用者可以利用指令更新具體化檢視表格,更新指令支援增量更新或是全部重新計算的完整更新。現在用戶已經可以在所有AWS地區使用具體化檢視表,這項功能不需要額外支付費用。


Advertisement

更多 iThome相關內容