Ищете смесь DynamoDB / MongoDB + Redis? - PullRequest
1 голос
/ 09 июня 2019

Я хочу сохранить некоторые данные с чем-то похожим на структуру:

"groups": {
    "g01": {
        "person_id_01": {
            "active": true
            ...
        },
        "person_id_02": {
            "active": true
            ...
        },
        "person_id_03": {
            "active": false
            ...
        }
    },
    "g02": {
        "person_id_04": {
            "active": true
            ...
        },
        "person_id_05": {
            "active": false
            ...
        },
        "person_id_06": {
            "active": false
            ...
        }
    },
    ...
}

Итак, у меня есть группы и люди в каждой группе с некоторыми параметрами. Мне нужно отслеживать каждую из этих групп практически в режиме реального времени, например, сколько у меня активных людей в каждой группе. Так что для этого мне придется запрашивать БД каждую секунду. Если я запускаю несколько приложений для масштабирования своего приложения, они будут отслеживать разные группы, поэтому число операций чтения / с будет увеличиваться. Если я отслеживаю 10 групп, это может быть 10 операций чтения / с из разных приложений.

Так что для этого, вероятно, DynamoDB не идеален, и я думаю о Redis, но в Redis кажется проблематичным хранить и искать в сложной структуре данных, подобной этой.

Что бы вы посоветовали хранить и иметь доступ к данным почти в реальном времени (например, количество активных людей в группе) для нескольких приложений? Я мог бы также использовать разные базы данных, если они не подходят для этого варианта использования.

Спасибо, г * +1010 *

1 Ответ

0 голосов
/ 11 июня 2019

Я бы использовал DynamoDB и, вероятно, шаблон списка смежности .Для числа людей в группе, если это значение вам нужно часто получать, у меня была бы внешняя лямбда-функция, которая предварительно вычисляет ее для меня, чтобы удовлетворить ваши требования «почти в реальном времени».Я также хотел бы посмотреть это видео несколько раз.

Кстати, 10 операций чтения / сек - ничто.Если вы смоделируете схему правильно, DynamoDB может делать 10 миллионов в секунду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...