我的表有以下模式: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
然后使用扫描代替查询 –