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

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

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

本教程介绍如何调整 cqlsh 以在设置时间范围内加载数据。因为您知道提前执行了多少读写操作,所以请使用预配置的容量模式。完成数据传输后,应将表的容量模式设置为与应用程序的流量模式相匹配。要了解有关容量管理的更多信息,请参阅Amazon Keyspaces(针对 Apache Cassandra)中的无服务器资源管理

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

默认情况下,您可以为一个表预配多达 40,000 个 WCU,并在帐户中的所有表中配置 80,000 个 WCU。如果您需要额外容量,您可以通过Amazon Web Services Support。有关配额的更多信息,请参阅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 数量,请将平均行大小(以字节为单位)除以 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 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