如何计算SimpleDB域的存储大小?

时间:2010-06-10 15:06:52

标签: dns amazon-simpledb amazon-web-services

official documentation州:

  

所有商品ID +的原始字节大小(GB)   每个项目45个字节+原始字节大小(GB)   所有属性名称+每个45个字节   属性名称+原始字节大小(GB)   所有属性 - 值对+ 45个字节   每个属性值对

属性 - 值对的原始大小是多少?这正是价值的大小吗? (我希望如此,但为什么它的措辞是“属性 - 值对”?)或者是属性名称的大小加上属性值的大小? (在这种情况下,会有动力为你的属性提供真正的短名称。)

例如,下面的小域的大小是多少?

+---------------------------------------------------------+
| Item Name/ID | "Price" attribute | "Calories" attribute |
|--------------+-------------------+----------------------|
| "apple"      | "0000.43"         | "0046"               |
| "orange"     | "0000.70"         | "0053"               |
+---------------------------------------------------------+

2 个答案:

答案 0 :(得分:4)

每个域有两种不同的存储大小。基本大小仅包括已存储的基础数据,并且在执行大小配额时由SimpleDB服务使用(每个域10GB,Select的1MB响应)。另一个大小编号仅用于计费目的,还包括索引后台使用的存储。您可以从DomainMetadata操作获得计算这两个存储编号所需的所有6个值。

计算基本存储空间

计算基本存储只需要三个值: ItemNamesSizeBytes,AttributeNamesSizeBytes和AttributeValuesSizeBytes。这些值表示唯一项名称长度,唯一属性名称长度和所有属性值长度的总和。基本存储的公式是:

baseStorage = 
    ItemNamesSizeBytes + AttributeNamesSizeBytes + AttributeValuesSizeBytes

计算帐单存储空间

计算帐单存储空间大小需要三个额外的DomainMetadata值,它们是计数:ItemCount,AttributeNameCount和AttributeValueCount。这些数字表示您存储的与索引条目对应的数据计数。每个索引条目产生45字节的存储费用,仅用于计费目的。计费存储的公式是:

indexStorage = 45 x (ItemCount + AttributeNameCount + AttributeValueCount)
billingStorage = baseStorage + indexStorage

备注

不要被“属性 - 值对”语言混淆。这只是为了区分相同但存储有不同属性名称的属性值。例如,如果您在项目中存储以下两个属性对:{name:“Violet”,favColor:“Violet”},您将需要为两个值“Violet”存储,因为它们是不同属性 - 值对的一部分。如果文档说每个项目的每个唯一值都会收费,那么这个例子就不准确了。

此外,存储在SimpleDB中的所有数据都存储为UTF-8编码的字节字符串。编码为多个字节的所有字符将计为多个字节用于所有目的(DomainMetadata响应,配额实施和计费)。

除了字符编码之外,REST请求必须通过网络进行URL编码。这种“百分比编码”使各种字符的大小增加三倍,例如空格字符''变为'%20'。此编码对存储大小计算没有影响。它在存储之前在SimpleDB端进行解码。

DomainMetadata值有时是从缓存提供的,但通常不到24小时。检查响应中的时间戳以查看值的计算时间。实际上,这意味着大多数情况下您将无法添加某些数据并立即看到DomainMetadata值发生变化。

答案 1 :(得分:2)

属性名称仅计算一次。您的样本域的大小将按如下方式计算:

  • 项目名称:(5 + 45)+(6 + 45)= 101
  • 属性名称:(5 + 45)+(8 + 45)= 103
  • 属性值:(7 + 45)+(4 + 45)+(7 + 45)+(4 + 45)= 202
  • 总计:406字节

SimpleDB论坛上的这个主题更详细地讨论了计算: http://developer.amazonwebservices.com/connect/thread.jspa?threadID=23527&tstart=0&messageID=96906#96906