3

나는 신인이다. Name, JoinedOn 등 거의 변경되지 않는 기본 열이있는 Customer 테이블이 있습니다. "Status", "CustomerType", "PublishStatus", "BusinessStatus", "CurrentOwner"등과 같이 시간이 지남에 따라 변경 될 수있는 다른 열 집합도 있습니다. 역사가없는 순간. DW에서 다음 열이 "Status", "CustomerType", "PublishStatus", "BusinessStatus", "CurrentOwner"를 변경하면 추적하고 싶습니다. 이러한 테이블을 추적하기 위해 다른 테이블을 만들면 테이블에 다음과 같은 열이 표시됩니다.천천히 변화하는 치수 대 사실

"CustomerId", "CustomerType", "PublishStatus", "BusinessStatus", "CurrentOwner" , "ExpiredOn", "IsCurrent"

이 방법이 맞습니까? 그리고 그렇다면이 새로운 테이블은 사실입니까 아니면 천천히 변화하는 차원입니까? CustomerType이 A에서 B로 변경되었을 때와 같은 쿼리를 실행하고 싶습니다. 언제 출판 되었습니까? BusinessStatus가 소유자 인 사람을 변경했을 때?

답변

2

고객을 모델링 할 때 실제로 어떤 방식으로 대응하는 차원을 사용할 것인가에 따라 달라집니다. 예를 들어, 판매 시점에 "CustomerType"을 기준으로 "Customer"차원과 관련된 일부 매출을 요약하려면, 역사적 세부 사항을 천천히 변화하는 차원의 일부로 유지해야합니다.

천천히 변화하는 "고객"차원을 나타내는 해당 테이블에서 많은 고객 보고서를 실행할 수 있습니다. 그러나 고객 수가 많아지면 고객 상태 변경을위한 별도의 팩트 테이블을 만드는 것이 좋습니다.

그래서 요약하면 천천히 변화하는 차원에서 시작하십시오. 고객 수가 너무 많아지고 고객의 불량 변경에 대한 보고서가 너무 느리게되면 사실 테이블을 추가하고 데이터 복제에 대해 걱정할 필요가 없습니다.