我的表有以下模式:DynamoDB - 獲取所有行主鍵是在一個範圍內
散列關鍵字:ProxyID 範圍重點:時間戳
從MySQL背景中,我想運行一個查詢像這樣:
SELECT * FROM table WHERE Timestamp < now() - 10 minutes
基本上,我想獲取每個代理的最後幾條記錄。現在我正在使用這個:
$client->query(array(
'TableName' => 'server_logs',
'AttributesToGet' => array('Proxy ID', 'Timestamp', 'usageCPUTotalPercent', 'numberOfUsers', 'usageMemoryTotalPercent'),
'KeyConditions' => array(
'Proxy ID' => array(
'ComparisonOperator' => 'EQ',
'AttributeValueList' => array(
array('N' => (String)$proxyId)
)
),
'Timestamp' => array(
'ComparisonOperator' => 'BETWEEN',
'AttributeValueList' => array(
array('N' => (String)$fromTime),
array('N' => (String)$toTime)
)
)
),
));
但我必須運行這個查詢每個代理服務器,並有100個他們。有什麼方法可以在單個查詢中完成這項工作嗎?
您可以使用'IN'而不是'EQ'例如 –
'IN'比較運算符不可用於查詢 – user1151659
然後使用掃描代替查詢 –