2017-12-19 9 views
0

DynamoDB와 함께 PHP를 사용하고 있습니다. '스캔'을 사용하여 일부 레코드를 가져옵니다. 나는 MySQL에서와 마찬가지로이 질의와 함께 Group By를 사용하기를 원했다. 도와주세요.DynamoDB에서 group by를 어떻게 사용합니까?

$result = $client->scan([ 
      'ExpressionAttributeValues' => [ 
       ':v1' => [ 
        'S' => '2002', 
       ] 
      ], 
      'FilterExpression' => 'userId = :v1', 
      'TableName' => $this->table, 
     ]); 
     return $result; 
+0

아래의 답변 외에도 : 자신이 '스캔'을 사용하여 항목을 그룹화 할 것으로 예상되는 경우 DynamoDB가 찾고있는 도구가 아닐 수도 있고 데이터 모델을 통해 생각해 보지 않았거나 테이블 디자인. – JHH

+0

스캔은 상당한 읽기 용량 단위를 소비하는 테이블의 전체 내용을 반환하는 데 사용됩니다. 귀하의 예제에서, 당신은'userId'를 필터링하고 있습니다. 이것은 실제로 해시 키로'userId'를 사용하거나'userId'를 키로 사용하는 보조 인덱스에서'query'를하는 것입니다. 현재 코드를 사용하면 클라이언트가 필터 식과 일치하지 않는 모든 것을 버리는 경우에만 백만 개의 레코드가있는 테이블이 반환됩니다. – JHH

답변

1

Dynamo DB에는 GROUP BY이 없습니다. NoSQL 데이터베이스이므로 SQL과 다릅니다.

그러나 을 사용하여 Dynamo를 SQL과 비슷한 방식으로 쿼리 할 수 ​​있습니다.

+0

@mkobit에게 답장을 보내 주셔서 감사합니다. 이해 했어. PHP로 HiveQl을 사용하도록 도와주십시오. 모든 예. –