JSON格式如何影响存储和容量单位

时间:2018-08-17 16:30:46

标签: amazon-dynamodb

我对DynamoDb有一个基本的问题-是否值得缩短属性名称并删除空格以节省吞吐量和存储空间?

我计划存储数百万个如下所示的项目:

{
  "currency": "USD",
  "openPrice": 0.1,
  "closePrice": 0.1,
  "highPrice": 0.1,
  "lowPrice": 0.1
}

如果我重新格式化此JSON片段使其看起来像这样:

{"c":"USD","op":0.1,"cp":0.1,"hp":0.1,"lp":0.1}

较短的JSON是否会因为存储量减少和吞吐能力单位减少而节省成本?

谢谢。

1 个答案:

答案 0 :(得分:0)

是的,属性名称已计入项目总大小。在以下两种情况之一中,这变得很重要:

  1. 如果您的访问模式涉及扫描;或希望检索很多项目的查询-因为在这种情况下,您需要为汇总大小(即所有已访问项目的总和)计费,因此小项目比大项目更有效地利用了消耗的容量

  2. 如果您的商品具有许多属性,如属性名称的大小和它们的值的大小将商品的总大小推到1KB的边界之内,这将非常重要-因为写容量是以1KB的增量计费的

在命名时,我会使用常识:更简短的命名,但尽量避免使用隐秘的名称(例如c并不是很好的名字,但customerDataItemIdentifier都不是-更好的选择可能是{ {1}})