範圍 (資料分區)

數據表會分割成 範圍數據分區。 每個範圍都是數據表的水準區段,其中包含數據與元數據,例如其建立時間和選擇性標記。 所有這些範圍的聯集包含數據表的整個數據集。 範圍會平均分散到叢集中的節點,而且會同時在本機 SSD 和記憶體中快取,以獲得最佳效能。

範圍是不可變的,這表示可以查詢、重新指派給不同的節點,或從數據表中卸除,但從未修改過。 數據修改會藉由建立新的範圍,並以交易方式交換舊範圍與新範圍來進行。 範圍不變性提供的優點,例如提升強固性和輕鬆重新復原至先前的快照集。

範圍會保存實際排列在數據行中的記錄集合,以有效編碼和壓縮數據。 為了維持查詢效率,較小的範圍會根據設定的 合併原則分區化原則合併成較大的範圍。 合併範圍可減少管理額外負荷,並導致索引優化和改善壓縮。

常見的範圍生命週期如下所示:

  1. 範圍是由擷取作業所建立。
  2. 範圍會與其他範圍合併。
  3. 合併的範圍 (可能追蹤其譜系到其他範圍) ,最終會因為 保留原則而卸除。

範圍建立時間

每個範圍會追蹤兩個 日期時間 值: MinCreatedOnMaxCreatedOn。 這些值一開始相同,但當範圍與其他範圍合併時可能會變更。 當範圍與其他範圍合併時,新的值會根據合併範圍的原始最小值和最大值而定。

範圍建立時間用於下列用途:

  • 保留:稍早建立的範圍會稍早卸除。
  • 快取:最近建立的範圍會保留在 經常性快取中。
  • 取樣:使用 像是 take 等查詢作業時,建議使用最近的範圍。

若要覆寫範圍建立時間,請在數據擷取屬性中提供替代creationTime專案。 這很適合用於保留用途,例如,如果您想要重新擷取數據,但不想讓它顯示為延遲。

注意

根據時間移除範圍的計算會使用合併範圍內最新範圍的建立時間。