로그 레코드를 저장할 때 여러 카테고리의 이동 평균을 합산하여 정리하고 싶습니다. 웹 서버 로그를 한 번에 한 항목 씩 저장하는 서비스를 상상해보십시오. 더 이상 상상해 봅시다. 기록 된 기록에 액세스 할 수 없습니다. 그래서 우리는 그것들을 한 번 보았지만 나중에 그들에게 접근 할 수는 없습니다. 다른 페이지에 대한가중 이동 평균을 효율적으로 저장하기위한 데이터 구조/알고리즘
, 나는
- (그래서 같은 한 달) (쉬운)
- 는"최근 "평균 조회수의 총 수를 알고 싶습니다 "평균 (1 년 이상)
엄청난 양의 데이터를 합산하여 재 계산하지 않고 이동 평균을 저장할 수있는 영리한 알고리즘/데이터 모델이 있습니까?
정확한 평균 (정확히 30 일 정도)이 아니라 추세 지표 만 필요합니다. 따라서 어떤 모호함은 전혀 문제가되지 않습니다. 새로운 항목이 오래된 항목보다 더 높은 가중치를 가졌는지 확인해야합니다.
한 가지 해결책은 매월 통계 레코드를 자동으로 만드는 것입니다. 그러나 지난 달의 통계조차 필요하지 않기 때문에 과도한 것처럼 보입니다. 그리고 그것은 나에게 움직이는 평균을주지는 않지만 매월 새로운 가치로 바꾸어 놓을 것입니다.
감사합니다. 'newT'와'oldT'에 유닉스 타임 스탬프를 사용하고, 델타를 1로 설정하는 것이 합리적일까요? (새로운 기록 된 레코드 각각에 대해 수식을 새로 평가하기 위해서)? –
오트 윈 (Ortwin)은 공식을 적용하는 좋은 방법입니다. – Rotsor
잘 작동하는 것 같습니다. 'p = 0.9'처럼 보이는 것은 10 시간 평균이고'p = 0.99'는 100 시간 평균입니다. –