维度表和事实表总结

第一:维度表

维度表:一般是对事实的描述信息。每一张维表对应现实世界中的一个对象或者概念。 例如:用户、商品、日期、地区等。
维表的特征:
维表的范围很宽(具有多个属性、列比较多)
跟事实表相比,行数相对较小:通常< 10万条
内容相对固定:编码表
时间维度表:
日期ID day of week day of year 季度 节假日
在这里插入图片描述

第二:事实表

事实表中的每行数据代表一个业务事件(下单、支付、退款、评价等)。“事实”这个术语表示的是业务事件的度量值(可统计次数、个数、件数、金额等),例如,订单事件中的下单金额。
每一个事实表的行包括:具有可加性的数值型的度量值、与维表相连接的外键、通常具有两个和两个以上的外键、外键之间表示维表之间多对多的关系。
事实表的特征:
非常的大
内容相对的窄:列数较少
经常发生变化,每天会新增加很多。
1)事务型事实表
以每个事务或事件为单位,例如一个销售订单记录,一笔支付记录等,作为事实表里的一行数据。一旦事务被提交,事实表数据被插入,数据就不再进行更改,其更新方式为增量。
2)周期型快照事实表
周期型快照事实表中不会保留所有数据,只保留固定时间间隔的数据,例如每天或者每月的销售额,或每月的账户余额等。
3)累积型快照事实表
累计快照事实表用于跟踪业务事实的变化。例如,数据仓库中可能需要累积或者存储订单从下订单开始,到订单商品被打包、运输、和签收的各个业务阶段的时间点数据来跟踪订单声明周期的进展情况。当这个业务过程进行时,事实表的记录也要不断更新。

### 事实表维度表的区别 在数据仓库的设计中,事实表维度表是两个核心概念。以下是两者的主要区别: #### 定义差异 - **事实表** 是用来记录业务过程中的具体数值数据的表格,通常包含度量值(Metrics 或 Measures),这些值可以量化某个特定事件的结果[^4]。 - **维度表** 则是用来描述事实表中所涉及的对象及其属性的表格,它提供了上下文信息以便更好地理解事实表中的数据[^2]。 #### 结构特点 - **事实表** 的结构较为简单,主要由外键(指向对应的维度表)以及各种衡量指标组成。它的每一行代表一次具体的事务或者交易行为[^1]。 - **维度表** 更加复杂一些,因为除了主键之外还包含了丰富的描述字段来刻画实体特征。例如,“时间”这个维度可能不仅有日期本身还包括星期几、季度等附加信息[^3]。 #### 数据粒度 - 在星型模型下,**事实表** 中的数据是以最细颗粒级别存储;这意味着每一条记录都应该能够独立存在并反映真实世界发生的一次操作或状态变化情况。 - 而对于同一个主题领域来说,不同层次上的汇总需求可以通过关联相应的低级/高级别的**维度表** 来实现灵活查询分析功能。 #### 使用场景 - 当涉及到计算KPIs (Key Performance Indicators), 如销售额总金额、平均订单价值等情况时,则需要用到**事实表**, 因为其中保存着所有必要的测量单位以支持此类运算逻辑. - 如果希望获取更详细的背景资料比如客户性别分布比例或者是产品类别销售占比等问题解答的话就需要依赖于那些提供额外解释说明作用的**维度表**了. ```sql -- 查询示例:通过连接事实表维度表进行分析 SELECT d.customer_name, SUM(f.sales_amount) AS total_sales FROM fact_table f JOIN dimension_customer d ON f.customer_id = d.customer_id GROUP BY d.customer_name; ``` ### 总结 综上所述,在构建高效可用的数据仓储解决方案过程中,合理划分好哪些属于基础性的定量统计类项目放入到**事实表**当中去处理,而把其余辅助性质较强的信息则安排至各自的专属位置即成为各自所属类型的**维度表**成员之一部分显得尤为重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值