설비 이벤트가 순서대로 도착하지 않을 때의 집계법
설비 이벤트는 실제로 발생한 순서대로 서버에 도착하지 않을 수 있습니다. 게이트웨이가 잠시 오프라인이었다가 재전송하면 몇 분 전 정지 이벤트가 최신 이벤트 뒤에 들어옵니다. 도착 순서만으로 생산량과 비가동 시간을 계산하면 숫자가 틀어집니다.
발생 시각과 수신 시각을 모두 남긴다
센서가 기록한 시간, 게이트웨이가 받은 시간, 서버가 저장한 시간을 구분합니다. 원천 시계가 틀릴 수도 있으므로 동기화 상태와 시간대도 기록합니다. 서버 도착 시각으로 원래 사건의 시각을 덮어쓰지 않습니다.
상태 전환은 사건 순서로 재구성한다
정지와 재가동 이벤트가 거꾸로 도착하면 수신 순서대로 계산할 때 정지 시간이 음수가 될 수 있습니다. 설비별 이벤트 ID와 발생 시각으로 정렬하고, 같은 시각의 사건에는 시퀀스를 사용합니다. 중복 전송도 별도로 제거합니다.
잠정치와 확정치를 구분한다
실시간 대시보드는 지연된 이벤트가 들어오기 전의 잠정 집계일 수 있습니다. 늦게 도착하는 데이터의 허용 시간을 정하고 그 기간 동안 이전 구간을 재계산할 수 있게 합니다. 마감 후 수정에는 변경 이력을 남깁니다.
누락과 무생산을 혼동하지 않는다
이벤트가 없는 시간은 생산이 없었기 때문일 수도 있고 네트워크가 끊겼기 때문일 수도 있습니다. 게이트웨이 연결 상태와 마지막 수신 시간을 함께 표시합니다. 누락 구간을 0 생산으로 확정하면 성과 분석이 왜곡됩니다.
경계 사례를 시험한다
교대 시각에 걸친 정지, 하루 뒤 도착한 이벤트, 같은 이벤트의 중복 재전송을 넣어 집계 결과를 검증합니다. 수집 지연 분포와 재집계 건수를 운영 지표로 두면 데이터 품질을 개선할 수 있습니다.
현장에 적용할 때의 순서
- 원천·수신 시각 분리
- 늦은 이벤트 재집계
- 잠정·확정 상태 표시
주의할 실패: 도착 순서로 사건 순서 확정
관찰할 지표: 지연 분포와 재집계 건수
적용 전 체크리스트
- 발생·수신 시각과 시계 상태를 저장하는가
- 늦은 이벤트의 재집계 규칙이 있는가
- 잠정치와 확정치를 화면에서 구분하는가
참고 자료
Apache Flink Event Time documentation. 이벤트 시각과 처리 시각의 구분 원칙을 참고했습니다. 공장 집계의 지연 허용 시간은 현장 데이터 특성으로 정해야 합니다.
이미지와 도식은 이해를 돕기 위한 개념 시각화입니다. 특정 고객의 실제 설비·데이터·화면을 재현한 것이 아닙니다.
#이벤트타임 #제조데이터 #설비이벤트 #데이터집계 #스마트팩토리 #스트리밍 #비가동관리 #데이터품질 #엣지컴퓨팅 #시계동기화
이 주제를 실제 시스템으로 옮기려면 AI 알고리즘 개발 살펴보기