第 3 步:设置表的吞吐量容量 - Amazon Keyspaces(针对 Apache Cassandra)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

第 3 步:设置表的吞吐量容量

本教程演示如何在设置时间范围内调整 cqlsh 加载数据。因为您事先知道执行了多少读取和写入操作,因此请使用预配置容量模式。完成数据传输后,应该设置表的容量模式以匹配应用程序的流量模式。要详细了解容量管理,请参阅Amazon Keyspaces 中的无服务器资源管理(针对 Apache Cassandra).

使用预配置容量模式,您可以提前指定要为表预配置的读取和写入容量。写入容量按小时计费,并以写入容量单位 (WCU) 计量。每个 WCU 都有足够的写入容量,可以支持每秒写入 1 KB 的数据。加载数据时,写入速率必须低于最大 WCU(参数:write_capacity_units)在目标表上设置。

默认情况下,您可以为一个表预配最多 40,000 个 WCU,在账户中的所有表中预配 80,000 个 WCU。如果您需要额外容量,可以在中请求增加配额Service Quotas控制台。有关配额的更多信息,请参阅Amazon Keyspaces(针对 Apache Cassandra)的配额

计算插入所需的平均 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 数,请将平均行大小除以字节为单位,然后舍入到最接近的整数。

例如,如果平均行大小为 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 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.