2013-04-15 6 views
4

정확한 시점에 고객의 상태를 다시 만들려고합니다. 예를 들어, 각 고객은 언제든지 변경 될 수있는 많은 속성을 가지고 있습니다 (예 : 위험 점수, 청구서 제출 날짜, 고객 만족도).데이터웨어 하우스의 특정 시점 스냅 샷

고객이 신용 신청서를 제출할 때마다 제출할 때 이러한 모든 특성의 가치를보고 싶습니다. 결과적으로이 값을 사용하여 예측 모델을 개발하려고합니다.

첫 번째 생각은 효과적이고 만료 날짜/타임 스탬프가있는 유형 2 천천히 변화하는 차원을 만들고 반 개방 참여를 사용하는 것이 었습니다. < = date_of_application < time_expired.

그러나 대부분 이러한 특성은 팩트 테이블의 기록 데이터를 사용하여 복잡한 계산이 필요한 동작 차원입니다. 또한 계산 된 값은 범위 (0- $ 500, $ 500- $ 750 등)를 사용하여 그룹화 할 수도 없습니다. 각 차원에 대한 이러한 모든 특성을 추적하면 폭발 할 수 있습니다. 참고 : 일부 값은 매일 변경되고 다른 값은 임의의 시점에 변경됩니다. 다음과 같이

내 이상적인 데이터 추출은 다음과 같습니다

  • ID 번호를 신용 응용 프로그램 특성 (1)의
  • 값 제출
  • 시간에 대한 특성이 제출
  • 값의 시간에 .. .
  • 특성 값 (A)에 N

신용 응용 프로그램에 이르기까지, 해당 이벤트 당시의 특성을 찾으려는 다른 사실 테이블이 있습니다.

이 문제를 처리하기위한 권장 사항은 무엇입니까? 나는 몇 가지 방법을 참조하십시오

  1. 는 차원이에 열을 추가 하나 개 또는 여러 개의 속성이 별도의 테이블을 작성
  2. 폭발 별도로 내가
  3. 에 관심이 특성을 갖는 특정 테이블을 조회 할 수 있도록 허용 관심있는 모든 속성의 "스냅 샷"을 포함하는 신용 ​​응용 프로그램 팩트 테이블

이러한 문제 중 일부는 Kimball의 ETL Toolkit 설명서 (190-192 페이지)와 그의 데이터웨어 하우스 도구 키트 187-191). pp 154-157에는 매우 관련이있는 "급변하는 몬스터 차원"에 대한 논의가 있습니다. 그래도 이러한 권장 사항을 구현하는 데 문제가 있습니다.

+0

나는 정말로 # 3을 좋아한다. 이러한 특성을 고객의 일반적인 특성이 아닌 해당 응용 프로그램과 관련된 "축퇴 차원"이라고 생각하십시오. 이 질문은 여기에 좋은 대답을 줄지 모르겠다. 왜냐하면 그것은 최종 게임 사용 사례와 DBMS가 얼마나 강력한 지에 따라 달라지기 때문이다. DW applicance는 잠시 동안 아마 # 1을 다룰 수 있습니다. 그러나 모든 고객에 대해 일일 위험 점수를 저장하면 정말 폭발 할 것입니다 ... –

+0

원본 시스템 (OLTP 중)이 불가능할 경우 # 3은 여전히 ​​좋은 옵션입니다 트랜잭션이 발생할 때 값을 기록 하시겠습니까? 즉, 사실 테이블을 작성할 때 사후 처리 ETL 중에 추가해야합니다. # 2에 대한 의견이 있으십니까? 그 중 한 가지 이점은 모듈 방식으로 속성을 만들 수 있다는 것입니다. –

+0

소스 시스템이 응용 프로그램 시점의 속성을 추적하지 못하면 예, ETL 중에 추가해야합니다. # 2는 기본적으로 흥미로운 속성을위한 "독립적 인"SCD 테이블 또는 테이블 세트를 작성하는 것입니다. 어쨌든 스냅 샷이 SCD에 대한 업데이트인지 사실 테이블에 데이터 추가인지에 상관없이 어떤 방식 으로든 ETL 프로세스 중에 데이터의 "스냅 샷"을 생성합니다 ... –

답변

2

관련 테이블 및 관련 레코드에 대한 키가있는 별도의 응용 프로그램 사실 테이블을 생성합니다.(

  • (D) 응용 프로그램
  • (D) 신청자 (또는 고객)
  • (D) 제품
  • (D) 시간
  • : 다음 차원과 팩트 테이블이 있다고 가정하자 D) monthly_scoring_fact (월별 행동 채점)
  • 월별 만족도 (월간 만족도 조사)
  • (F) 만족도 평가 (ad hoc 만족도 평가)

그런 다음 다음과 같은 사실 테이블 응용 프로그램 사실 만들 수 있습니다 : 차원을

  • PRODUCT_KEY 신청자에게 포인트 - - - - -
  • applicant_key 애플리케이션 차원 포인트

    • application_key을 제품 차원에 포인트를
    • time_key - 시간 차원의 포인트
    • monthly_scoring_fact_key - 월간 scori의 최종 결과를 가리 킵니다. NG
    • monthly_satisfaction_fact_key은 - 마지막 만족도 데이터 포인트
    • satisfaction_evaluation_fact_key - 요점은 시간이 일관된 데이터를 얻을 scd0이라고 (만 수정)에서 응용 프로그램의 차원을 유지할 수 있습니다이 방법을 사용하여 임시 평가 데이터

  • 지속합니다.