CACHE TABLE
描述
CACHE TABLE
语句使用给定的存储级别缓存表的内容或查询的输出。如果查询被缓存,将为该查询创建一个临时视图。这减少了未来查询中对原始文件的扫描。
语法
CACHE [ LAZY ] TABLE table_identifier
[ OPTIONS ( 'storageLevel' [ = ] value ) ] [ [ AS ] query ]
参数
-
LAZY
仅在表首次使用时缓存,而不是立即缓存。
-
table_identifier
指定要缓存的表或视图名称。表或视图名称可以选择性地用数据库名称限定。
语法:
[ database_name. ] table_name
-
OPTIONS ( ‘storageLevel’ [ = ] value )
带有
storageLevel
键值对的OPTIONS
子句。当使用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;