서비스에 많은 수의 사용자 이벤트가 있으며 " D 날짜 이후 의 이벤트 유형 T 발생 횟수"와 같은 작업을 수행하려고 합니다.
우리는 두 가지 기본 결정을 내리려고합니다.
무엇을 보관해야합니까? 모든 이벤트 저장 및 집계 저장
- (이벤트 로그 스타일) 모든 이벤트를 기록하고 나중에 계산합니다.
- (시계열 스타일) 매일 집계 된 단일 날짜 " D 의 이벤트 E 수"를 저장합니다.
데이터를 저장할 위치
- 관계형 데이터베이스 (특히 MySQL)
- 비 관계형 (NoSQL) 데이터베이스에서
- 플랫 로그 파일 (을 통해 네트워크를 통해 중앙에서 수집
syslog-ng
)
표준 시스템이란 무엇입니까? 다른 유형의 시스템 비교에 대한 자세한 내용은 어디에서 읽을 수 있습니까?
추가 세부 사항:
- 총 이벤트 스트림은 하루 수십만 개에 달합니다.
- 그러나 현재 우리의 요구는 그 안에있는 특정 유형의 이벤트 만 계산하는 것입니다.
- 원시 데이터 또는 집계 결과에 실시간으로 액세스 할 필요는 없습니다.
IMHO는 "모든 이벤트를 파일에 기록하고, 나중에 스트림을 필터링하고 집계하기 위해 크롤링"하는 것은 매우 표준적인 UNIX 방법이지만, Rails-y 동포는 MySQL에 있지 않는 한 아무 것도 없다고 생각하는 것 같습니다.