Я получаю некоторые данные о трафике веб-сайта, используя опцию «сканирования» в Dynamodb. Я использовал filterExpression, чтобы отфильтровать их.
Я буду сканировать большую таблицу, в которой будет более 20 ГБ данных.
Я обнаружил, что DynamoDB сканирует всю таблицу и отфильтровывает результаты. В документе говорится, что он возвращает только 1 МБ данных, а затем мне нужно повторить цикл, чтобы получить остальное. Кажется, это плохой способ сделать эту работу.
отсюда получил ссылку: выражение фильтра Dynamodb не возвращает все результаты
Для маленького стола это должно быть хорошо.
MySQL, я думаю, тоже самое. Я не уверен.
Что быстрее читать, так это выбор MySQL или сканирование DynamoDB на большом наборе данных.
Есть ли другая альтернатива? каковы ваши мысли и предложения?
Я пытаюсь перенести эти данные трафика в таблицу Dynamodb, а затем запросить их. Это кажется плохой идеей для меня сейчас.
$params = [
'TableName' => $tableName,
'FilterExpression' => $this->filter.'=:'.$this->filter.' AND #dy > :since AND #dy < :now',
'ExpressionAttributeNames'=> [ '#dy' => 'day' ],
'ExpressionAttributeValues'=> $eav
];
var_dump($params);
try {
$result = $dynamodb->scan($params);