2

背景:通話時間、通話時間(休日通話または非休日通話、ビジネス通話または非ビジネス通話)、加入者の年齢層に関して顧客をセグメント化するために、通話詳細レコード(CDR)データの分析を行っています。と性別。データは2つのテーブル名からのもの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を設計しています。

ここに画像の説明を入力してください

Call_dateには、年、月、日を含む通話日が含まれます。Call_timeは、秒単位で発生する呼び出しの時間です。

質問: -call_timeを秒単位で取得すると、1日あたり86400列になります(次元の呪いの可能性があります)。したがって、30秒の時間パルスを取得することで次元を減らすと考えます(テレコムはパルスの基本にお金を請求し、30コンテキストのパルス持続時間です)。最初の質問は:-時間をパルス持続時間に置き換える最良の方法ですか?そして2番目は:-1人の加入者がパルスの範囲で2回以上の呼び出しを行う場合、問題が発生する可能性があります。つまり、最初の呼び出しは21:01:00に開始し、21:01:05に終了し、2番目の呼び出しは21:01:15に開始します。 21:01:20に終了します。これらのタイプの問題を解決する方法。

4

2 に答える 2

4

もし私があなたなら、時間を10分のスロットに分割し、リンクリストを使用して、指定されたタイムスロット内に複数の継続時間を保存するので、時間の合計ディメンションは144になります(10分までのロールダウンのみを制限します)。

于 2013-04-19T07:06:57.313 に答える
2

start_call_time、end_call_time、ellapsed_call_timeを秒単位で保持します。

その場合、ellapsed_timeがあるからといって、キューブのディメンションが86400メンバーになるわけではありません。'範囲/バンド'ディメンションを設定できます。つまり、インスタントではなく間隔を使用して作成されたディメンションです。これは、たとえばicCube(www)で可能なことです。

于 2013-02-28T06:43:12.433 に答える