Я пишу приложение для агрегации ставок на скачки, которое будет получать данные с веб-сайта букмекерской конторы. Для начала я буду получать данные с 3 веб-сайтов (позже их может быть больше 10) каждые 10 секунд. Таким образом, в случае с 3 веб-сайтами будет около 10 000 записей (бегунов) каждый день, и каждая запись может быть прочитана 3 раза каждые 10 секунд и обновлена, если есть изменения в шансах.
- Подходит ли DynamoDB для таких приложений или мне следует придерживаться СУБД?
- Будут ли какие-либо проблемы с согласованностью с DyanmoDB, когда я одновременно обновляю шансы (с разных веб-сайтов) для одного и того же бегуна (рекорда)?
- Приложение может перерасти в другие виды спорта и гонки и получать данные с большего количества веб-сайтов. Повлечет ли это огромные затраты с DyamoDB, поскольку оно будет больше читать и писать?
ОБНОВЛЕНИЕ — 07.02.2020, 9:30 Структура записи будет примерно такой, как показано ниже. Будет запущено несколько запланированных сервисов, каждый из которых будет заботиться о букмекере. Есть вероятность, что запись будет прочитана службами и одновременно обновлена. Расчетное значение столбца будет основано на значении столбца Bookies. Следовательно, я хочу иметь возможность последовательно читать самое последнее значение столбца Bookies.
RUNNER EVENTID BOOKIE1 BOOKIE2 BOOKIE3 BOOKIE... CALCULATED
Runner 1 12345 Odds1 Odds2 Odds3 Odds... Value
Runner 2 67890 Odds1 Odds2 Odds3 Odds... Value
ОБНОВЛЕНИЕ – 21 июля 2020 г., 12:20
После обновления моего поста у меня в голове всплывают некоторые цифры, и DynamoDB кажется очень дорогим. Вот мои номера, если что-то не так, дайте знать.
Предположения:
- 10000 бегунов
- Каждые 10 секунд в течение месяца примерно округляется до 270 000 звонков.
- 3 букмекера
- Предполагая, что каждая запись/элемент имеет размер менее 4 КБ.
- Один RCU может считывать 5,2 миллиона чтений в месяц (где-то нашел)
- Один WCU может считывать 2,5 миллиона операций чтения в месяц
Требуется RCU в месяц: (3 * 1 0000 * 270 000)/5,2 млн = 1558 RCU
WCU Требуется в месяц: (3 * 1 0000 * 270 000)/2,5 млн = 3240 WCU