步驟 3:設定目標資料表的輸送量容量 - Amazon Keyspaces (適用於 Apache Cassandra)

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

步驟 3:設定目標資料表的輸送量容量

本教學課程說明如何調整 DSBulk,以便在設定的時間範圍內載入資料。因為您知道事先執行多少讀取和寫入,因此請使用佈建的容量模式。完成資料傳輸後,您應該設定表格的容量模式,以符合應用程式的流量模式。若要進一步了解容量管理,請參閱Amazon Keyspaces 中的無服務器資源管理(阿帕奇卡桑德拉)

使用佈建的容量模式,您可以指定預先佈建至表格的讀取和寫入容量。寫入容量按小時計費,並以寫入容量單位 (WCU) 計量。每個 WCU 都有足夠的寫入容量,可支援每秒寫入 1 KB 的資料。載入資料時,寫入速率必須低於目標資料表上設定的最大 WCU (參數:write_capacity_units)。

根據預設,您最多可以在一個表格佈建 40,000 個 WCU,在帳戶中的所有表格中佈建最多 80,000 個 WCU。如果您需要額外容量,可以在 Service Quotas 主控台中要求增加配額。如需配額的詳細資訊,請參閱 配額 Amazon Keyspaces(阿帕奇卡桑德拉)

計算插入所需的 WCU 平均數

每秒插入 1 KB 的資料需要 1 個 WCU。如果您的 CSV 檔案有 36 萬個資料列,而您想要在 1 小時內載入所有資料,您必須每秒寫入 100 個資料列 (36 萬個資料列/60 分鐘/60 秒 = 每秒 100 個資料列)。如果每個資料列最多有 1 KB 的資料,若要每秒插入 100 個資料列,您必須將 100 個 WCU 佈建至資料表。如果每一列都有 1.5 KB 的資料,您需要兩個 WCU 才能每秒插入一個資料列。因此,若要每秒插入 100 個資料列,您必須佈建 200 個 WCU。

若要判斷每秒需要插入一個資料列的 WCU 數目,請將平均資料列大小 (以位元組為單位) 除以 1024,然後四捨五入至最接近的整數。

例如,如果平均資料列大小為 3000 個位元組,則需要三個 WCU 才能每秒插入一個資料列。

ROUNDUP(3000 / 1024) = ROUNDUP(2.93) = 3 WCUs
計算資料載入時間和容量

現在您已知道 CSV 檔案中的平均大小和列數,您可以計算在指定時間內載入資料所需的 WCU 數量,以及使用不同的 WCU 設定將所有資料載入 CSV 檔案中所需的大約時間。

例如,如果檔案中的每一列都是 1 KB,而您的 CSV 檔案中有 1,000,000 個資料列,若要在 1 小時內載入資料,您必須在該小時內至少佈建 278 個 WCU 至資料表。

1,000,000 rows * 1 KBs = 1,000,000 KBs 1,000,000 KBs / 3600 seconds =277.8 KBs / second = 278 WCUs
設定佈建的容量設定

您可以在建立資料表時或使用ALTER TABLE指令來設定資料表的寫入容量設定。以下是使用ALTER TABLE命令更改表格佈建容量設定的語法。

ALTER TABLE catalog.book_awards WITH custom_properties={'capacity_mode':{'throughput_mode': 'PROVISIONED', 'read_capacity_units': 100, 'write_capacity_units': 278}} ;

如需完整的語言參考資料,請參閱CREATE TABLEALTER TABLE