#amazon-dynamodb
#amazon-dynamodb
Вопрос:
Я хочу получить данные за последние 30 дней из dynamo db. Я могу извлекать только один идентификатор за раз. Как я могу получить все данные за 30 дней из dynamo db.
$sevenDaysAgo = date('Y-m-d H:i:s', strtotime('30 days'));
echo $response = $dynamodb->query([ 'TableName' => 'notifications',
'KeyConditionExpression' => 'id = :id and date_time >= :datess', 'ExpressionAttributeValues' => [ ':id' => ['S' => '350'],
':datess' => ['S' => $sevenDaysAgo] ],
'ProjectionExpression' => 'id', 'ConsistentRead' => true ]);
Комментарии:
1. В чем проблема? Ожидание неясно в сообщении. Пожалуйста, обновите сообщение.
2. Я хочу получить данные за последние 30 дней из dynamo db. Я могу получить только одни данные. Как я могу получить все данные из базы данных (например, в sql, который мы используем * для сбора данных)
3. Какой у вас ключ раздела и ключ диапазона? Является ли «date_time» ключом диапазона? Вы определили date_time как строку? Можете ли вы показать некоторые примеры данных? Я смогу помочь, если вы предоставите эти подробности. Какой AWS SDK вы используете? Я могу предоставить решение на Java, JS, NodeJS.
4. Я использую php sdk.
5. Элемент{3} date_timeString: 2016-10-17 06:08:02 idString: 351 messageString: 23.328 рупий в месяц
Ответ №1:
Вы могли бы использовать новую функцию TTL, потоки и лямбда для поддержания скользящего 30-дневного окна данных в новой таблице, называемой скользящей. Шаги:
- Создайте новую таблицу с именем
sliding
с той же схемой, что и ваша базовая таблица. В этой таблице должен быть включен TTL для атрибута с именемmyttl
. - Включите поток DynamoDB вашей исходной таблицы как со старыми, так и с новыми изображениями.
- Присоедините лямбда-функцию к потоку вашей исходной таблицы. Этот лямбда-код будет записывать все создания / обновления / удаления элементов из базовой таблицы в скользящую таблицу.
- Похоже, что каждый элемент может уже содержать временную метку. Отсканируйте исходную таблицу и добавьте атрибут N с именем
myttl
, равным отметке времени 30 дней в эпоху, если отметка времени элемента была за последние 30 дней.
Результатом шагов 1-4 будет скользящая таблица, которая содержит в конечном итоге согласованное представление данных за последние 30 дней.