事实表的填充
0
请问大家一下,我们在填充完多张维度表之后,如何用这些维度表来填充事实表,我的理解是将这些维度表进行笛卡尔基取出各维度表中的代理键,然后根据维度表中的其他字段通过聚集函数得到事实表中的度量,那也就是说事实表中的每一行元组都是有与之相关的维度表得来的吗??如果这样的话,那这些维度表笛卡尔基之后不就是一张超大的表吗?这样再插入到事实表中岂不是会花很久的时间吗?
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
2 个回复
BAO胖子 - 15年BI经验,涉足电力,快消品,医药,信息服务等行业的BI老兵。 2015-09-08 回答
赞同来自:
2. 事实表大部分源自源系统的交易表。比如商场里面卖商品给客户,不可能每个客户购买了所有的商品(这个就是你说的笛卡尔积场景),因此构建事实表的时候,就是将客户编码,商品编码转换成对应的代理键。
3. 什么情况下会用到一点笛卡尔积?这个场景也是有的,一种是本期和去年同期对比这一类,有可能去年同期存在的数据项目本期不存在,这个时候会用笛卡尔积将数据项填满然后join本期,去年同期,本年累计之类的数据。还有一种情况是做计划/forecasting之类的,需要使用总量数据进行分摊计算,这个时候会用到笛卡尔积填满数据项。但!!!以上两种场景都发生在汇总级别数据,因此即使做笛卡尔积运算也不会带来超级规模的数据。
以上。
牟瑞 - 大数据 Hadoop 讲师 Hadoop入门课程地址:http://www.hellobi.com/course/39 有架构师,技术总监,CTO的职位请联系我! 2015-09-08 回答
赞同来自:
另外。数据仓库保留的是历史数据,一般都是顺序插入,所以往事实表中插数据效率不会很低。
以上,我的一个简单的回答,另外我给你邀请了大牛,看看能不能更详细的回答一下。