dynamodb和php中的并行扫描
我使用php和AWS,我有一个包含3.3m条记录的表,所以我需要扫描它,我使用parallels扫描 我的问题是:在第一次执行后,parallels扫描会自动使用扫描中最后计算的键吗?或者我需要在params数组中设置参数 代码是:dynamodb和php中的并行扫描,php,laravel,amazon-web-services,amazon-dynamodb,Php,Laravel,Amazon Web Services,Amazon Dynamodb,我使用php和AWS,我有一个包含3.3m条记录的表,所以我需要扫描它,我使用parallels扫描 我的问题是:在第一次执行后,parallels扫描会自动使用扫描中最后计算的键吗?或者我需要在params数组中设置参数 代码是: $totalSegments = 10; $params = array( 'TableName' => $t, 'TotalSegments' => $totalSegments ); $scanCommands = array(); f
$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"];
}
$totalSegments=10;
$params=数组(
“TableName”=>t美元,
“TotalSegments”=>$TotalSegments
);
$scanCommands=array();
对于($i=0;$i<$totalSegments;$i++){
$scanCommands[]=$this->db_client->getCommand('Scan',array('Segment'=>$i)+$params);
}
$this->db_client->execute($scanCommands);
foreach($scanCommands作为$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条记录,如果表吞吐量不够高,您将得到节流错误,需要单独处理。如果这是偶尔做一次的事情,那么就可以优化您的表并避免扫描(根据Amazon的建议)