本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 3:为表设置吞吐容量
本教程向您展示了如何调整 cqlsh 以在设定的时间范围内加载数据。由于您提前知道自己要执行多少读取和写入操作,因此可以使用预置容量模式。完成数据传输后,应该将表的容量模式设置为与应用程序的流量模式相匹配。要了解有关容量管理的更多信息,请参阅 在 Amazon Keyspaces 中管理无服务器资源(适用于 Apache Cassandra)。
使用预置容量模式,您可以提前指定要为表预置多少读取和写入容量。写入容量按小时计费,并以写入容量单位 () WCUs 计量。每个写入容WCU量足以支持每秒写入 1 KB 的数据。加载数据时,写入速率必须低于目标表上设置的最大值WCUs(参数:write_capacity_units
)。
默认情况下,您最多可以为一个表预配置 40,000,WCUs为账户中的WCUs所有表配置最多 80,000。如果您需要更多容量,可以在服务限额
计算刀片WCUs所需的平均数量
每秒插入 1 KB 的数据需要 1 WCU。如果您的CSV文件有 360,000 行,并且您想在 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文件中的平均大小和行数,就可以计算出在给定时间内需要加载多少WCUs数据,以及使用不同的WCU设置加载CSV文件中所有数据所花费的大致时间。
例如,如果文件中的每行为 1 KB,而您的文件中有 1,000,000 行,则要在 1 小时内加载数据,则需要在该小时内为表预配置至少 278 WCUs 行。CSV
1,000,000 rows * 1 KBs = 1,000,000 KBs 1,000,000 KBs / 3600 seconds =277.8 KBs / second = 278 WCUs
配置预置容量设置
可以在创建表时或使用ALTER TABLE
CQL命令来设置表的写入容量设置。以下是使用语句更改表的预配置容量设置的ALTER TABLE
CQL语法。
ALTER TABLE
mykeyspace.mytable
WITH custom_properties={'capacity_mode':{'throughput_mode': 'PROVISIONED', 'read_capacity_units':100
, 'write_capacity_units':278
}} ;
有关完整的语言参考,请参阅 ALTER TABLE。