Ответ 1
Amazon DynamoDB предоставляет Scan для эта цель, которая возвращает один или несколько элементов и их атрибуты, выполняя полное сканирование таблицы. Обратите внимание на следующие два ограничения:
-
В зависимости от размера таблицы вам может потребоваться использовать разбиение на страницы для получения всего набора результатов:
Примечание
Если общее количество отсканированных элементов превышает предел 1 МБ, сканирования, и результаты возвращаются пользователю с помощью LastEvaluatedKey для продолжения сканирования в последующей операции. результаты также включают количество предметов, превышающих лимит. Сканирование может привести к тому, что данные таблицы не будут соответствовать критериям фильтра.В конечном итоге результат будет согласован.
-
Операция сканирования потенциально дорогостоящая в отношении производительности и единиц потребляемой мощности (например, цена), см. раздел "Сканирование и производительность запроса" в Запрос и сканирование в Amazon DynamoDB:
[...] Кроме того, по мере роста таблицы операция сканирования замедляется. Сканирование операция проверяет каждый элемент для запрошенных значений, а может использовать обеспеченная пропускная способность для большой таблицы за одну операцию. Для более быстрого реагирования создайте свои таблицы таким образом, чтобы они могли использовать API запросов, Get или BatchGetItem. Или, спроектируйте свой приложение для использования операций сканирования таким образом, чтобы минимизировать воздействие по скорости запроса в таблице. Для получения дополнительной информации см. Provisioned Руководство по пропускной способности в Amazon DynamoDB. [акцент мой]
Более подробную информацию об этой операции можно найти и некоторые примеры фрагментов в Сканирующие таблицы Использование AWS SDK для PHP-API низкого уровня для Amazon DynamoDB, с самым простым примером, иллюстрирующим операцию:
$dynamodb = new AmazonDynamoDB();
$scan_response = $dynamodb->scan(array(
'TableName' => 'ProductCatalog'
));
foreach ($scan_response->body->Items as $item)
{
echo "<p><strong>Item Number:</strong>"
. (string) $item->Id->{AmazonDynamoDB::TYPE_NUMBER};
echo "<br><strong>Item Name: </strong>"
. (string) $item->Title->{AmazonDynamoDB::TYPE_STRING} ."</p>";
}