[英]Parallels scan in dynamodb and php
我正在使用php和AWS,并且我有一个具有3.3m记录的表,因此我需要对其进行扫描,而我正在使用并行扫描。
我的问题是:并行扫描会在第一次执行后自动使用扫描中最后评估的键吗? 或者我需要在params数组中设置参数。
代码是:
$totalSegments = 10;
$params = array(
'TableName' => $t,
'TotalSegments' => $totalSegments
);
$scanCommands = array();
for($i = 0; $i < $totalSegments; $i++){
$scanCommands[] = $this->db_client->getCommand('Scan', array('Segment' => $i) + $params);
}
$this->db_client->execute($scanCommands);
foreach ($scanCommands as $scanCommand) {
$result = $scanCommand->getResult();
$items = $result["Items"];
}
因此,我需要知道是否自动使用了上次评估的密钥,或者我需要在params数组中进行设置。
谢谢
我怀疑这是并行扫描,但是您正在分页记录。
Answer to your question is yes, you need to supply **LastEvaluatedKey** array to
get next set of records
注意:您说您有大约3M条记录,如果表的吞吐量不够高,则会出现节流错误,需要单独处理。 如果这是偶尔的事情,那很好,否则请优化您的表并避免扫描(如亚马逊所推荐)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.