Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon Keyspaces 中针对按需容量模式预热新表
Amazon Keyspaces 会根据吞吐量自动扩展存储分区,但是对于新表或新的吞吐量峰值,分配所需的存储分区可能需要更长的时间。要确保按需容量模式和预置容量模式下的表有足够的存储分区来支持突然更高的吞吐量,您可以预热新表或现有表。
预热新表的常见情况是从另一个数据库迁移数据,这可能需要在短时间内加载 TB 级数据。
对于按需表,当您的流量增加时,Amazon Keyspaces 会自动分配更多容量。新的按需表最多可保持多达每秒 4000 次写入和每秒 12000 次强一致性读取或每秒 24000 次最终一致性读取。随时间的推移,按需表会根据先前记录的吞吐量来增加流量。
如果您预计峰值容量的峰值将超过新表的设置,则可以根据预期峰值的峰值容量预热表。
要在 Amazon Keyspaces 中针对按需容量模式预热新表,您可以按照以下步骤进行操作。要预热现有表,请参阅在 Amazon Keyspaces 中针对按需容量模式预热现有表。
开始之前,请查看预置模式的账户和表配额,并根据需要进行调整。
- Console
-
- Cassandra Query Language (CQL)
-
使用 CQL 针对按需模式预热新表
在预置模式下创建新表,并指定新表的预期读取和写入容量峰值。下面是一个示例语句。
CREATE TABLE catalog.book_awards (
year int,
award text,
rank int,
category text,
book_title text,
author text,
publisher text,
PRIMARY KEY ((year, award), category, rank))
WITH CUSTOM_PROPERTIES = {
'capacity_mode': {
'throughput_mode': 'PROVISIONED',
'read_capacity_units': 18000,
'write_capacity_units': 6000
}
};
确认表的状态。您可以使用以下语句。
SELECT keyspace_name, table_name, status FROM system_schema_mcs.tables WHERE keyspace_name = 'catalog' AND table_name = 'book_awards';
keyspace_name | table_name | status
---------------+-----------------+--------
catalog | book_awards | ACTIVE
(1 rows)
当表的状态为 ACTIVE
时,您可以使用以下语句,通过将吞吐量模式设置为 PAY_PER_REQUEST
,来将表的容量模式更改为按需模式。下面是一个示例语句。
ALTER TABLE catalog.book_awards WITH CUSTOM_PROPERTIES={'capacity_mode':{'throughput_mode': 'PAY_PER_REQUEST'}};
您可以使用以下语句确认表现在处于按需模式,并查看表的状态。
SELECT * from system_schema_mcs.tables where keyspace_name = 'catalog' and table_name = 'book_awards';
- CLI
-
使用按需容量模式预热新表 Amazon CLI
在预置模式下创建新表,并指定新表的预期读取和写入容量峰值。下面是一个示例语句。
aws keyspaces create-table --keyspace-name catalog --table-name book_awards
\--schema-definition 'allColumns=[{name=pk,type=int},{name=ck,type=int}],partitionKeys=[{name=pk},{name=ck}]'
\--capacity-specification throughputMode=PROVISIONED,readCapacityUnits=18000,writeCapacityUnits=6000
确认表的状态。您可以使用以下语句。
aws keyspaces get-table --keyspace-name catalog --table-name book_awards
当表处于活动状态并且已预置容量后,您可以将表更改为按需模式。下面是一个示例配置文件。
aws keyspaces update-table --keyspace-name catalog --table-name book_awards --capacity-specification throughputMode=PAY_PER_REQUEST
您可以使用以下语句确认表现在处于按需模式,并查看表的状态。
aws keyspaces get-table --keyspace-name catalog --table-name book_awards
当表在按需容量模式下处于活动状态时,即表示已准备好应对与之前在预置容量模式下相似的吞吐能力。