문제

웹에 대한 'Google Analytics'유형 애플리케이션을 만들고 싶습니다. 즉, 데이터베이스에 대한보고 및 그래프를 수행하는 웹 기반 도구입니다. 문제는 데이터베이스가 크기 때문에 너무 오래 걸리고 도구가 응답하지 않기 때문에 실시간으로 쿼리를 수행 할 수 없다는 것입니다.

CRON 작업을 어떻게 사용하여 도움을 줄 수 있습니까? 내 그래프를 응답 할 수있는 가장 좋은 방법은 무엇입니까? 데이터베이스 테이블 중 일부를 교단해야한다고 생각하지만 이러한 쿼리를 어떻게 더 빨리 만들려면 어떻게해야합니까? 다른 데이터베이스 테이블에 어떤 중간 값을 저장하여 더 빨리 만들 수 있습니까?

감사!

도움이 되었습니까?

해결책

비즈니스 인텔리전스 (BI)는 꽤 성숙한 징계입니다.보고 및 데이터웨어 하우징을위한 데이터베이스 스케일링에 관한 책에서 질문에 대한 답변을 찾을 수 있습니다.

고급 전술 목록에는 다음이 포함됩니다.

  • 파티셔닝 (인덱스는 대부분의보고에 거의 도움이되지 않기 때문에)
  • 요약 테이블 (일반적으로 배치 프로세스를 통해 생성됨 CRON을 통해 제출)
  • 좋은 옵티마이저가 필요합니다 (MySQL과 같은 일부 데이터베이스는 그렇지 않으므로 결합 결정이 좋지 않습니다).
  • 쿼리 병렬 처리 (일부 데이터베이스는 쿼리를 여러 스레드로 분할하여 선형 속도를 제공합니다)
  • Star -Schema- 좋은 데이터 모델입니다 중대한 좋은 성능에

일반적으로 Dynamic Reporting은 정적보고에서 바지를이기므로 강력한보고를 한 후에는 데이터를 적절한 모델로 복사하려고 시도하고 집계를 사용하여 데이터베이스를 변경하여 우수한 최적화 제와 적절한 기능을 얻을 수 있습니다. 배치로 보고서를 실행하십시오.

다른 팁

이에 접근하는 간단한 방법은 사전 응집 된 데이터를 포함하는 요약 테이블을 선택하는 것입니다. Crontab을 사용하여 정기적으로 채워질 수 있습니다.

또는 http://mondrian.pentaho.org.

나는 "Star Schemas"에 익숙해 질 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top