CACHE TABLE

适用于:check marked yes Databricks Runtime

在 Apache Spark 缓存中使用给定的存储级别来缓存表的内容或查询的输出。 如果缓存了某个查询,则会为此查询创建临时视图。 这样就会减少未来查询中对原始文件的扫描。

语法

CACHE [ LAZY ] TABLE table_name
  [ OPTIONS ( 'storageLevel' [ = ] value ) ] [ [ AS ] query ]

有关磁盘缓存与 Apache Spark 缓存之间的差别,请参阅自动和手动缓存

参数

  • LAZY

    只在首次使用表时才对表进行缓存,而不是立即缓存。

  • table_name

    标识要缓存的 Delta 表或视图。 名称不得包含时态规范。 如果找不到表,Azure Databricks 会引发 TABLE_OR_VIEW_NOT_FOUND 错误。

  • OPTIONS ( 'storageLevel' [ = ] value )

    具有 storageLevel 键值对的 OPTIONS 子句。 使用 storageLevel 以外的键时,将会发出警告。 storageLevel 的有效选项是:

    • NONE
      • DISK_ONLY
      • DISK_ONLY_2
      • 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

  • 查询

    生成要缓存的行的查询。 可以采用以下格式之一:

    • SELECT 语句
    • TABLE 语句
    • FROM 语句

示例

> CACHE TABLE testCache OPTIONS ('storageLevel' 'DISK_ONLY') SELECT * FROM testData;