You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Databricks同一集群的不同Notebook中复用缓存表?

Databricks跨Notebook复用缓存表方案

方案1:全局临时视图+缓存

全局临时视图的生命周期与集群绑定,同一集群下所有Notebook均可访问,搭配缓存后无需重复计算。

  • 操作步骤:
    1. 在原Notebook中创建全局临时视图并缓存:
      CREATE OR REPLACE GLOBAL TEMP VIEW work_details AS SELECT ...;
      CACHE TABLE global_temp.work_details;
      
    2. 在其他Notebook中直接访问缓存的视图:
      SELECT * FROM global_temp.work_details;
      -- 后续关联查询直接使用,缓存生效
      

方案2:持久化外部表+缓存

将查询结果写入外部表,元数据存储在Metastore中,同一Workspace、同一集群的Notebook都能访问,缓存后集群内共享。

  • 操作步骤:
    1. 在原Notebook中创建外部表并缓存:
      CREATE TABLE work_details
      LOCATION '/dbfs/path/to/your/storage' -- 指定DBFS或云存储路径
      AS SELECT ...;
      CACHE TABLE work_details;
      
    2. 在其他Notebook中直接访问该表,缓存自动生效:
      SELECT * FROM work_details;
      -- 关联查询直接使用,无需重新计算或缓存
      

方案3:Delta Lake表+缓存

如果需要ACID支持或数据更新能力,用Delta表存储结果后缓存,性能更稳定,跨Notebook复用逻辑一致。

  • 操作步骤:
    1. 创建Delta表并缓存:
      CREATE OR REPLACE TABLE work_details
      USING DELTA
      LOCATION '/dbfs/path/to/delta/storage'
      AS SELECT ...;
      CACHE TABLE work_details;
      
    2. 其他Notebook直接访问Delta表,缓存生效:
      SELECT * FROM work_details;
      

注意事项

  • 全局临时视图的缓存随集群停止失效,适合临时共享场景;外部表/Delta表的数据会持久化,下次集群启动后重新缓存即可快速加载。
  • 需监控集群内存占用,避免缓存因内存不足被自动清除。

内容的提问来源于stack exchange,提问作者Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 06:18:21