Ответ 1
Есть ли эффективный способ для dynamo db предоставить моему веб-приложению все записи, созданные между двумя датами?
Yup, пожалуйста, ознакомьтесь с концепцией Primary Key в модели данных Amazon DynamoDB, в частности основным ключом типа Хэш и диапазон:
В этом случае первичный ключ состоит из двух атрибутов. Первый атрибутами является хэш-атрибут, а второй - диапазон атрибут. Amazon DynamoDB строит неупорядоченный хеш-индекс на хэше атрибут первичного ключа и индекс отсортированного диапазона в диапазоне первичных ключевой атрибут. [...]
В приведенных примерах точно указан ваш прецедент, а именно таблица Reply (Id, ReplyDateTime,...) облегчает первичный ключ типа Hash и Range с идентификатором атрибута hash и атрибутом диапазона ReplyDateTime.
Вы будете использовать это с помощью Query API, см. RangeKeyCondition для деталей и Запрос таблиц в Amazon DynamoDB для соответствующих примеров.
может dynamo db дать мне все записи, в которых поле соответствует определенному номер. [...] Могу ли я попросить dynamodb дать мне все записи, которые имеют значение, например. 6?
Это возможно, хотя и с помощью только Scan API (т.е. требуется прочитать каждый элемент в таблице), см. ScanFilter для получения более подробной информации и Сканирование таблиц в Amazon DynamoDB для соответствующих примеров.
У обоих этих запросов требуется проверка всего набора данных (что я предположим, что проблема связана с размером набора данных?)
Как упоминалось, первый подход работает с Query, а второй требует сканирования, и, как правило, операция запроса более эффективна, чем операция сканирования - это хорошая рекомендация для начала работы, хотя детали более сложны и зависят в вашем примере использования, см. раздел "Сканирование и производительность запросов" в Запрос и сканирование в обзоре Amazon DynamoDB:
Для более быстрого реагирования создайте свои таблицы таким образом, чтобы можно было использовать API запросов, Get или BatchGetItem. Или, спроектируйте свой приложение для использования операций сканирования таким образом, чтобы минимизировать воздействие по скорости запроса в таблице. Для получения дополнительной информации см. Руководство по обеспечению пропускной способности в Amazon DynamoDB.
Итак, как обычно при применении решений NoSQL вам может потребоваться настроить вашу архитектуру для соответствия этим ограничениям.