本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 3:为表设置吞吐量
本教程演示了如何调整 DSBulk,以便在设定的时间段内加载数据。由于您事先知道要执行多少读取和写入,因此请使用预置容量模式。完成数据传输后,应设置表的容量模式以匹配应用程序的流量模式。要了解有关容量管理的更多信息,请参阅Amazon Keyspaces 中的无服务器资源管理(针对 Apache Cassandra)。
在预置容量模式下,您可以提前指定要为表预置多少读取和写入容量。写入容量按小时计费,并以写入容量单位 (WCU) 计量。每个 WCU 的写入容量足以支持每秒写入 1 KB 的数据。加载数据时,写入速率必须低于目标表上设置的最大 WCU(参数:write_capacity_units
)。
默认情况下,您最多可以为一个表配置 40,000 个 WCU,在账户中的所有表中预置 80,000 个 WCU。如果您需要额外容量,可以在Service Quotas 控制台中请求增加配额
计算插入所需的 WCU 的平均数量
每秒插入 1 KB 的数据需要 1 个 WCU。如果您的 CSV 文件有 360,000 行,并且您想在 1 小时内加载所有数据,则必须每秒写入 100 行(360,000 行/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 TABLE和ALTER TABLE。