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

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

步骤 3:为表设置吞吐容量

本教程向您展示了如何调整 DSBulk 以在设定的时间范围内加载数据。由于您提前知道自己要执行多少读取和写入操作,因此可以使用预置容量模式。完成数据传输后,应该将表的容量模式设置为与应用程序的流量模式相匹配。要了解有关容量管理的更多信息,请参阅 Amazon Keyspaces(Apache Cassandra 兼容)中的无服务器资源管理

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

默认情况下,您可以为一个表预置最多 40000 个 WCU,可以为账户中的所有表预置最多 80000 个 WCU。如果您需要更多容量,可以在服务限额控制台中请求提高限额。有关限额的更多信息,请参阅Amazon Keyspaces(Apache Cassandra 兼容)限额

计算一次插入所需的平均 WCU 数量

每秒插入 1KB 数据需要 1 个 WCU。如果您的 CSV 文件有 360000 行,并且您想在 1 小时内加载所有数据,则必须每秒写入 100 行(360000 行/60 分/60 秒 = 每秒 100 行)。如果每行最多有 1KB 数据,每秒要插入 100 行,则必须为表预置 100 个 WCU。如果每行有 1.5KB 数据,则需要两个 WCU 才能每秒插入一行。因此,要每秒插入 100 行,必须预置 200 个 WCU。

要确定每秒插入一行需要多少个 WCU,请将平均行大小(以字节为单位)除以 1024,然后向上舍入到最接近的整数。

例如,如果平均行大小为 3000 字节,则需要三个 WCU 才能每秒插入一行。

ROUNDUP(3000 / 1024) = ROUNDUP(2.93) = 3 WCUs
计算数据加载时间和容量

现在您已经知道了 CSV 文件中的平均行大小和行数,接下来可以计算在给定时间内加载数据需要多少个 WCU,以及使用不同的 WCU 设置在 CSV 文件中加载所有数据所需花费的大致时间。

例如,如果文件中的每行大小为 1KB,而 CSV 文件中有 1000000 行,要在 1 小时内加载数据,则需要为表预置至少 278 个 WCU 才能在 1 小时内完成。

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 TABLEALTER TABLE