Dynamo DB中我的数据的最大分区键长度

时间:2017-12-26 22:03:00

标签: amazon-web-services amazon-dynamodb partition

我有一个用例来对我的应用程序中的密钥大小设置约束。我试图在DynamoDB表中找到目前为止分区键的最大长度。这将帮助我在对我在Dynamo DB中用作分区键的数据进行任何内部约束之前了解我的数据。

示例:我们这里说的是带有分区键的表(idempotent_id)。我想知道目前为止分区键的最大长度(在本例中为7)。

idempotent_id
1234
12
1234567
12345

我尝试使用我的aws帐户中的Dynamo DB控制台。我查看了DynamoDB的queryscan api。但似乎没有什么比我更合适了。可能这是我们使用DynamoDB无法找到的东西吗?或者我可能是在错误地寻找? 任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

查看数据类型部分及其限制:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html

  

字符串

     

String的长度受最大项目大小400的限制   KB。

     

字符串是带有UTF-8二进制编码的Unicode。因为UTF-8是一个   可变宽度编码,DynamoDB确定String的长度   使用其UTF-8字节。

     

     

一个数字最多可以有38位精度,可以是正数,   否定,或为零。

     

正范围:1E-130至9.9999999999999999999999999999999999999E + 125   负范围:-9.9999999999999999999999999999999999999E + 125至   -1E-130 DynamoDB使用JSON字符串表示请求和回复中的Number数据。有关更多信息,请参阅DynamoDB低级别   API。

     

如果数字精度很重要,则应将数字传递给DynamoDB   使用从数字类型转换的字符串。

     

二进制

     

二进制文件的长度受最大项目大小400的限制   KB。

     

使用二进制属性的应用程序必须对数据进行编码   将Base64格式发送到DynamoDB之前。收到数据后,   DynamoDB将其解码为无符号字节数组,并将其用作   属性的长度。

答案 1 :(得分:0)

来自comment

  

我试图在我的单个表中找到idempotent_id的最大大小/长度。

为了在没有任何辅助数据的情况下执行此操作,您需要执行full table scan并从每个项目中获取您关心的结果属性。您可以使用ProjectionExpressions来减少检索的数据量。

您可以将该值存储在另一个属性中并在其上创建GSI,这样您就可以在排序中查询该索引。

另一种选择是使用类似DynamoDB Streams的内容来监听事件并跟踪不同存储媒体中的最大尺寸。

答案 2 :(得分:0)

分区键和排序键 分区键长度 分区键值的最小长度为1个字节。最大长度为2048个字节。

分区键值 对于表或辅助索引,不同的分区键值的数量没有实际限制。

排序密钥长度 排序键值的最小长度为1个字节。最大长度为1024个字节。

排序键值 通常,每个分区键值的不同排序键值的数量没有实际限制。

具有二级索引的表例外。对于本地二级索引,项目集合的大小受到限制:对于每个不同的分区键值,所有表和索引项目的总大小不能超过10 GB。这可能会限制每个分区键值的排序键数。有关更多信息,请参阅项目集合大小限制。