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,如下所示。

在此处输入图像描述

Call_date 包括带有年、月和日的通话日期。Call_time 是以秒为单位的通话时间。

问题:-如果我们以秒为单位取 call_time,那么它每天有 86400 列(可能是维度的诅咒),所以我们认为通过采取 30 秒时间脉冲来减少它的维度(电信根据脉冲和 30是我们上下文的脉冲持续时间)。第一个问题是:-用脉冲持续时间代替时间是最好的方法吗?第二个是:-如果一个用户在脉冲范围内进行超过 2 次通话,则可能会导致问题,即第一次通话从 21:01:00 开始,到 21:01:05 结束,他在 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 回答