이 장의 시작 부분에서 외부 요인이 이벤트 메시지 전달에 영향을 줄 수 있으므로 처리에 이벤
트 시간을 사용할 때 순서 또는 전달을 보장하지 않는다고 배웠다. 이벤트가 늦거나 전혀 도착
하지 않을 수도 있다. 얼마나 늦어야 아주 늦었다고 할 수 있을까? 전체 집계를 완료하기 전에
얼마나 오랫동안 부분 집계를 유지해야 할까? 이러한 질문에 대답하기 위해 워터마크 개념이
구조적 스트리밍에 도입되었다. 워터마크는 이벤트가 너무 늦음을 선언하기 전에 이벤트를 기
다리는 시간을 결정하는 시간 임곗값이다. 워터마크를 벗어난 것으로 간주되는 이벤트는 폐기
된다.
워터마크는 내부 시간 표현에 따라 임곗값으로 계산된다. [그림
12
-
2
]에서 알 수 있듯이 워터
마크 라인은 이벤트 시간 정보에서 유추된 이벤트 시간 타임라인에서 변경된 라인이다. 이 차
트에서 워터마크
watermark
라인 아래의 ‘회색 영역’에 해당하는 모든 이벤트는 ‘너무 늦음’으로
간주되며 이 이벤트 스트림을 소비하는 계산에서는 고려되지 않는다.
이벤트 시간
처리 클럭 시간
내부 이벤트 타임라인
워터마크
그림
12-2
내부 이벤트 타임라인이 있는 워터마크
타임스탬프 필드를 워터마크에 해당하는 시간 임곗값과 연결하여 워터마크를 선언한다. [표
12
-
1
]을
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.