2015-01-23 11 views
0

사용자별로 이벤트를 그룹화하고 일괄 처리로 반환하려고합니다 (사용자별로). 예를 들어, 3 명의 사용자가 각각 5 개의 이벤트를 보낸 경우 5 개의 이벤트 중 3 개의 배치를 esper에서 출력하고 싶습니다.Esper의 이벤트 그룹화 및 일괄 처리

다음 EPL을 사용하여 3 개의 데이터 창이 생성되고 각 창에 5 개의 이벤트가 있음을 검증 할 수 있습니다.

선택 * EVT.std에서 (2) .std time_batch : .win groupwin (사용자)의 크기()

그러나, 나는 표준 제거 할 때 : 크기()는 하나 개의 배치에 15 개 개의 이벤트를 반환합니다 . 내가 이해하기에 이것은 std : groupwin 그룹화 된 창보기가 std : merge보기에 의해 평가되는 방법 때문이다.

일괄 처리 된 이벤트를 병합하지 않고 각 데이터 창에서 어떻게 출력 할 수 있습니까?

답변

0

한 번 통화하는 대신 여러 번 전화를 받으려한다고 생각하십니까? 단일 호출이 일반적으로 더 효율적이므로 이것이 기본값입니다. 나는 당신이 "for"을 사용하기를 원한다고 생각합니다. 링크는 http://esper.codehaus.org/esper-5.1.0/doc/reference/en-US/html_single/index.html#epl-grouped-delivery

+0

입니다. 제가 찾고있는 바로 그 것입니다. 내가 얼마나 많은 시간을 필자가 그 문서 위에 놓았는지에 대해 "for"를 놓쳤다는 것을 확신하지 못한다! 다른 사람을 위해, 우리를 위해 일한 성명은 다음과 같습니다 : select * from EVT.std : groupwin (사용자) .win : group_delivery (사용자)에 대한 time_accum (2) – beterthanlife