我有一个用例来对我的应用程序中的密钥大小设置约束。我试图在DynamoDB表中找到目前为止分区键的最大长度。这将帮助我在对我在Dynamo DB中用作分区键的数据进行任何内部约束之前了解我的数据。
示例:我们这里说的是带有分区键的表(idempotent_id)。我想知道目前为止分区键的最大长度(在本例中为7)。
idempotent_id
1234
12
1234567
12345
我尝试使用我的aws帐户中的Dynamo DB控制台。我查看了DynamoDB的query和scan api。但似乎没有什么比我更合适了。可能这是我们使用DynamoDB无法找到的东西吗?或者我可能是在错误地寻找? 任何帮助将不胜感激。
答案 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。这可能会限制每个分区键值的排序键数。有关更多信息,请参阅项目集合大小限制。