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