문제

데이터웨어 하우징을 처음 사용합니다. 먼저 Data Warehouse Toolkit의 사본보다 정확하고 싶습니다. 내 사서함 (Snail Mail : P)의 방법입니다. 그러나 나는 이미 그물에서 발견 된 것과 함께이 모든 것을 공부하고 있습니다.

그물에서 찾을 수없는 것은 당신이 DW에 하나 이상의 사실을 가진 것처럼 보이는 것처럼하는 일입니다. 내 경우 (보험)에서는 정기적으로 발생하지 않는 환불을받습니다. 한 명의 고객은 3 개월 동안 아무도없고 같은 달에 10 명을 가질 수 없습니다. 다른 손에는 "가입 비용"(올바른 영어 기간이 무엇인지 확실하지 않지만 매월 또는 3 개월마다 발생합니다. 그것은 나에게 두 가지 뚜렷한 사실을 분명하게 보입니다.

그 두 가지는 클라이언트 또는 "보험 제품"과 같은 일부 치수에 의해 느슨하게 결합됩니다. 이제 두 가지 다른 보고서를 생성 한 다음 DW 외부에있는 보고서를 연결 해야하는이 두 개의 다른웨어 하우스입니다. 또는 단일 하강 DW에 맞게 이것을 설계하는 방법이 있습니까? 또는이 두 가지 사실을 결합해야합니까? 나는 아마도 환불에 세분화를 잃을 것입니다.

일부 블로그 내가 읽은 DW는 항상 하나의 사실 테이블을 가지고 있습니다. 다른 사람들은 S와의 사실 테이블이 무엇인지를 설계하는 단계를 언급하지만 그 사이에 링크가있는 경우 명확한 지시가 없거나 동일한 DW 프로젝트의 뚜렷한 구성 요소입니다.

누구도 DW 디자인의 정확한 부분에 대한 참조를 알고 있습니까?

도움이 되었습니까?

해결책

질문을 거꾸로 가져 왔습니다.

데이터웨어 하우스는 하나 이상의 사실 테이블을 가질 수 있습니다. 그러나 팩트 테이블 간의 조인을 최소화하고 싶습니다. 다른 사실 테이블에서 사실 정보를 복제하는 것은 괜찮습니다.

언급 한 대상의

:

환불은 사실입니다. 타임 스탬프는 환불 사실의 차원입니다.

가입 비용은 사실입니다. 타임 스탬프는 가입비의 차원입니다.

환불은 두 번 이상 발생할 수 있습니다. 나는 각 고객이 한 가지 가입비를 가지고 있다고 추측하고 있습니다. 그래서 우리는 지금까지 두 가지 사실 테이블, 고객 및 고객 환불을 가지고 있습니다.

가장 많은 3 환불 (예를 들어)에만있을 수 있음을 알고 있다면 고객 환불 사실 테이블을 제거하고 고객 테이블에 3 개의 환불 열을 넣을 것입니다.

보험에 대해서도 언급합니다. 고객은 둘 이상의 정책을 가질 수 있습니다. 그래서 우리는 세 번째 사실 테이블을 가지고 있습니다.

데이터웨어 하우스는 일반적으로 스타 스키마 를 사용하여 설계되었습니다. 스타 스키마는 기본적으로 하나 이상의 차원 테이블에 연결된 하나의 사실 테이블입니다. 우리는 이미 3 개의 사실 테이블을 정의한 이래 데이터웨어 하우스에서 하나 이상의 별이있을 것입니다.

다른 팁

나는 오래된 게시물에 대답하고 있지만 제공된 답변 중 하나에 만족하지 않는다는 것을 알고 있습니다. 나는 그 질문에 대답하지 못했다고 느낍니다.

스키마는 하나 이상의 사실을 가질 수 있지만 이러한 사실은 모든 키 관계로 연결되지 않습니다. 정규화 된 / 트랜잭션 데이터베이스를 쿼리하는 것처럼 단일 쿼리의 팩트 테이블에 참여하지 않는 것이 가장 좋습니다. 많은 사람들이 많은 조인의 성격으로 인해, 시도하면 결과가 올바르지 않을 것입니다.

찾고있는 답변은 기본적으로 각 팩트 테이블 (스키마)을 별도로 조회하고 결과를 병합하는 것을 기본적으로 "드릴"해야합니다. 이는 데이터웨어 하우스를 참조한보고 / 분석 도구를 통해 SQL을 사용하여 발생할 수 있습니다. 이 작업을 수행하는 방법에 대한 답을 복제하는 대신 모든 사람에게 두 개의 아주 좋은 기사를 보내 드리겠습니다.

Chris Adamson이 뚫을 수있는 세 가지 방법

창고의 - Ralph Kimball

원하는만큼 많은 사실 테이블을 가질 수 있습니다.예제에서는 다음과 같을 수 있습니다 :

fact_ins_transaction

DimProduct 몇 가지 제품을 나열합니다 - 구독 중 하나입니다. dimtransactionType 은 가능한 거래 (구매, 환불, 반복 구독료 ...)를 나열합니다

이제는 단순화 된 구독보고에 관심이 있다고 가정 해보고 다음과 같이 factsubscription 를 추가 할 수 있습니다.

fact_ins_subscription

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