Довольно новичок в DynamoDb и AWS в целом, это очень интересно, но я чувствую, что кривая обучения немного крута. В любом случае, вот моя ситуация и моя проблема.
У нас есть собственное мобильное приложение, которое сохраняет в таблице DynamoDb одну строку каждый раз, когда пользователи выполняют поиск. (база данных - это история поиска с UUID и критериями поиска). В среднем каждый день в нашу таблицу попадает несколько тысяч новых запросов. В таблице есть только первичный ключ, который является идентификатором поиска.
Приложение довольно новое, но мы уже достигли нескольких сотен тысяч строк в таблице и можем ожидать, что в следующие месяцы будет миллион. Это простые простые данные с уникальным идентификатором, строкой и числами в других атрибутах. Никакой связи, никаких отношений и т. Д. Я уже тогда почувствовал, что, возможно, DynamoDb, возможно, не лучший выбор, но, тем не менее, я везде читал, что он может быть подходящим для чего угодно при правильном управлении.
Рядом с этим есть панель управления веб-приложения, которая - благодаря rest api с использованием nodejs lambdas - запрашивает у DynamoDB статистику поисков: сколько поисков в день, список последних поисков ... проблема в том, что DynamoDb не совсем подходит для запроса сотен тысяч данных (ограничение в 1 МБ, ограничения запроса, кредиты ...). Когда я сканирую, я получаю всего 3000 запросов. Я попытался выполнить цикл сканирования с использованием последнего запрошенного индекса, но после нескольких тестов я не получил данных и заблокировал максимальную пропускную способность. Кажется действительно очевидным, что у меня нет правильного подхода, чтобы перенести все эти поисковые запросы в мое веб-приложение. Итак, каков был бы правильный подход? Мои идеи следующие, но я открыт для более опытных:
Переход на базу данных SQL (с помощью миграции aws?). Неужели тогда будет легче?
создание лямбда-выражений для выполнения запланированных заданий каждую ночь, чтобы получать статистику каждый день, чтобы мне не приходилось постоянно запрашивать всю базу данных, а только некоторые из самых последних поисков и строк статистики? Это выполнимо? какой-нибудь учебник по node.js / lambdas, который вы можете знать по этому поводу?
лучшее управление индексами? Я все еще теряюсь в этом.
Жду вашего мнения.