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

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

步驟 3:設定表格的輸送量容量

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

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

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

計算插入WCUs所需的平均數

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

要確定每秒插入一行需WCUs要多少,請將平均行大小(以字節為單位)除以 1024,然後四捨五入到最接近的整數。

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

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

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

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

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

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

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

如需完整的語言參考,請參閱ALTER TABLE