2011-09-23 3 views
0

나는 사용자가 수행하는 상당한 양의 이벤트를 저장해야하는 앱을 만들고 있습니다. (LOTS는 매월 수백만 개라고 생각합니다.)Rails에서 통계 테이블 사용하기

이러한 이벤트 (지난 달의 총 x 등)를보고해야하며 탄력 있고 빠른 것이 필요합니다.

데이터 집계를 저장하기 위해 Redis 등을 사용 해왔다. 그러나 이것은 내가 다시 작성할 수없는 단일 그림 집계의 거대한 저장소를 만들고 있다는 것을 의미 할 수있다.

이것은 나쁜 해결책은 아니지만 필요에 따라 쿼리 할 수있는 테이블에 원시 이벤트 데이터를 저장하고 주기적으로 집계 카운터를 생성 할 수 있습니다. 따라서 시간이 지남에 따라 카운터를 추가 할 수있는 기능을 제공 할뿐 아니라 진행중인 작업에 대한 임시 점검을 수행합니다. 이는 집계가 허용하지 않는 것입니다.

질문 : 어떻게해야합니까? 나는 분명히 각 테이블 (레일스가 선호하는 모델)을 만들 필요가 없다. 테이블을 만들고 필요에 따라 원시 SQL과 상호 작용할 것인가, 아니면 처리 할 다른 선택의 여지가 있는가? 이런 종류의 데이터? > 저장 모든 - -> 집계 생성 -> 짧은 기간 이후에 모든 것을 삭제 (1 주

:

답변

1

내가 데이터 흐름 및 솔루션의 유형을 가지고 응용 프로그램에서 작업 한은 다음과 같다 또는 somehting)을 사용하여 리소스를 확보하십시오.

레일을 사용하여 이벤트를 저장하고, 다른 빠른 스크립트 (cron sql)에서 백그라운드 집계 작성을 간단히 수행 할 수 있으며, 레일즈 집계와 원시 이벤트 삭제를위한 또 다른 배경 스크립트를 읽을 수 있습니다. 당신이 그것을 할 때 upvote에 주저하지 말고, 대답을 따기)

+0

들으을;

또한 .. 레일과 성능은 매우 일반적으로 손에 손을 가지마) –