2016-10-19 53 views
0

我想從發電機db獲取過去30天的數據。我一次只能獲取一個ID。我怎樣才能從發電機數據庫獲得30天的所有數據。如何從發電機db獲取過去30天的數據

$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 ]); 
+0

問題是什麼?期望在帖子中不明確。請更新帖子。 – notionquest

+0

我想從發電機數據庫中獲取30天的數據。我只能夠獲取一個數據。我怎樣才能從數據庫中獲得所有的數據(就像我們用來查詢數據的sql一樣) – user3445588

+0

你的分區鍵和範圍鍵是什麼? 「date_time」是範圍鍵嗎?你有沒有將date_time定義爲String?你能顯示一些樣本數據嗎?如果你提供這些細節,我應該能夠提供幫助。您使用的是什麼AWS SDK?我可以在Java,JS,NodeJS中給出解決方案。 – notionquest

回答

0

你可以使用新的TTL功能,溪流,和Lambda保持數據的滑動只記錄30天在一個新的表名爲滑動。步驟:

  1. 使用與基表相同的模式創建一個名爲sliding的新表。此表應該在名爲myttl的屬性上啓用TTL。
  2. 使用舊圖像和新圖像啓用原始表的DynamoDB流。
  3. 將lambda函數附加到原始表的Stream中。這個lambda會將所有項目創建/更新/刪除從基表寫入滑動表。
  4. 看來每個項目可能已經包含一個時間戳。掃描您的原始表格,並添加名爲myttl的N屬性,如果該項目的時間戳記爲最近30天,則等於時間戳+ 30天的歷元時間。

步驟1-4的結果將是一個表格滑動,其中包含最後30天數據的最終一致視圖。

相關問題