2016-05-31 1 views
0


내 사건

나는 그것의 통화 및 전화 데이터가 데이터웨어 하우스를 설계하고있어 추천 날짜/시간 차원입니다. 내 팩트 테이블에서 (사실은 통화) 나는 그런 CallStart, CallEnd, CallAnswered, CallRecordSaved 여러 DATETIME 필드가 않습니다, 등 ... (그 모든 year, month, day, hour, minute, second가)

내 질문은 내가 DATETIME 데이터 유형으로 해당 필드를 저장하거나해야한다 내가 그들을 참조해야합니다 해당 DW에서 큐브를 생성하고 일부 DateTime 값 사이의 시간 차이를 계산할 계획 인 것을 고려하여 다른 테이블 (날짜/시간 차원)에 추가하십시오.

당신은 어떻게 생각하십니까 ??

+2

두 값의 차이를 계산하려면 기본 데이터 형식을 사용하여 저장하는 것이 좋습니다. 차이에 대한 차원 테이블을 사용하는 것은 번거로운 일입니다. –

+0

@ GordonLinoff 동의하지만 날짜/시간 차원이없는 분석을 수행하면 훨씬 더 무겁 냐고 물어야합니다 (예 : 전화 걸기, 월별, 일별 등) ?? – Fourat

+0

고든 (Gordon)과 포 아트 (Fourat)와 동의하십시오. 나는 CallStart를 datetime으로, Duration int를 초로 사용했습니다. 각 집계 함수의 지속 시간을 계산할 필요없이 datetime의 모든 이점 –

답변

0

내가 과거에 한 일은 가장 중요한 날짜/시간 차원의 날짜/시간 차원을 가졌으며 그 다음에 다른 차원 (예 : "전화")을 사용하여 한 곳에서 유용 할 수 있습니다. 이 차원에는 날짜 테이블의 모든 열이있을 필요는 없으며 일반적으로 추가 속성에 대한 날짜/시간 필드 만 있습니다.

이것은 모든 경우에 어울리지는 않지만 두 세계에서 최고의 것을 제공합니다. 즉, 차원 필드를 해당 날짜/시간 테이블의 키로 다시 가져올 수 있다는 장점이 있습니다. 필요하다면보기로하고, 그 점에서 앞으로 호환 될 수있는 종류입니다.

1

이전 의견이 마음에 들면 하나의 필드 (callStart)만으로 전체 차원을 수행하면됩니다. 그러나 어떤 통화량을보고 있습니까? 분당 1 회의 평균 통화, 분당 10 회 등. 봉우리의 최고점은 어떻습니까? 콜금비가 순조롭게 변화하면 시간 세분성을 높일 수 있습니다. 같은 차원에서 날짜와 시간이 필요합니까? 별도의 측정 기준으로 시간 버킷과 날짜를 사용할 수 있습니까? 기간과 유사합니다. 지속 시간과 버킷 값으로 유지하십시오. 통화 시작 날짜가 이미 있습니다. 편집 질문에 다시 돌아갑니다. 각각에 대해 datetime을 저장 하겠지만 시작 부분 만 차원에 연결합니다. 나머지는 표시 할 수 있지만 탐색은 사용할 수 없습니다.

+0

ETL에서 계산을 수행하지 않으므로 날짜/시간 값을 저장해야합니다 (기록 용). 한편 나는 CallStart를 날짜/시간 차원과 다른 필드를 datetime으로 참조하는 아이디어를 별도의 차원에서 좋아합니다. 또한, 이제는 분당 평균 100 통화 + 평균 통화 – Fourat

관련 문제