Как сохранить счетчик прогонов в DynamoDB без горячей строки таблицы? - PullRequest
0 голосов
/ 18 октября 2018

У нас полностью серверная архитектура, и мы использовали DynamoDB почти с момента ее выпуска, но я изо всех сил пытаюсь понять, как справиться с табулированием глобальных чисел в больших масштабах.Допустим, у нас есть пользователи, которые выбирают либо А, либо Б. Мы хотим отслеживать, сколько пользователей делают каждый, и они могут произойти в большом масштабе.Согласно рекомендациям DyanamoDB, вы не должны писать постоянно в одну строку.Как лучше всего справиться с этим снаружи, используя другой сервис, такой как CouchDB или ElastiCache?

1 Ответ

0 голосов
/ 18 октября 2018

Вы можете объединить своих пользователей по первой букве их имен пользователей (или чего-либо подобного) в качестве ключа разделения, а также A или B в качестве ключа сортировки с обычным атрибутом в качестве счетчиков.

Например,:

PARTITION KEY | SORT KEY | COUNT
--------------------------------
a             | A        | 5
a             | B        | 7
b             | B        | 15
c             | A        | 1
c             | B        | 3

Преимущество заключается в том, что вы можете уменьшить риск «горячих» разделов, распределяя записи по нескольким разделам.

Конечно, вы торгуете «горячими» записями для более дорогих операций чтения,с этого момента вам придется сканировать + фильтр (A), чтобы получить общее количество, которое выбрало A, и еще одно сканирование + фильтр (B) для общего количества B. Но если вы пишете связку и читаете только в редкихВ некоторых случаях это может быть хорошо.

...