免费工具

DynamoDB 项大小计算器

将 DynamoDB 项粘贴为 JSON,即可查看它以字节为单位的精确大小及其消耗的读取和写入容量单元 —— 然后通过链接分享结果。

项(JSON)
{
  "pk": "USER#1234",
  "sk": "PROFILE",
  "name": "Ada Lovelace",
  "age": 36,
  "active": true,
  "tags": ["engineer", "mathematician"],
  "address": { "city": "London", "zip": "WC2N" }
}

将 DynamoDB 项粘贴为纯 JSON(一个属性映射)。Set 和二进制类型无法用纯 JSON 表示,因此数组按 List(L)计算大小,对象按 Map(M)计算。

项大小已占 400 KB 上限的 0.03%
107字节 · 0.1 KB
最终一致读取0.5 RCU
强一致读取1 RCU
事务读取2 RCU
标准写入1 WCU
事务写入2 WCU

按 AWS 大小计算规则估算。还需要计算成本吗? 定价计算器

为什么项大小很重要

在 DynamoDB 中,你不是按行付费 —— 而是为每次操作所消耗的容量付费,而该容量是项大小的函数。读取一个最大 4 KB 的项需要一个读取单元;写入一个最大 1 KB 的项需要一个写入单元。只要超出边界一个字节,操作就会向上取整到下一个单元,因此一个从 4 KB 涨到 4.1 KB 的项,其读取成本会翻倍。

项大小还限制了 DynamoDB 能存储的内容:单个项(包括每个属性名与值)必须保持在 400 KB 以下。大块二进制数据应放在 S3 中,并在项里保留一个指针。在设计访问模式之前先了解字节大小,有助于你让热点项保持精简、高效地批处理,并避免意外的限流。

本计算器将 AWS 文档记载的大小计算规则应用于纯 JSON:属性名与字符串按 UTF-8 字节长度计算,数字按有效数字编码,嵌套列表和映射按每个元素的开销计算。随后容量网格会显示每种读取一致性模式以及标准写入与事务写入的单元数。

每个字节都是一个属性值 —— DynamoDB 数据类型 讲解每种类型是如何编码和计算大小的。

常见问题

DynamoDB 如何计算项大小?

项大小是对每个属性而言,属性名的 UTF-8 字节长度加上其值大小的总和。字符串按其 UTF-8 字节计数,数字按有效数字编码,布尔值和 null 各占 1 字节,列表和映射额外增加 3 字节开销外加每个元素 1 字节。本计算器会将这些确切规则应用于你粘贴的 JSON。

容量单元是如何由项大小推导出来的?

一个读取容量单元可覆盖对最大 4 KB 项的一次强一致读取;最终一致读取仅需半个单元,事务读取则需要两个。一个写入容量单元可覆盖最大 1 KB 的一次写入,事务写入需要两个。项大小始终向上取整到下一个 4 KB(读取)或 1 KB(写入)边界,最少为一个单元。

DynamoDB 项的最大大小是多少?

单个 DynamoDB 项 —— 包括该项及其所有属性名与值 —— 不能超过 400 KB。如果你的项更大,请将其拆分到多个项,或将较大的属性存储到 Amazon S3 并在项中保留一个引用。本计算器会标记出超出该上限的项。

为什么我无法输入 Set 或二进制值?

纯 JSON 无法表示 DynamoDB 的字符串 Set、数字 Set、二进制 Set 或二进制值 —— JSON 数组总是映射为 List(L),JSON 对象总是映射为 Map(M)。要计算这些类型的大小,请手动按其字节长度建模,或使用 DynamoDB JSON 转换器查看其属性值形式。

无需控制台即可使用 DynamoDB

DynoTable 是面向 DynamoDB 的快速桌面客户端 —— 浏览表、运行 SQL 风格的查询,并在本地编辑项。