Data Vault
来源:互联网 发布:服务器需要开放的端口 编辑:程序博客网 时间:2024/05/21 14:48
转载: http://datawarehou.se/knowledge/data-vault/#comment-146
Data Vault
前言:Data Vault这个词对我来说非常陌生,一次和Vincent的邮件交流中他提到这个概念。查了下资料,总结如下。
Data Vault是一种新的针对企业级数据仓库的数据建模方法,该概念主要面向数据架构师、数据建模人员和数据库管理员。
——————————————————————————–
Data Vault的定义:
Data Vault是面向细节,可追踪历史的,它将那些支持了一个或多个业务功能单元的规范的表集合相连接,它是一种混合了包括第三范式(3NF)和星型模型在内的建模方法。其设计理念是要满足企业对灵活性、可扩展性、一致性和对需求的适应性要求,它是一种专为企业级数据仓库量身定制的建模方式。
Data Vault并不是一个新鲜事物,早在20年前就已经有所尝试,只不过并没有系统化、程式化。在Data Vault的理念中,错误的数据往往不是由于技术原因造成,而是业务的错误造成(数据的错误),所以,所有数据(包括错误数据)都是有用的、相关的,必须可追溯、可审计。
Data Vault要解决的问题:
在对数据仓库的建模方法中,有Kimball主张的维度建模,也有Inmon提倡的3NF建模,但二者各有优缺点。
对于维度建模,可能会造成孤立的主题域,数据大量冗余,不一致的查询结构,扩展问题,粒度不一致造成的难以与事实表连接,近实时同步问题等。在做维度建模的时候,需要从原有系统进行大量的转换、统一才能形成维度-事实。
对于3NF建模,基于日期的主键会造成父子关系越来越复杂,级联变更的影响也很大,很难进行实时装载,查询存取要关联多表,下钻分析问题等。
Data Vault的实施:
主要思想:将业务主键与属性分离,业务主键常常是业务的本质,他们很少变化,而属性可能会经常变化,Data Vault从变化中提取不常变的部分,并将二者相关联。
提取出的属性按照业务组分到不同的卫星表(Satellites)中,而业务主键放置在称为枢纽表(Hubs)的地方。业务主键之间的关联或事件(如客户Hub和产品Hub之间的“购买”事件)由连接表(Link)来构建模型,并通过卫星表来描述这种联系。从另一种角度来说,卫星表提供了Hub和Link的上下文。
在Data Vault中,所有表都是多对多关系。
总结:
- Data Vault,Vault意为拱顶、撑杆跳等,在这里确不知该翻译成什么合适,觉得这模型更像天文模型
- 所有数据,无论对错,全部保留,历史信息完全可追溯,Data Vault中没有“删”
- 三种类型的表:Hub保存了业务主键,这些东西通常不发生变化;Satellite保存了业务属性,与Hub以多对多形式关联以提供描述信息、上下文;Link表是事件,通过Link将Hub关联起来,一个事件可以对应多个Hub
- 所有物理表以多对多形式连接
几个问题:
- 如何将业务主键提取出来,如果它们发生了变化怎么办?
- 怎么确定哪些属于键,哪些属于属性?
- 从Data Vault模型到维度模型的转换,是否要在建模初期进行考虑,如果是,哪些问题需要确定?
- 查询性能,钻取效率如何?
- Link如果是事件级别,粒度过细,如何安排聚合表?
参考与资源:
- Wikipedia – Data Vault Modeling
- Data Vault Series 1 - Series 2 – Series 3 – Series 4 – Series 5(注:文章分为5部分,作者是Data Vault的倡导者Dan Linstedt)
- Data Vault Basics (Dan Linstedt的blog上的文章)
- 关于Data Vault的图书《The Business of Data Vault Modeling》
- E learning: http://learndatavault.com/
- Data Vault
- Data Vault Brief Summary
- Oracle Data Vault 和 Oracle Label Security
- Data Vault初探(三) —— 建立Data Vault模型
- Data Vault初探(十) —— 星型模型向Data Vault模型转化
- Data Vault初探(一) —— 基础
- Data Vault初探(四) —— 初始装载
- Data Vault初探(五) —— 定期装载_SQL
- Data Vault初探(二) —— 构建及参考原则
- Data Vault初探(六) —— 定期装载_Kettle_作业
- Data Vault初探(七) —— 定期装载_Kettle_中心表
- Data Vault初探(八) —— 定期装载_Kettle_链接表
- Data Vault初探(九) —— 定期装载_Kettle_附属表
- database vault
- Vault Professional
- DHTMLX-Vault
- 一、vault
- 二、vault
- 将翻页效果做成一个View之在android中的View中实现装饰模式。
- ubuntu 下QT的安装
- 设计模式六大原则(6):开闭原则
- windows 下架设svn服务器
- 获取web访问servlet的绝对路径
- Data Vault
- 23种设计模式(1):单例模式
- 【jQuery-1.7.2源码分析】extend
- ffmpeg 音视频 编解码例子源码
- 单例模式讨论篇:单例模式与垃圾回收
- 孔浩javascript笔记三
- 读书笔记-Don't Make Me Think(Steve Krug)
- 一道腾讯实习笔试题
- 23种设计模式(2):工厂方法模式