Amazon DynamoDB 中的配额
本节介绍 Amazon DynamoDB 中的当前配额(以前称为限制)。除非另行指定,否则每个配额将基于区域应用。
读/写吞吐量
吞吐量默认限额
Amazon 对您的账户在区域中可以预置和使用的吞吐量设置了一些原定设置配额。相关配额如下,但您也可以请求提高配额。要请求提高服务配额,请参阅 https://aws.amazon.com/support
按需型 | 已预置 | |
---|---|---|
|
|
|
|
|
|
|
|
|
注意
可以将账户的所有可用吞吐量应用于单个表或多个表。
预调配吞吐量配额是表容量加上其所有全局二级索引容量的总和。
在 Amazon Web Services Management Console 上,可以使用 Amazon CloudWatch,通过查看指标选项卡上的 read
capacity
和 write capacity graphs
,监控给定 Amazon 区域的当前读写吞吐量。切记不要太接近配额。
如果您提高了预调配吞吐量的默认配额,可以使用 DescribeLimits 操作来查看当前的配额值。
增加或减少吞吐量(对于预调配表)
增加预调配吞吐量
您可以根据需要使用 ReadCapacityUnits
或 WriteCapacityUnits
操作增加 Amazon Web Services Management Console 或 UpdateTable
。在单个调用中,您可以为表、该表的任何全局二级索引或它们的任意组合增加预调配吞吐量。新设置在 UpdateTable
操作完成后才会生效。
添加预置容量时不能超过每个账户的配额,且 DynamoDB 不会允许您太快地增加预置容量。除了这些限制以外,您还可以根据需要尽量增加表的预置容量。有关每个账户的配额的更多信息,请参阅上一部分 吞吐量默认限额。
减少预调配吞吐量
对于 UpdateTable
操作中的每个表和全局二级索引,您可以减小 ReadCapacityUnits
或 WriteCapacityUnits
(或者同时减小这两者)。新设置在 UpdateTable
操作完成后才会生效。每天的任何时间最多可执行 4 次减小操作。天依据通用协调时间 (UTC) 定义。此外,如果过去 1 小时内未执行减小操作,则可以执行额外的减小操作。这实际上将每日的减小操作的最大次数设置为 27 次(在前 1 个小时内为 4 次减小操作,对于一天内的每个后续 1 小时时段,为 1 次减小操作)。
重要
表与全局二级索引减小限制次数已分离,因此特定表的所有全局二级索引都具有其自己的减小限制。但是,如果一个请求减少了表和全局二级索引的吞吐量,则当表和全局二级索引中的任意一个超出当前限制时,请求都会被拒绝。请求未得到部分处理。
例
在一天的头 4 个小时内,具有全局二级索引的表可以按下面所示进行修改:
-
将表的
WriteCapacityUnits
或ReadCapacityUnits
(或两者)减少 4 次。 -
将全局二级索引的
WriteCapacityUnits
或ReadCapacityUnits
(或两者)减少 4 次。
在那一天结束时,表和全局二级索引的吞吐量各有机会减少 27 次。
预留容量
Amazon 为您的账户可以购买的活跃预留容量设置了原定设置限额。限额限制是写入容量单位(WCU)和读取容量单位(RCU)的预留容量组合。
预留容量配额 | 活跃预留容量 | 可调整 |
---|---|---|
每个 账户 |
1,000,000 个预调配容量单位(WCU _ RCU) |
是 |
如果您尝试在单次购买中购买超过 1,000,000 个预调配容量单位,则会收到有关此服务限额限制的错误。如果您有活跃预留容量并尝试购买额外的预留容量,从而导致活跃的预调配容量单位超过 1,000,000 个,则会收到有关此服务限额限制的错误。
表
表大小
表的大小没有实际限制。表的项目数和字节数是无限制的。
最大表数(每个账户、每个区域)
对于任何 Amazon 账户,每个 Amazon 区域都有一个 2,500 个表的初始配额。
如果一个账户需要超过 2500 个表,请联系您的 Amazon 账户团队请求增加表,最多可增加到 10000 个表。如果需要超过 10000 个表,推荐的最佳做法是设置多个账户,每个账户最多可提供 10000 个表。
全局表
使用全局表时,以下默认配额适用。
默认全局表配额 | 按需型 | 已预置 |
---|---|---|
每个表的吞吐量 |
|
|
每个账户、每个区域、每天的新副本回填数据 |
|
|
注意
在某些情况下,您可能需要通过 Amazon Web Services 支持 申请增加限额限制。如果以下任何一项适用于您,请参阅 https://aws.amazon.com/support
-
如果要为配置为使用超过 4 万个写入容量单位 (WCU) 的表添加副本,则必须针对添加副本的 WCU 配额请求提高服务配额。
-
如果要在 24 小时内将副本添加到超过 10TB 的目标区域,则必须针对添加副本数据回填配额请求提高服务配额。
-
如果您遇到类似以下内容的错误消息:
-
无法在区域“example_region_A”中创建表“example_table”的副本,因为它超过了您在区域“example_region_B”中的当前账户限制。
-
二级索引
最多可以为每个表定义 5 个本地二级索引。
每个表都有 20 个全局二级索引的原定设置限额。
投影二级索引属性
最多可以为表的所有本地和全局二级索引组合投影 100 个属性。此配额只适用于用户指定的投影属性。
对于 CreateTable
操作,如果您指定 INCLUDE
的 ProjectionType
,则在 NonKeyAttributes
中指定的属性总数量(跨所有二级索引的属性之和)不能超过 100。将同一属性名称投影到两个不同的索引中,将在配额中计为两个不同的属性。
此配额不适用于 ProjectionType
为 KEYS_ONLY
或 ALL
的二级索引。
DynamoDB Streams
DynamoDB Streams 中的分片同时读取器
对于作为非全局表的单区域表,您可以设计最多两个同时的进程来同时从同一个 DynamoDB Streams 分片读取数据。超过此限制会导致请求被拒。对于全局表,我们建议您将并行读取器的数量限制为一个,以避免请求节流。
启用了 DynamoDB Streams 的表的最大写入容量
Amazon 为启用 DynamoDB Streams 的 DynamoDB 表的写入容量设置了一些默认配额。这些默认配额仅适用于处于预置读/写容量模式的表。
-
美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、南美洲(圣保罗)、欧洲地区(法兰克福)、欧洲地区(爱尔兰)、亚太地区(东京)、亚太地区(首尔)、亚太地区(新加坡)、亚太地区(悉尼)、中国(北京)区域。
-
每个表 - 40000 个写入容量单位
-
-
所有其他区域:
-
每个表 - 10000 个写入容量单位
-
从 Amazon S3 导入
在 us-east-1、us-west-2 和 eu-west-1 区域中,从 Amazon S3 导入 DynamoDB 可以支持多达 50 个并发导入作业,每次导入源对象的总大小为 15TB。在所有其他区域,最多支持 50 个总大小为 1TB 的并发导入任务。在所有区域中,每个导入任务最多可处理 50000 个 Amazon S3 对象。有关导入和验证的更多信息,请参阅导入格式限额和验证。
将表导出到 Amazon S3
完整导出:最多可以导出 300 个并发导出任务,或所有正在进行的表导出的总容量最多为 100TB。在对导出进行排队之前,将检查这两个限制。
增量导出:DynamoDB 向 Amazon S3 的增量导出可以支持多达 300 个并发导出任务,或者从所有正在进行的表导出时最多支持总共 100 TB。导出时段限制为最短 15 分钟,最长 24 小时。
备份和还原
DynamoDB 通过 DynamoDB 按需备份或连续备份可支持多达 50 个并发还原,总计 50 TB。Amazon Backup 支持多达 50 次并发还原,总计 25 TB。
Contributor Insights
如果您在 DynamoDB 表上启用 Customer Insights,则仍然受 Contributor Insights 规则的限制。有关更多信息,请参阅 CloudWatch 服务配额。