由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - 聊Data Warehouse 3. Facts and Dimensions (转载)
相关主题
data warehouse里面,所有dimension table的数据要拷贝到新的fact table里面,觉得这做法比较傻。Any thoughts about two slowly chaning dimensions have FK relationship
fact table 和 dimension table 的区别到底是什么?求教...初级问题
一个ETL process 里边 change data capture 的问题, 大家讨论how to see all the tables in SQL*PLUS?
query questionsforeign key reference to two tables? how to do it?
也問 Common Table Expression 问题how to list all tables in my account?
DBA们说说现在你管理的系统,啥东西你觉得最困难?Can I create thousands table in one...
工作很烦恼,该用pl-sql,楞要用AB INITIO请教用ACCESS做REPORT(TABLE & GRAPH)
SSAS电面问题Oracle下如何能得到所有table的名字?
相关话题的讨论汇总
话题: fact话题: dimension话题: 代号话题: table话题: tables
进入Database版参与讨论
1 (共1页)
g********s
发帖数: 3652
1
通过ETL这道工序,不同来源不同格式的数据被收拾整齐后放进一批用于产生报表的
tables.
这些tables是按照star schema的方式设计的,它们分为Dimension tables 和Fact
tables. 举个简单的例子,假设数据仓库记录的是Mutual Funds 销售业绩,那么
每卖出的一份Mutual Fund,都需要记录某推销员,某月某日,卖出了某个Mutual Fund
给某某客户。
这一条条记录就叫 row, record or transaction. 如果你买了三个不同的Mutual Fund
,就有三行记录。这些细节被存放在叫Fact table里。
问:既然一切信息都包括在 Fact table了,那么Dimension tables放什么信息?
答:举个例子
Fact table 每条记录只是这个样子的:
客户 产品 时间 推销员 金额
55551 E12 321 098 4,800
55551 R78 321 098 182,000
89999 K95 776 098 8,500
........
........
你能看出来,55551号客户至少在代号为321的那一天,从代号为098的推销员手里买了
$4,800的代号为E12 的产品还买了$182,000的代号为R78的产品
Fact table 里除了 金额,全是‘代号‘。这个金额就是 measure, 其余的每个代号都
分别代表一个dimension.
问题是,银行经理必须知道加利福尼州上个季度的销售额是多少?
那么这个时间代号321到底是哪一天?客户55551住在哪个州?
答案是:所有用‘代码’代表的那个Dimensio的细节都在Dimension table藏着呢!
先看客户Dimension table:
客户代号 客户名 客户姓 State
55551 Tony Li CA
89999 Rose Wang NY
33367 Xing Zao AZ
...........................
再来看时间 Dimension table:
时间代号 日期 月 季度 年
321 11/12/2013 11 4 2013
776 3/7/2014 3 1 2014
..............
如果只有Fact table,报表无法显示这份钱来自哪个州,哪个季度。
可见:Dimension tables记录的是详细具体全面的 客户,产品,时间,推销员的信息
,而Fact table只记录了这些信息的一个‘代号’。当形成报表时,我们必须联合使用
dimension tables and Fact tables.
你们上SQL课学的 join 就是 join Dimension table and Fact table。可见你们学的
东东很关键!
1 (共1页)
进入Database版参与讨论
相关主题
Oracle下如何能得到所有table的名字?也問 Common Table Expression 问题
analyze 在oracle里怎么用?DBA们说说现在你管理的系统,啥东西你觉得最困难?
急问一个关于T-SQL的问题,谢谢工作很烦恼,该用pl-sql,楞要用AB INITIO
interview question (SQL)SSAS电面问题
data warehouse里面,所有dimension table的数据要拷贝到新的fact table里面,觉得这做法比较傻。Any thoughts about two slowly chaning dimensions have FK relationship
fact table 和 dimension table 的区别到底是什么?求教...初级问题
一个ETL process 里边 change data capture 的问题, 大家讨论how to see all the tables in SQL*PLUS?
query questionsforeign key reference to two tables? how to do it?
相关话题的讨论汇总
话题: fact话题: dimension话题: 代号话题: table话题: tables