CACHE 資料表 - AWS Clean Rooms

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

CACHE 資料表

CACHE TABLE 命令會快取現有資料表的資料,或建立和快取包含查詢結果的新資料表。

注意

快取的資料會在整個查詢中保留。

語法、引數和一些範例來自 Apache Spark SQL 參考

語法

CACHE TABLE 命令支援三種語法模式:

使用 AS (不含括號):根據查詢結果建立和快取新資料表。

CACHE TABLE cache_table_identifier AS query;

使用 AS 和括號:函數與第一個語法類似,但使用括號明確分組查詢。

CACHE TABLE cache_table_identifier AS ( query );

不使用 AS:使用 SELECT 陳述式來篩選要快取的資料列,以快取現有的資料表。

CACHE TABLE cache_table_identifier query;

其中:

  • 所有陳述式應以分號 (;) 結尾

  • query 通常是 SELECT 陳述式

  • 查詢的括號是選用的 AS

  • AS 關鍵字為選用

參數

cache_table_identifier

快取資料表的名稱。可以包含選用的資料庫名稱限定詞。

AS

從查詢結果建立和快取新資料表時使用的關鍵字。

query

SELECT 陳述式或其他查詢,定義要快取的資料。

範例

在下列範例中,快取的資料表會針對整個查詢持續存在。快取後,參考 cache_table_identifier 的後續查詢將從快取版本讀取,而不是重新計算或讀取 sourceTable。這可以改善經常存取資料的查詢效能。

從查詢結果建立和快取篩選的資料表

第一個範例示範如何從查詢結果建立和快取新資料表。此命令使用AS關鍵字,而沒有SELECT陳述式的括號。它會建立一個名為 'cache_table_identifier' 的新資料表,只包含來自 'sourceTable' 的資料列,其中狀態為 'active'。它會執行查詢、將結果存放在新資料表中,以及快取新資料表的內容。原始 'sourceTable' 保持不變,後續查詢必須參考 'cache_table_identifier' 才能使用快取的資料。

CACHE TABLE cache_table_identifier AS SELECT * FROM sourceTable WHERE status = 'active';

使用括號 SELECT 陳述式快取查詢結果

第二個範例示範如何在 SELECT 陳述式周圍使用括號,將查詢的結果快取為具有指定名稱 (cache_table_identifier) 的新資料表。此命令會建立一個名為 'cache_table_identifier' 的新資料表,只包含來自 'sourceTable' 的資料列,其中狀態為 'active'。它會執行查詢、將結果存放在新資料表中,以及快取新資料表的內容。原始 'sourceTable' 保持不變。後續查詢必須參考「cache_table_identifier」才能使用快取的資料。

CACHE TABLE cache_table_identifier AS ( SELECT * FROM sourceTable WHERE status = 'active' );

快取具有篩選條件的現有資料表

第三個範例示範如何使用不同的語法快取現有的資料表。此語法會省略 'AS' 關鍵字和括號,通常會從名為 'cache_table_identifier' 的現有資料表快取指定的資料列,而不是建立新的資料表。SELECT 陳述式做為篩選條件,以決定要快取的資料列。

注意

此語法的確切行為因資料庫系統而異。請務必驗證特定 AWS 服務的正確語法。

CACHE TABLE cache_table_identifier SELECT * FROM sourceTable WHERE status = 'active';