数据仓库维度设计的问题,不知大家都有什么高见?

herony420 2006-08-28 02:03:14
在实际的电信应用中,存在这样的一种情况,对手机用户进行通话时长等的分析,继而对手机用户的属性进行定义。是否应该建立对针对手机号码的一个维度,用以记录这些手机的一些信息,如果建立的话,这个维度记录是非常庞大的,会有几千万,如果不建立而作为退化维度处理的话,不能保证在事实表中的唯一性,且扩展的属性也不好增加,不知大家有何高见呢?我想类似这样的应用应该会有不少的!
...全文
1126 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
THS060118 2006-11-21
  • 打赏
  • 举报
回复
学习
yfchain 2006-11-03
  • 打赏
  • 举报
回复
任何OLAP需求都可以用select 语句来解决。LZ的问题没有什么奇怪的,LZ只是想知道如果做OLAP而已。
xiongliang2003 2006-08-30
  • 打赏
  • 举报
回复
lz ,你不能怪别人,你描叙的需求就是能用报表解决的需求。

要不你把需求描叙再详细点,要把你认为要建立纬度的必要性,说出来,把那个需求描叙详细点。
lih163 2006-08-30
  • 打赏
  • 举报
回复
学习
herony420 2006-08-29
  • 打赏
  • 举报
回复
看来只能到此为止了,我们的沟通始终不能走在一起,呵呵
notruiyi 2006-08-29
  • 打赏
  • 举报
回复
就你这个报表通过三次抽取就可以了
1.你的原始表格:号码、通话开始时间、通话结束时间、通话发生地
2.计算加入通话时间:号码、通话时间、通话发生地(这个还是流水)
3.汇总:号码,一天总通话时间,一天总通话次数,日期

从第三个表select你的数据就能得到了,跟仓库没有任何关系
herony420 2006-08-29
  • 打赏
  • 举报
回复
呵呵,的确如你所说,这样划分的确是不对的,我也仅仅是为了这样的实现方式而做得简单描述,事实上并没有这样的需求,姑且不论这样的需求定义是否有问题,单纯从技术角度考虑这样的方式~~
notruiyi 2006-08-29
  • 打赏
  • 举报
回复
你这个描述是不正确的,你的高收益的定义有问题,你比如你说的每天通话超过1小时的用户群定义高收益,难道他们每天都要超过1小时?还是只要一天超过就算他们终生为高收益?呵呵频繁用户也有这个问题
herony420 2006-08-29
  • 打赏
  • 举报
回复
我把我的应用需求简单描述一下:
主要需求:
可以根据手机号码的通话时长抓取不同的用户群,比如:每天通话时长超过1个小时的用户群定义为高收益;五天内通话接通次数超过N次的用户定义为频繁使用用户;等等。

提供的数据:手机号码、接通时间、通话时长等。

由于我是初学者,虽然在理论上看了较多,但没有实际经验,呵呵,见笑了,还请指点,谢谢
herony420 2006-08-29
  • 打赏
  • 举报
回复
notruiyi(notruiyi) ,谢谢指点,如果是使用多维数据集的话,你觉得怎样设计这个维度与事实较好呢?
notruiyi 2006-08-29
  • 打赏
  • 举报
回复
你不说清楚所有的数据要求,我怎么知道是用一个事实实现还是几个?
就现在这个例子使用仓库是完全错误的,OLAP使用几次抽取倒还可行
herony420 2006-08-29
  • 打赏
  • 举报
回复
每天生成一个报表?呵呵,应用可不是仅仅这样子的一个呀,我举的是一个可以预见的例子。现在已经想的差不多了,就是维度化事实了
notruiyi 2006-08-29
  • 打赏
  • 举报
回复
你这个需要数据仓库吗?你需要保存这个历史数据吗?每天产生一个报表罢了
  • 打赏
  • 举报
回复
日报表

日期 类型 号码列表
NNNN 累计超过1小时 XXXX;XXXX;XXXXX;....
NNNN 3次以上 XXXX;XXXX;XXXXX;....
NNNN 其它 XXXX;XXXX;XXXXX;....
NNNN ……

忽略具体需求,或者具体需求都没谱,搞抽象层面上的维度考虑,不知你什么时候能有结果。
有结果的时候一定要来说说,让咱们受教一下。
zhylzf 2006-08-29
  • 打赏
  • 举报
回复
ding
herony420 2006-08-28
  • 打赏
  • 举报
回复
notruiyi(notruiyi),是这样的,我仅仅是举一个类似的例子。
比如:每天通话次数超过3次的电话号码,或者再引申一下,每天(或其他时间段)在本地区通话次数超过3次的电话号码。
主要是为了如何存储和更新而头疼,有朋友说可以根据业务不同而做分表~~

流水记录是按照每次通话来记录的,如:号码、通话开始时间、通话结束时间、通话发生地等信息
notruiyi 2006-08-28
  • 打赏
  • 举报
回复
在这里还需要知道原先的流水记录是谁设计的,你吗?他们的结构怎么样,原先的数据是怎么处理的?
notruiyi 2006-08-28
  • 打赏
  • 举报
回复
比如我希望知道每天通话时间在3分钟到5分钟的通话次数.
我希望知道每天通话次数超过3次的电话号码
notruiyi 2006-08-28
  • 打赏
  • 举报
回复
你的问题是"手机用户进行通话时长的分析",你这个说法不是很清楚,请把你的需求详细说明一下,最好举例所有需要系统回答的问题
herony420 2006-08-28
  • 打赏
  • 举报
回复
是的,就是针对这样的应用,如果采用维度化事实的方法,theforever(碧海情天)所说的总时长和次数作为标识惟一的主键,且不说更新量有多大,通话时间这一点就不能满足业务需求。对于上亿的这样的数据,作为维度处理我也认为是不合理的,但作为维度化事实来处理又没有这方面的经验,还是需要各位能够指点迷津!
加载更多回复(3)

7,388

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据仓库
社区管理员
  • 数据仓库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧