이것은 데이터 마트 /웨어 하우스를 처음 작성한 시도이며 스키마를 가장 잘 설계하는 방법에 대해 약간 혼란 스럽습니다. 프로젝트 배경 : 원래 클라이언트에 대한 정보를 캡처하는 관계형 데이터베이스를 만들었습니다. 단순화 된 스키마는 다음과 같습니다.데이터 마트 생성 방법
ClientTbl:
ID:PK;
FName:String;
LName:String;
ClientEDU(one to many)
ID:PK;
ClientID:FK;
SchoolName:String;
Degree:String;
GPA:String;
ClientJobs(One to many)
ID:PK;
ClientID:FK;
OrganizationName:string;
Industry:String;
StartDate:Date;
EndDate:Date;
Salary:double;
CityLocation: String;
이것은 단순한 예입니다. 실제로는 수천 개의 레코드를 보유하는 여러 개의 테이블이 있습니다. 이 테이블에서 쿼리를 실행하려고 할 때 매우 많은 시간이 소요될 수 있습니다. 데이터 마트를 만드는 것이 도움이 될 것 같습니다. 이렇게하면 밤마다 시간이 많이 걸리는 데이터 마트에 대한 업데이트를 실행할 수 있습니다. 그런 다음 우리 DM에 묻는 데이터를 쿼리하는 것이 빠릅니다. 스키마를 가장 잘 설계하는 방법에 어려움을 겪고 있습니다. 예 문제는 내가 위의 예제 테이블을 기반으로, 데이터 마트에 대답하고 싶은 이것이다 : 내 독서에서
% of clients that attend each school in our db
% that have each degree in our db
Avg salary of client
Avg length of stay at a job
% of clients that worked in each city, that is found in the db
, 나는 사실 테이블 (평균 급여를 모두 계산 된 값을 포함 할 것을 알고, 길이 등) 및 각 차원의 데이터 (작업 또는 교육)을 포함하지만 나는 그들이 어떻게 묶여 있는지 이해하지 못한다. 내 팩트 테이블에 각 클라이언트에 대한 행이 있습니까? 한 행만?
어떤 도움을 내가 '데이터웨어 하우스는'마법의 탄환 생각하지 않습니다
감사
Run - 걸어 서지 않아 서점에 가서 Ralph Kimball의 The Data Warehousing Toolkit을 구입하십시오. 데이터웨어 하우스에는 많은 부분이 있으며 짧은 대답만으로는 충분하지 않습니다. –
그래, 전 며칠 전에 실제로 샀어. 그러나 사실, 나는 충돌 과정이 필요합니다. 이 프로젝트는 곧 끝날 예정이며 읽을 시간이별로 없습니다. – jason
"읽을 시간이 없습니다." 그렇다면 당신은 운명을 잃습니다. 그것은 단순하지 않습니다. 데이터웨어 하우징에 대한 로열로드는 없습니다. 충돌 코스는 충돌로 이어집니다. 건배. –