全部產品
Search
文件中心

Tablestore:讀寫輸送量

更新時間:Oct 16, 2024

讀/寫輸送量的單位為讀服務能力單元和寫服務能力單元,簡稱 CU(Capacity Unit),是資料讀寫操作的最小計費單位。當通過Tablestore的 API 對資料表進行讀寫操作時,會消耗對應的寫服務能力單元和讀服務能力單元。

CU 計算規則

  • 1 單位讀服務能力單元表示從資料表中讀一條 4 KB 資料。

  • 1 單位寫服務能力單元表示向資料表寫一條 4 KB 資料。

  • 操作資料大小不足 4 KB 的部分向上取整,例如寫入 7.6 KB 資料消耗 2 單位寫服務能力單元,讀出 0.1 KB 資料消耗 1 單位讀服務能力單元。

按量讀/寫輸送量

按量讀/寫輸送量是資料表在每秒實際消耗的讀/寫輸送量中超出預留讀/寫輸送量的部分,統計周期為 1 秒。每個小時內,Tablestore對預留讀/寫輸送量取平均值,對按量讀/寫輸送量取累加值來作為使用者實際消耗的輸送量。

由於按量讀/寫輸送量的模式無法預估需要為資料表預留的計算資源,Tablestore需要提供足夠的服務能力以應對突發的訪問高峰,所以按量讀/寫輸送量的單價高於預留讀/寫輸送量的單價。合理設定資料表的預留讀/寫輸送量能夠有效地降低使用成本。

重要

由於按量讀/寫輸送量無法準確估計需要預留的資源,在某些極端訪問情況下,如果單個分區鍵每秒的訪問需要消耗 10000 CU,Tablestore可能會返回 OTSCapacityUnitExhausted 錯誤。此時需要使用退避重試等策略來減少訪問該資料表的頻率。

預留讀/寫輸送量

說明

使用多元索引時,Tablestore會根據索引資料規模自動化佈建一個預留讀輸送量。更多資訊,請參見多元索引計量計費。多元索引中的預留讀輸送量配置不支援調整,如果期望減少該部分開銷,只能通過最佳化索引大小或行數來解決。

預留讀/寫輸送量是高效能型執行個體中資料表的一個屬性。在建立資料表時,可以為資料表指定預留讀/寫輸送量。

  • 當設定的預留讀/寫輸送量大於 0 時,Tablestore會為資料表分配和預留相應的資源,每秒對資料表的訪問不超過預留讀/寫輸送量時將按照預留讀/寫輸送量的單價計費。

  • 當設定的預留讀/寫輸送量等於 0 時,Tablestore不會為資料表分配和預留相應的資源。

    說明

    不存在的資料表將視作預留讀/寫輸送量均為 0,訪問不存在的資料表將根據操作類型消耗 1 個按量讀 CU 或者 1 個按量寫 CU。

由於預留讀/寫輸送量在單價上低於按量讀/寫輸送量,配置合適的預留讀/寫輸送量可以進一步降低成本。例如資料表建立後如果需要匯入大量資料,可以設定較大的預留寫輸送量,能夠以較低的寫成本匯入資料,當資料匯入完成後,再將預留讀/寫輸送量下調。

使用限制

  • 容量型執行個體下的資料表不支援設定預留讀/寫輸送量。

  • 當預留讀/寫輸送量大於 0 時,即使沒有讀寫請求也會進行計費,所以Tablestore限制使用者能夠自行設定的單個資料表預留讀/寫輸送量最大為 100000(預留讀輸送量和預留寫輸送量分別不超過 100000)。當使用者對單個資料表的預留讀/寫輸送量需求超出 100000 時,可以提交工單提高預留讀/寫輸送量。

預留讀/寫輸送量更新規則

通過 UpdateTable 介面可以動態修改表的預留讀/寫輸送量配置。預留讀/寫輸送量的更新規則如下:

  • 每個自然日內(UTC時間 00:00:00 到第二天的 00:00:00 ,北京時間早上 8 點到第二天早上 8 點),上調或者下調預留讀/寫輸送量的總次數不做限制,一張資料表上的兩次更新的間隔必須大於 1 分鐘。

  • 預留讀/寫輸送量調整完成後 1 分鐘內生效。

計算樣本

假如資料表設定的預留讀輸送量為 100 CU,連續 3 秒的訪問情況如下:

  • T0:讀操作實際消耗 120 CU 讀輸送量,則這 1 秒內預留輸送量為 100 CU,消耗的按量讀輸送量為 20 CU。

  • T1:讀操作實際消耗 95 CU 讀輸送量,則這 1 秒內預留輸送量為 100 CU,消耗的按量讀輸送量為 0 CU。

  • T2:讀操作實際消耗 110 CU 讀輸送量,則這 1 秒內預留輸送量為 100 CU,消耗的按量讀輸送量為 10 CU。

T0 到 T2 時刻消耗的讀輸送量為:100 CU 預留讀輸送量以及 30 CU 按量讀輸送量。