Data|Data Vault 数据仓库模型构建-3
在Data Vault模型基础上构建数据集市
数据仓库抽取数据的过程中,特别是第一次导入之后的每一次增量抽取往往会遇到这样的问题:业务数据库中的一些数据发生了更改,到底要不要将这些变化也反映到数据仓库中?
在数据仓库中,哪些数据应该随之变化,哪些可以不用变化?考虑到这些变化,在数据仓库中的维度表又应该如何设计以满足这些需要
但是在数据仓库中,其数据主要的特征一是静态历史数据,二是少改变不删除,三是定期增长,其作用主要用来数据分析。因此分析的过程中对历史数据就提出了要求,
有一些数据是需要能够反映出在周期内的变化历史,有一些数据缺不需要,那么这些数据应该如何来控制。
渐变维度1类 - Type 1 SCD
- 保持业务数据和数据仓库中的数据始终处于一致。
- 不记录历史数据。一切不需要维护的历史数据都可以选择这种类型。
- 尽可能的维护来自业务系统中的历史数据,能够真正捕获到这种历史数据的变化
- 添加新的数据。使用的比较常见,基本上除了Type 1之外的情形都会优先考虑这种类型。
- 添加历史列。不会追踪所有的历史记录,只会追踪上一次的历史信息。需要记录历史数据,但是又不需要记录那么多。
构建过程 最好先构建需要的PIT表和Bridge表,这样呢能够方便进行处理.
构建渐变维度1类的数据集市 它显示所有属性的最新值, 我们可以使用hub表(中心表)的键作为维度的代理主键 (PK)。建议使用现有的hub表中的代理键(MD5哈希列), 因为它已经是唯一的,
并将节省为维度生成典型整数代理项的过程。这将节省处理时间, 并允许在维度之前或与维度并行加载事实数据表。维度中的所有其他列都将来自贡献hub和Satellite表。
以已经构建好的 NorthWind DV模型为基础,构建 渐变1类维度表:
1
构建渐变维度2类的数据集市 渐变维度2类只是稍微困难一些。由于类型2跟踪值随时间变化, 这意味着每个业务主键的维度中可能有多行。因此,不能将hub表的业务主键用作维度表上的主键。
如果使用的是DV2.0, 那么建议使用与原始DV模型中相同的MD5哈希方法来创建代理主键。因此, 要在这种情况下获得唯一键,需要创建一个基于业务主键加上SAT_LOAD_DTS的哈希键。
【Data|Data Vault 数据仓库模型构建-3】以已经构建好的 NorthWind DV模型为基础,构建 渐变2类维度表:
1
构建事实表
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 使用协程爬取网页,计算网页数据大小
- Java|Java基础——数组
- Python数据分析(一)(Matplotlib使用)
- Jsr303做前端数据校验
- Spark|Spark 数据倾斜及其解决方案
- 数据库设计与优化
- 爬虫数据处理HTML转义字符
- 数据库总结语句
- MySql数据库备份与恢复