Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AppSync$util.autoId()和DynamoDB分区和排序键设计问题_Amazon Web Services_Amazon Dynamodb_Aws Appsync - Fatal编程技术网

Amazon web services AppSync$util.autoId()和DynamoDB分区和排序键设计问题

Amazon web services AppSync$util.autoId()和DynamoDB分区和排序键设计问题,amazon-web-services,amazon-dynamodb,aws-appsync,Amazon Web Services,Amazon Dynamodb,Aws Appsync,dynamoDB的for分区键和sort键是这样的:如果我想创建一个包含大量用户(例如整个世界人口)的表,那么我不能只使用唯一的分区键来表示personId,我需要同时使用分区键和sort键来表示personId 中的$util.autoId()返回128位字符串。如果我想将其用作dynamoDB表中的主键,那么我需要将其拆分为两个字符串,一个是分区键,另一个是排序键 执行此拆分的最佳方式是什么?或者,如果这不是设计的最佳方式,我应该如何设计它呢 此外,分区和排序键的限制是否也适用于辅助索引 关

dynamoDB的for分区键和sort键是这样的:如果我想创建一个包含大量用户(例如整个世界人口)的表,那么我不能只使用唯一的分区键来表示personId,我需要同时使用分区键和sort键来表示personId

中的$util.autoId()返回128位字符串。如果我想将其用作dynamoDB表中的主键,那么我需要将其拆分为两个字符串,一个是分区键,另一个是排序键

执行此拆分的最佳方式是什么?或者,如果这不是设计的最佳方式,我应该如何设计它呢

此外,分区和排序键的限制是否也适用于辅助索引


关于$util.autoId(),由于它是随机生成的,如果我多次调用它,它是否有可能生成两个完全相同的id?

我想我误解了你问题的前提,因为对我的大脑来说,使用AppSync的$util.autoId()返回128位UUID。UUID的意义在于它们是唯一的,所以世界上每个人绝对可以拥有一个UUID。UUID字符串肯定会符合Dynamo分区键要求的最大字符长度限制

你还问:

如果我多次调用它,它是否有可能生成两个 完全一样的身份证


这极不可能。

关于分区键和排序键限制,这里的[link]()表示最大长度为2048字节。这听起来比128位UUID要小得多。啊!以十六进制表示法表示的128位UUID明显短于2048字节;它是32个字符和四个连字符。=-)