Вопросы разработки AppSync $ util.autoId () и DynamoDB Partition and Sort Keys - PullRequest
0 голосов
/ 15 ноября 2018

Ограничения для разделов и ключей сортировки DynamoDB таковы, что если я хочу создать таблицу с большим количеством пользователей (например, всего населения мира), то я не могу просто использовать уникальный раздел ключ, чтобы представить personId, мне нужно использовать и ключ раздела, и ключ сортировки, чтобы представить personId.

$ util.autoId () в AppSync возвращает 128-битную строку. Если я хочу использовать это как первичный ключ в таблице DynamoDB, то мне нужно разделить его на две строки, одна из которых является ключом раздела, а другая - ключом сортировки.

Каков наилучший способ выполнить это разделение? Или, если это не лучший способ приблизиться к дизайну, как я должен вместо этого проектировать его?

Кроме того, применяются ли ограничения на ключи разделов и сортировки к вторичным индексам?

Относительно $ util.autoId (), поскольку он генерируется случайным образом, если я его называю много раз, есть ли вероятность, что он сгенерирует два идентичных идентификатора, которые абсолютно одинаковы?

1 Ответ

0 голосов
/ 15 ноября 2018

Я думаю, что я неправильно понимаю что-то из предпосылки вашего вопроса, потому что, по моему мнению, использование $ util.autoId () в AppSync возвращает вам 128-битный UUID.Суть UUID в том, что они уникальны, так что вы можете иметь один UUID на человека в мире.И строка UUID определенно будет соответствовать ограничениям максимальной длины символов, предъявляемым к ключам раздела Dynamo.

Вы также спросили:

Если я позвоню много раз, есть ли вероятность, что он сгенерирует два идентичных идентификатора?

Это крайне маловероятно.

...