查詢設定檔、歷史與洞見

在 Snowflake 進行資料管線自動化

Emily Melhuish

Technical Curriculum Developer, Snowflake

為什麼要看 Query Profile

operations_dashboard

  • Snowflake 可能掃描了根本不該碰的資料
在 Snowflake 進行資料管線自動化

在 Snowsight 開啟 Query Profile

How to access query profile

存取路徑:Monitoring > Query History > [Select Query] > Query Profile 分頁

在 Snowflake 進行資料管線自動化

閱讀運算子樹

Snowsight Query Profile showing operator graph with Most Expensive Nodes panel

在 Snowflake 進行資料管線自動化

Query Profile 揭露的四大常見問題

爆量 Join

  • 產生的列數超過後續可消化的量

未使用 ALL 的 UNION

  • 在 UNION 上方加入彙總以移除重複
  • 成本=增加時間

寫入磁碟(Spill to Disk)

  • 記憶體密集的運算子耗盡記憶體
  • 如彙總、排序或大型 Join 等運算子。

裁剪效率不佳

  • 掃描的分割區數接近總分割區數時可見
  • 篩選條件未有效發揮
在 Snowflake 進行資料管線自動化

Spill to Disk:本地 vs 遠端

  • 本地 spill → warehouse SSD:比記憶體慢,但可接受
  • 遠端 spill → 雲端儲存:慢很多,必須處理

診斷查詢

SELECT 
query_id,
bytes_spilled_to_local_storage,
bytes_spilled_to_remote_storage
FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
WHERE bytes_spilled_to_remote_storage > 0
ORDER BY bytes_spilled_to_remote_storage DESC
LIMIT 10;
在 Snowflake 進行資料管線自動化

QUERY_HISTORY:帳戶層能見度

  • ACCOUNT_USAGE.QUERY_HISTORY:保留 365 天的檢視表
  • INFORMATION_SCHEMA.QUERY_HISTORY() 表格函式,保留 7 天

Screenshot of query history being ran

在 Snowflake 進行資料管線自動化

Query Insights:自動化建議

query insights recommendation

在 Snowflake 進行資料管線自動化

一起來練習吧!

在 Snowflake 進行資料管線自動化

Preparing Video For Download...