CACHE TABLE
描述
CACHE TABLE
语句使用给定的存储级别缓存表的内容或查询的输出。 如果缓存了查询,则将为此查询创建一个临时视图。 这减少了将来查询中原始文件的扫描。
语法
CACHE [ LAZY ] TABLE table_identifier
[ OPTIONS ( 'storageLevel' [ = ] value ) ] [ [ AS ] query ]
参数
-
LAZY
仅在第一次使用时缓存表,而不是立即缓存。
-
table_identifier
指定要缓存的表或视图的名称。 表或视图名称可以选择使用数据库名称进行限定。
语法:
[ database_name. ] table_name
-
OPTIONS ( ‘storageLevel’ [ = ] value )
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
生成要缓存的行的查询。它可以采用以下格式之一
- a
SELECT
语句 - a
TABLE
语句 - a
FROM
语句
- a
示例
CACHE TABLE testCache OPTIONS ('storageLevel' 'DISK_ONLY') SELECT * FROM testData;