概念

事实表

保存详细记录,包含多个维度的大量行表

img

每个数据仓库都包含一个或者多个事实数据表。

事实数据表通常包含大量的行。事实数据表的主要特点是包含数字数据(事实),并且这些数字信息可以汇总,以提供有关单位作为历史的数据, 每个事实数据表包含一个由多个部分组成的索引,该索引包含作为外键的相关性维度表的主键,而维度表包含事实记录的特性。 事实数据表不应该包含描述性的信息,也不应该包含除数字度量字段及使事实与维度表中对应项的相关索引字段之外的任何数据

包含在事实数据表中的“度量值”有两中:一种是可以累计,另一种是非累计

一般来说,一个事实数据表都要和一个或多个维度表相关联,用户在利用事实数据表创建多维数据集时,可以使用一个或多个维度表。

维度表

在数据仓库中,维度表中的键属性必须为维度的每个成员包含一个对应的唯一值(其实就是键属性为主键,作为事实表的 外键 )。

操作简单, 执行快速, 屏蔽错误, 统一口径

数据分析常用宽表,宽表的设计需要做一个折中. 一方面设计完备的数据仓库是不现实的, 另一方面宽表的前提是足够常用。对于不常用的数据我们的数据平台是支持直接操作的。

  • 近源数据层作为数据源, 主要是不常用的, 简单的数据.
  • 数据中间层, 使用频率很高的基于主题的数据.
  • 基础指标中间层, 基于数据中间层的基础聚合, 使用频率更高. 简化复杂BI过程.

OLTP

Online Transaction Processing

执行基本日常的事务处理,比如数据库记录的增删查改。比如在银行的一笔交易记录,就是一个典型的事务。

  • 专门用来做日常的,基本的操作
  • 实时性要求高
  • 处理的数据量在G级别
  • 高并发,并且要求满足ACID原则
  • 事务的吞吐量是关键性能指标

OLAP

OnLine Analytical Processing 列存储模式或者说nosql模式

数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。典型的应用就是复杂的动态的报表系统

  • 实时性要求不是很高
  • 复杂查询
  • 数据量大TB-PB级别
  • 对数据加工分析,读多写少

星型/雪花模式

星型模型和雪花型模型比较

星形维度(左)

只有当维度表极大,存储空间是个问题时,才考虑雪花型维度

多维数据集的每一个维度都直接与事实表相连接,不存在渐变维度,数据有一定的冗余

e.g 地域维度表中,存在国家 A 省 B 的城市 C 以及国家 A 省 B 的城市 D 两条记录,那么国家 A 和省 B 的信息分别存储了两次

星型模型因为数据的冗余所以很多统计查询不需要做外部的连接,因此一般情况下效率比雪花型模型要高

雪花型维度(右)

雪花型维度描述了更清晰的层次概念

通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能。

多数情况下,选择星型,但是不排除使用雪花型的情况

数仓工具

  • 数据地图 查看所有报表的路径和执行过程. 这样我们可以追查特定字段的数据来源, 广泛用于对账和对数.提供数据任务间的依赖关系, 从而进行快速的全局数据的修补
  • 元数据管理系统 数据字典的文档