全部產品
Search
文件中心

Realtime Compute for Apache Flink:資料分桶

更新時間:Aug 11, 2026

本文將介紹Fluss表的分桶策略。

分桶(Bucketing)

分桶策略是一種資料分布技術,通過將表中的資料劃分為多個資料單元並分布到多個節點中,以實現高效能的資料存放區和計算。在建立 Fluss 表時,你可以通過設定 'bucket.num' = '' 屬性來指定分桶數量,詳情請參見管理表。

目前,Fluss 支援三種分桶策略:雜湊分桶(Hash Bucketing)、粘性分桶(Sticky Bucketing) 和輪詢分桶(Round-Robin Bucketing)。

說明
  • 主鍵表(Primary-Key Tables)只能使用雜湊分桶。

  • 日誌表(Log Tables)預設使用粘性分桶,但也可以使用其他兩種分桶策略。

雜湊分桶(Hash Bucketing)

雜湊分桶其優勢在於能夠將資料均勻分布至多個節點,充分發揮分散式運算的優勢,同時具備出色的可擴充性(支援動態調整分桶數量或叢集規模),特別適用于海量資料的處理情境。

使用方法:通過為表設定 'bucket.key' = 'col1, col2' 屬性來指定用於雜湊分桶的分桶鍵。主鍵表預設使用主鍵(不包括分區鍵)作為分桶鍵。

粘性分桶(Sticky Bucketing)

粘性分桶可以在寫入日誌表時實現更大的批次寫入,從而減少寫入延遲。每次發送一批資料時,粘性分桶會自動切換目標分桶。隨著時間的推移,資料記錄將逐漸均勻分布至所有分桶中。粘性分桶是日誌表的預設分桶策略,這是由於日誌表底層採用 Apache Arrow 資料格式,而該格式在處理巨量資料批次時表現出極高的效率,因此粘性分桶能夠更好地發揮其效能優勢。

使用方法:通過設定 'client.writer.bucket.no-key-assigner'='sticky' 屬性來啟用此策略。主鍵表不支援此策略。

輪詢分桶(Round-Robin Bucketing)

輪詢分桶是一種簡單的策略,在每次寫入記錄前隨機播放一個分桶。這種策略適用於資料分布相對均勻、不存在明顯資料扭曲的情境。

使用方法:通過設定 'client.writer.bucket.no-key-assigner'='round_robin' 屬性來啟用此策略。主鍵表不支援此策略。