科技小数据|一文了解数据仓库( 四 )



科技小数据|一文了解数据仓库
本文插图

雪花模式
雪花模式(Snowflake Schema)是对星形模式的扩展 , 每个维表可继续向外连接多个子维表 。 (三范式代表作)
星形模式中的维表相对雪花模式来说要大 , 而且不满足规范化设计 。 雪花模型相当于将星形模式的大维表拆分成小维表 , 满足了规范化设计 。 然而这种模式在实际应用中很少见 , 因为这样做会导致开发难度增大 , 而数据冗余问题在数据仓库里并不严重.

科技小数据|一文了解数据仓库
本文插图

星座模式
星座模式(Fact Constellations Schema)也是星型模式的扩展 。
前面两种维度建模方法都是多维表对应单事实表 , 但在很多时候维度空间内的事实表不止一个 , 而一个维表也可能被多个事实表用到 。 在业务发展后期 , 星座模式将作为最主要的维度建模 。
维度表和事实表
维度表(dimension)表示对分析主题所属类型的描述 。 比如"昨天早上张三在京东花费200元购买了一个皮包" 。 那么以购买为主题进行分析 , 可从这段信息中提取三个维度:时间维度(昨天早上) , 地点维度(京东), 商品维度(皮包) 。 通常来说维度表信息比较固定 , 且数据量小 。 维度表:一般是对事实的描述信息 。 每一张维表对应现实世界中的一个对象或者概念 。 例如:用户、商品、日期、地区等 。 常用于一个客观世界的维度描述 , 往往列比较多 。 审视数据的角度维表的特征:维表的范围很宽(具有多个属性、列比较多)跟事实表相比 , 行数相对较小:通常< 10 万条静态表示的 , 名词性质的表
事实表(fact table)表示对分析主题的度量 。 比如上面那个例子中 , 200元就是事实信息 。 事实表包含了与各维度表相关联的逻辑外键 , 并通过JOIN方式与维度表关联 。 事实表的度量通常是数值类型 , 且记录数会不断增加 , 表规模迅速增长 。 事实表的特征:非常的大内容相对的窄:列数较少经常发生变化 , 每天会新增加很多动态表示的 , 动词性质的表事务型事实表(每天导入新增)以每个事务或事件为单位 , 例如一个销售订单记录 , 一笔支付记录等 , 作为事实表里的 一行数据 。 一旦事务被提交 , 事实表数据被插入 , 数据就不再进行更改 , 其更新方式为增量 更新周期型快照事实表(每日全量)周期型快照事实表中不会保留所有数据 , 只保留固定时间间隔的数据 , 例如每天或者 每月的销售额 , 或每月的账户余额等
累积型快照事实表(每天导入新增及变化)累计快照事实表用于跟踪业务事实的变化 。 例如 , 数据仓库中可能需要累积或者存储 订单从下订单开始 , 到订单商品被打包、运输、和签收的各个业务阶段的时间点数据来跟踪 订单声明周期的进展情况 。 当这个业务过程进行时 , 事实表的记录也要不断更新 。 事实维度举例昨天我去菜市场买了一只蝙蝠 , 然后我就被隔离了 。 事实:订单==>买蝙蝠这个事维度:时间==>昨天用户==>我商品==>蝙蝠地理==>菜市场
数据分层
为什么分层:
简单化:把复杂的任务分解为多层来完成 , 每层处理各自的任务 , 方便定位问题 。 减少重复开发:规范数据分层 , 通过中间层数据 , 能够极大的减少重复计算 , 增加结果复用性 。 隔离数据:不论是数据异常还是数据敏感性 , 使真实数据和统计数据解耦 。

科技小数据|一文了解数据仓库
本文插图


科技小数据|一文了解数据仓库
本文插图


科技小数据|一文了解数据仓库


推荐阅读