TL; DR
У меня есть таблица с около 2 миллионами WRITEs через месяц и 0 READ. Каждый 1-й день месяца мне нужно прочитать все строки, написанные в предыдущем месяце, и генерировать статистику CSV +.
Как работать с DynamoDB в этом сценарии? Как выбрать пропускную способность READ?
Длинное описание
У меня есть приложение, которое регистрирует запросы клиентов. В нем около 200 клиентов. Клиенты должны получать каждый 1-й день месяца CSV со всеми запросами, которые они сделали. Они также должны быть выставлены на счет, и для этого нам нужно рассчитать некоторую статистику с запросами, которые они сделали, группируя по типу запроса.
Итак, в конце месяца клиент получает отчет, например:
Я уже пришел к двум решениям, но я все еще не убежден ни в одном из них.
1-е решение: нормально, каждый последний день месяца я увеличиваю пропускную способность READ, а затем запускаю работу по сокращению карты. Когда работа выполнена, я уменьшаю емкость до исходного значения.
Против: не полностью автоматизирован, риск того, что емкость DynamoDB недоступна при запуске задания.
2-е решение: Я могу разбить генерацию CSV + статистики на небольшие задания в ежедневной или почасовой рутине. Я мог хранить частичные CSV на S3, и каждый 1-й день месяца я мог бы присоединиться к этим файлам и создать новый. Статистика будет намного проще генерировать, просто некоторые вычисления производятся из ежедневной/часовой статистики.
Против. Я чувствую, что превращаю что-то просто в нечто сложное.
У вас есть лучшее решение? Если нет, какое решение вы бы выбрали? Почему?