繁体   English   中英

在dynamodb和php中并行扫描

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM