Server-Timeout beim Dynamo DB-Abfragevorgang zum Abrufen von Elementen aus einer TabellePhp

PHP-Programmierer chatten hier
Anonymous
 Server-Timeout beim Dynamo DB-Abfragevorgang zum Abrufen von Elementen aus einer Tabelle

Post by Anonymous »

Ich habe ein Array von IDs (eventids), bei denen es sich um Millionen oder Milliarden IDs innerhalb der Tabelle handeln kann. Ich verwende eine for-Schleife, um jede ID zu durchlaufen und mithilfe der Abfrageoperation in PHP ein Element aus einer Dynamo-Datenbanktabelle abzurufen. Da der Abfragevorgang jedoch eine große Menge an Informationen in meiner Tabelle umfasst, dauert es zu lange, bis der Abfragevorgang seine Arbeit erledigt. In diesem Fall erhalte ich also kein Ergebnis, weil ich eine Auszeit bekomme. Der folgende Code versucht, diesen Vorgang auszuführen, der bei großen Informationsmengen fehlschlägt. Ich frage mich, ob Sie Empfehlungen oder Vorschläge haben, wie der Abfragevorgang für große Mengen von IDs im Array $sfweventarrayRDS schneller und durchführbar gemacht werden kann?

for ($j = 0 ; $j < count($sfweventarrayRDS) ; $j++){
$keyconditions = array(
"eventid" => array(
"ComparisonOperator" => ComparisonOperator::EQ,
"AttributeValueList" => array(
array(Type::NUMBER => $sfweventarrayRDS[$j]["eventid"])
)
)
);

$sfweventarrayDynamo = Dynamo::getItems("eventlocation",$keyconditions,$limit);

if (count($sfweventarrayDynamo) > 0){

$timediffepoch = $sfweventarrayDynamo[0]["edatecreated"]["N"] - $sfweventarrayRDS[$j]["edatecreated"];
$timediffstandard = new DateTime("@$timediffepoch");

if ($timediffstandard->format('i') >= 5){
$starttimeepoch = $sfweventarrayRDS[$j]["edatecreated"];
$endtimeepoch = $sfweventarrayDynamo[0]["edatecreated"]["N"];
$starttimestandard = new DateTime("@$starttimeepoch");
$endtimestandard = new DateTime("@$endtimeepoch");

$each_event = array("eventid" => $sfweventarrayDynamo[0]["eventid"]["N"],
"organizationid" => $sfweventarrayRDS[$j]["organizationid"],
"userid" => $sfweventarrayDynamo[0]["userid"]["N"],
"starttime" => $starttimestandard->format('Y-m-d H:i:s'),
"endtime" => $endtimestandard->format('Y-m-d H:i:s'),
"location" => $sfweventarrayRDS[$j]["location"],
"startlatitude" => $sfweventarrayRDS[$j]["latitude"],
"startlongitude" => $sfweventarrayRDS[$j]["longitude"],
"endlatitude" => $sfweventarrayDynamo[0]["latitude"]["N"],
"endlongitude" => $sfweventarrayDynamo[0]["longitude"]["N"]);
array_push($safewalkeventsDynamo, $each_event);
}
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post