2015-02-03 3 views
-1

Google 애플리케이션 엔진 데이터 저장소에 다음 표와 같이 ItemData이라는 테이블이 있습니다.GAE Datastore 열에서 가장 자주 찾는 값을 찾으십시오.

------------------------------- 
| letter | f_no | s_no | t_no | 
------------------------------- 
| A  | 2 | 3 | 0 | 
| X  | 5 | 8 | 5 | 
| C  | 4 | 6 | 5 | 
| T  | 2 | 3 | 6 | 
| A  | 2 | 4 | 0 | 
| A  | 6 | 3 | 0 | 
| C  | 2 | 2 | 9 | 
------------------------------- 

각 열에서 가장 빈번한 값을 찾아야합니다.

GQL을 사용하면 어떻게하면됩니까?

답변

2

할 수있는 단일 쿼리가 없습니다. MySQL-ism select count(distinct column_id) from table과 동등한 데이터 저장소는 없습니다.

큰 테이블과 많은 다른 고유 한 값을 고려할 때 실제로는 매우 복잡한 문제가 될 수 있습니다. 순진한 방법은 단순히 모든 엔티티를 가져오고 코드에서 계산하는 것입니다. 그러나 테이블에 많은 엔티티가있는 경우 결국 엔 쿼리 마감 시간을 초과하게됩니다.

일반적으로 데이터 저장소 쿼리 문제는 쿼리가 성가신 것처럼 보이고 확장되지 않을 것으로 보이며 상대적으로 자주 실행할 수 있어야하는 경우에는 기회를 준비해야합니다. 어떤 종류의 가속 구조 또는 카운터를 사용하여 삽입시 수집되는 정보. 빈번하게 실행할 필요가없는 경우 MapReduce가 답이 될 수 있습니다.