큰 데이터 세트를 유지하기위한 최상의 전략은 무엇입니까?


9

저는 메트릭 데이터를 기록 할 프로젝트를 이끌고 있습니다. 나는 수년간 자료를 보유하고 싶다. 그러나 장기적인 추세에 필요한 반면 단기 보고서 작성에는 필수적이지 않은 데이터로 기본 테이블이 부풀어 오르는 것을 막고 싶습니다.

이 상황을 처리하는 가장 좋은 전략은 무엇입니까? 이전 데이터를 다른 테이블에 보관하기 만하면됩니까? 또는 데이터 자체의 일부 통합을 통해 "롤업"한 다음 다른 테이블에 저장하십시오. 아니면 완전히 다른 것?

추가 정보 : 우리는 SQL 서버를 2005

4

우리는 두 가지 방법을 모두 내 작업에 사용하지만 조금 다르다면 30 일 동안 기본 데이터 테이블에 모든 판매 데이터를 보관 한 다음 야간 (야간 작업의 일부) 일 매출을 요약 데이터로 집계합니다 (n 수량 of x product of today)를 별도의 테이블에 보관하고 30 일 이상의 매출을 다른 데이터베이스에 보관 한 다음 1 년에 한 번 (새해 세일) 새 아카이브 데이터베이스가 시작됩니다. 정확한 것은 아니지만 ..

이렇게하면 요약 데이터를 빠르게 얻을 수 있으며 현재 판매중인 모든 데이터를 보관할 수 있으며 세부적인 보관 데이터는 무제한으로 저장할 수 있습니다. 우리는 그것을 하나의 데이터베이스 (다른 테이블에)로 유지하려고 시도했지만 데이터베이스의 파일 크기 (interbase)가 커져서 시스템을 끌어 내릴 수 없었습니다.

우리가 연결과 같은 여러 데이터베이스에 걸쳐 자세한 데이터를 액세스하고있는 유일한 진짜 문제 끊는 속도가 느린 및 분석은 SQL이 아닌 코드에서 수행해야합니다


1

이러한 옵션 중 하나가 우수하지만, 정말 문제 영역에 따라 달라을 사용하고 있습니다. 현금 잔액이나 통계 데이터와 같은 것들은 레코드를 롤링하고 통합하는 것이 가장 좋은 방법이라고 생각합니다. 롤업 된 레코드를 병렬 아카이브 테이블로 이동하여 "언롤"할 수있는 방식으로 키잉 할 수 있습니다. 필요한. 이렇게하면 기본 데이터 테이블을 깨끗하고 빠르게 유지할 수 있지만 감사 등을 위해 추가 데이터를 보유 할 수 있습니다. 핵심 질문은 "롤업"프로세스를 구현하는 방법입니다. 자동으로, 트리거 또는 서버 측 프로세스를 통해 또는 응용 프로그램 수준에서 사용자가 개입하여 사용할 수 있습니까?


4

당신은 SQL 서버 2005를 사용하는 경우,이 partitioned tables을 사용하는 것이 좋습니다.


2

@ Jason - 평범한 오래된 텍스트 파일에 데이터를 보관하면 데이터에서 장기 추세 분석을 쉽게 수행 할 수 있습니다.

@ 제이슨 - 제 요점은 임의의 일종의 특수 분석 (예 : 동향)을 비즈니스 사람이 데이터에 수행해야 할 경우 데이터를 텍스트 파일로 올리거나 보관하는 것이 실제로 해결되지 않는다고 생각합니다. 어떤 문제. 물론 텍스트 파일을 사용하는 코드를 작성하는 것은 많은 언어에서 쉽지만 그 문제는 해결되었습니다. 또한 오늘날의 RDBMS는 설치와 관리가 제대로 이루어질 때 모두 내구성이 강하다고 주장합니다. 그들이 왜 당신이 하나의 비즈니스를 운영한다면 (데이터를 아카이브하는 것만 빼고)? 필자는 텍스트 파일의 내구성이 데이터베이스의 내구성보다 우수하다는 이유로 일반 텍스트 파일에 보관하는 지점을 보지 못했습니다.


2

예산과 같은 제약 조건에 따라 데이터웨어 하우스 응용 프로그램의 완벽한 후보와 비슷합니다. 일반적으로 데이터웨어 하우스로 사용할 새 서버가 도입됩니다. SQL Server 2005는 기본적으로 많은 활동을 지원하므로 추가 SQL Server 서비스 (예 : Analysis Services, Reporting Services)를 활용하여 사용자에게 추가적인 가치를 제공 할 수 있습니다. (http://www.microsoft.com/technet/prodtechnol/sql/2005/dwsqlsy.mspx 참조)