微分割與資料叢集化

Snowflake 架構

Emily Melhuish

Technical Curriculum Developer, Snowflake

查詢大型資料表

範例:Subscription

USER_ID REGISTRATION_DATE USER_NAME
912930 2026-04-01 JANEDOE
912931 2026-04-06 JOHNDOE
912932 2026-04-12 JIMMYDOE
... ... ...

這個查詢需要從此表讀取多少資料?

Snowflake 架構

微分割(Micro-Partitions)

範例:微分割與欄式儲存

  • 在微分割內,各欄獨立儲存並壓縮
  • Snowflake 只讀取查詢需要的欄位
Snowflake 架構

中繼資料(Metadata)

含中繼資料的微分割範例

  • Snowflake 為每個微分割儲存中繼資料
  • 儲存在雲端服務層
Snowflake 架構

分割修剪(Partition Pruning)

修剪範例

Snowflake 架構

分割修剪(Partition Pruning)

選取修剪選項的範例

  • Snowflake 會略過不可能包含查詢所需資料的微分割。
  • 僅讀取相關區塊=分割修剪
Snowflake 架構

叢集化(Clustering)

範例:微分割與欄式儲存

  • 依日期的查詢通常修剪效果佳(例如時間序列)

  • 若值分散於多個分割(例如地區),修剪幫助不大

  • 叢集鍵(Clustering key): Snowflake 會依該欄組織微分割

Snowflake 架構

叢集鍵:何時使用

clustering_key_v5.png

Snowflake 架構

叢集鍵:基數與成本

clustering_key_v5.png

Snowflake 架構

一起來練習吧!

Snowflake 架構

Preparing Video For Download...