우선, 나는 스트림 처리 프레임 워크를 처음 사용합니다. 나는 그 중 일부를 벤치마킹하여 Flink로 시작했으면 좋겠다.Flink 스트리밍 : 다른 창에서 이벤트 비교
필자는 창 t의 이벤트를 크기가 15 분인 창 t-1의 이벤트와 비교해야하며 일부 집계를 수행해야합니다.
우리는 형태의 튜플로 분석 된 사건을 고려 : 여기
내 유스 케이스의 단순화 된 버전입니다. 창 2에서 (D, 6)과 (B, 7)을 갖는다. 그런 다음 현재 창의 이벤트를 이전 창의 이벤트와 비교하고 다음 조건을 확인하는 이벤트를 유지해야합니다. Win2 (K) - Win1 (K)> 5. 따라서 앞의 예에서 우리는 (B, 5)를 얻습니다. (동일한 키를 가진 두 개의 이벤트가있는 경우 합계해야합니다.)두 창을 모두 메모리에 유지하는 방법을 모르겠습니다. 나는 15 분 (창 t)의 텀블링 창과 15 분 슬라이드하는 30 분 슬라이딩 창을 만들고 t - 1 창을 계산하기 위해 마이너스 연산을 수행 할 생각이었다.
좋은 해결책인가요 아니면 더 좋은 방법인가요?
답장을 보내 주셔서 감사합니다. 그것은 매우 유용했습니다. 내가 얘기했던'ProcessFunction'을 사용하려고합니다. 나는 doc 페이지에 주어진 예제를 따라왔다. 그러나 방아쇠 문제가 있습니다. 병렬 처리가 1 (또는 2)로 설정된 경우에만 호출됩니다. 큰 데이터 세트가 없기 때문에 이것 만입니까? 다른 노드의 동일한 키를 사용하여 이벤트를 분할하는 것을 볼 수 있습니다. – ddizz
약간의 코드를 공유 할 수 있습니까? 사물이 어떻게 구성되어 있는지 보지 않고는 디버그하기가 어렵습니다. 'ProcessFunction' 앞에 keyBy()가 있습니까? –
늦게 답변 해 주셔서 감사합니다. 나는 그 문제를 해결했다. 나는 keyBy()를 넣었지만, 코드를 다시 작성 했으므로 뭔가 잘못되었다고 생각하며 도움을 주신 것에 대해 다시 한 번 감사드립니다. – ddizz