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。