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的有效选项是NONEDISK_ONLYDISK_ONLY_2DISK_ONLY_3MEMORY_ONLYMEMORY_ONLY_2MEMORY_ONLY_SERMEMORY_ONLY_SER_2MEMORY_AND_DISKMEMORY_AND_DISK_2MEMORY_AND_DISK_SERMEMORY_AND_DISK_SER_2OFF_HEAP
当为
storageLevel设置无效值时会抛出异常。如果未使用OPTIONS子句明确设置storageLevel,则默认storageLevel设置为MEMORY_AND_DISK。 -
query
一个生成要缓存行的查询。它可以是以下格式之一
- 一个
SELECT语句 - 一个
TABLE语句 - 一个
FROM语句
- 一个
示例
CACHE TABLE testCache OPTIONS ('storageLevel' 'DISK_ONLY') SELECT * FROM testData;