Lantide Data

快取與資料重複利用

7. 快取与数据重复利用

快取功能让你将某次查询的结果「暂存」为一张可查询的表,方便在其他查询中直接引用。

7.1 什么是快取表(Cached Table)

当你使用持久标签页执行查询时,查询结果会自动被快取为一张以标签页名称命名的暂存表。这张表会出现在侧边栏 Data 区块下的 Cached 一级节点中,你可以在其他 SQL 查询中直接引用它。

7.2 如何产生快取

  1. 建立一个标签页并撰写 SQL 查询。
  2. 保存标签页(使其成为持久标签页)。
  3. 执行查询 — 结果会自动快取为一张与标签页同名的表。

例如,你有一个名为 clean_orders 的持久标签页,执行后,它的查询结果就会变成一张名为 clean_orders 的快取表。

7.3 在 SQL 中引用其他标签页的快取结果

你可以在任何 SQL 中直接使用快取表的名称。例如:

SELECT category, SUM(amount) AS total
FROM "clean_orders"
GROUP BY category

这里的 "clean_orders" 就是另一个持久标签页的快取结果。

提示: 展开 DataCached,双击快取表名称,即可自动将其插入编辑器。

7.4 管理快取(查看 / 刷新 / 删除)

快取表清单会随 Data 标题列的 Refresh(重新加载图标)一并更新——该按钮会同时重新扫描本地文件、刷新快取列表、并对已加载的外部连接重新抓取 schema。

Cached (n) 父列(清单标题列):

Cached (n) 父列右键可:

操作 说明
Sort by… NameModified time 四种组合;默认为修改时间最新优先(见 §4.1「列表排序」)
Clear Agent Cache 删除目前工作区内所有 Agent 快取
Clear All Cache 删除目前工作区内全部快取表(含 persist 与 agent)

批量清除进行中时,上述选单项会暂时停用。

单一快取项目:

每个快取项目以单行呈现:快取表名称在左,更新时间在右。右键点击快取项目可打开操作选单。

所有快取项目共有的操作:

操作 说明
SELECT 100 rows SELECT * FROM "表名" LIMIT 100 插入编辑器,快速预览
查看 SQL 打开只读对话框,显示产生该快取的 SQL;可复制或插入编辑器
Delete 删除此快取表

由持久标签页产生的快取表(persist 快取) 另提供:

操作 说明
Run 重新执行产生该快取的标签页 SQL
Source Run 执行来源执行(见第 8 章)
Open Tab 打开产生该快取的持久标签页
Check Lineage 查看血统分析图(见第 8 章)

由 AI Agent 产生的快取表(agent 快取):

AI 在后台多步分析时,系统会依条件物化策略将中间结果注册为可查表(见 §12.6)。agent 快取不参与 Source Run,但可在其他 SQL 中 FROM 引用。查看 SQL 时,副标题显示「Agent 快取」;persist 快取显示「持久标签页快取」,SQL 通常来自标签页内容。

若 SQL 已不可用(例如旧版快取或结果已过期),对话框会显示提示文案,仍可删除快取或重新执行对应标签页。

删除快取与对话步骤记录: 右键 Delete 会从 DuckDB 移除快取表,并在对话级 Query Step Ledger 将对应步骤标记为 deleted(不删除历史 JSON)。之后 AI 的 Recent Query Steps 摘要与 list_query_steps 默认不再列出已删快取;若需重新分析,Agent 应重新执行查询并物化新快取。

注意: 快取表在以下情况会被清除:切换工作区、重新启动应用程序。需要时,重新执行对应标签页即可重新产生。

[图片] 侧边栏 Data 下的 Cached 节点,显示快取表列表与右键选单

[图片] SQL 引用快取表的示例

设计说明: 快取语意、条件物化与查看 SQL 的设计 rationale 见 统一查询层 §7.1。