2013-02-27 53 views
2

背景:我正在分析呼叫細節記錄(CDR)數據,以便根據呼叫持續時間,呼叫時間(節假日呼叫或非節假日呼叫,業務呼叫或非業務呼叫),用戶和性別的年齡組。數據來自兩個表名cdr (include card_number, service_key, calling, called, start_time, clear_time, duration column)subscriber_detail (include subscriber_name, subscriber_address, DOB, gender column) 我有以下給出的設計OLAP。電信數據的OLAP Cube設計問題

enter image description here

Call_date包括年,月,日呼叫的日期。 Call_time是第二次發生呼叫的時間。

問題: -如果我們採取call_time在第二那麼它有86400列的每一天(可能是維度的詛咒),所以我們想通過需要30秒的時間脈衝以降低其尺寸(電信的收費錢基本的脈衝和30是我們的背景脈衝持續時間)。 第一個問題是: -用脈衝持續時間代替時間是否是最好的方法?並且第二個是: - 如果一個用戶在脈衝範圍內做超過2次呼叫,它可能引起問題,即第一次呼叫在21:01:00開始並在21:01:05結束,並且他在21:01開始第二次呼叫:15,結束於21:01:20。如何解決這些類型的問題。

回答

5

如果我是你,我會將時間分成10分鐘的時間段,並使用鏈接列表在給定的時間段內存儲多個持續時間,因此總時間尺寸爲144(其中限制只能下拉10分鐘)。

+0

謝謝你的回答...我已經用5分鐘的時間解決了問題... – nKandel 2013-04-19 07:15:04

2

我會在幾秒鐘內保持start_call_time,end_call_time和ellapsed_call_time。

然後擁有ellapsed_time並不意味着該立方體的維數爲86400個成員;你可以設置一個'ranged/banded'維度,即一個使用時間間隔而不是時間點建立的維度。例如,icCube(www)就是這種可能性。

+0

是的,我同意你的意見,但我們已經採取了大約30天的5000個客戶通話詳細信息......那麼,如何消除維度的詛咒。 – nKandel 2013-03-05 10:40:42