快取資料表
說明
快取資料表
陳述式會快取資料表的內容或查詢的輸出,並使用指定的儲存層級。如果快取查詢,則會為此查詢建立暫時檢視。這會減少在未來查詢中掃描原始檔案的次數。
語法
CACHE [ LAZY ] TABLE table_identifier
[ OPTIONS ( 'storageLevel' [ = ] value ) ] [ [ AS ] query ]
參數
-
LAZY
只在第一次使用資料表時快取資料表,而不是立即快取。
-
table_identifier
指定要快取的資料表或檢視名稱。資料表或檢視名稱可以選擇性地加上資料庫名稱。
語法:
[ database_name. ] table_name
-
OPTIONS ( ‘storageLevel’ [ = ] 值 )
OPTIONS
子句加上storageLevel
鍵值對。如果使用storageLevel
以外的鍵,則會發出警告。storageLevel
的有效選項為NONE
DISK_ONLY
DISK_ONLY_2
DISK_ONLY_3
MEMORY_ONLY
MEMORY_ONLY_2
MEMORY_ONLY_SER
MEMORY_ONLY_SER_2
MEMORY_AND_DISK
MEMORY_AND_DISK_2
MEMORY_AND_DISK_SER
MEMORY_AND_DISK_SER_2
OFF_HEAP
如果設定
storageLevel
的值無效,則會擲回例外。如果沒有使用OPTIONS
子句明確設定storageLevel
,則預設的storageLevel
會設定為MEMORY_AND_DISK
。 -
query
產生要快取列的查詢。它可以採用下列其中一種格式
SELECT
陳述式TABLE
陳述式FROM
陳述式
範例
CACHE TABLE testCache OPTIONS ('storageLevel' 'DISK_ONLY') SELECT * FROM testData;