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

问题描述 投票:0回答:2

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

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

idempotent_id
1234
12
1234567
12345

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

amazon-web-services amazon-dynamodb partition
2个回答
0
投票

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

String的长度受最大项目大小400 KB的约束。

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

数字最多可以有38位精度,可以是正数,负数或零。

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

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

二进制

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

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


0
投票

从你的comment

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

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

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

另一种选择是使用类似DynamoDB Streams的东西来监听事件并跟踪不同存储介质中的最大大小。

© www.soinside.com 2019 - 2024. All rights reserved.