利用Data vault对数据仓库建模
简介
国内关于Data Vault的信息很少,所以决定写点什么,纯粹都是自己在这个行业10多年的摸爬滚打。不过为了效率,尽量做到简短,直接上干货。对于各个细节大家有不同的理解欢迎来讨论。
数据仓库建模的方法有哪些。
首先最经典的是数据仓库Inmon基于3NF的方法。这个方法知道概念的人很多,但是实际用的很少,也不建议你去了解更多,因为目前在国内的招聘网站上你会很少找到这个。
其次是Kimball的维度建模方法,这个基本上做过数据仓库的都用过,比如事实表和维度表,基于这种理论也可以构建数据立方体方便分析。其特点是简单快速,适合中小型数据仓库。招聘网站上九成以上关于数据仓库的招聘都会要求这个。
然后是Dan的Data Vault建模方法。这个国内知道的不多。不同于维度方法,它的基本表是LINK,HUB以及SAT表。这个方法论连Inmon都说好,只是圈子实在太小。这个方法论比较适合企业级数据仓库,以及大数据的场景。
为什么要Data Vault
关于DV的各种好处官方站点提了好多,但说得都很marketing。以下是我个人的理解:
- 适合企业级数据仓库。
- 适合大数据项目,是的,在大数据中你怎么去组织数据,直接扔那?还是用维度模型?是不是都不太合适?那你应该考虑Data Vault。
- 比较容易根据元数据系统去自动生成相应的代码。这个在下面我会介绍一些。
谁更爱DV?
这是一个很有意思的问题,同时你也可以看到这个话题在国内是多么冷门。
从我阅读到的文章观察到信息来看,首先是欧洲比较火热,其次是北美,然后是澳洲。
在欧洲,德国人似乎更爱这个话题,在海外网站偶尔能看到德国人写的文章以及在讨论相关的问题,所以,汽车领域会见到的比较多。开源的项目以及商业相关的项目,也大多数都是欧洲的公司。
在国内看到的讨论和文章真的是少之又少,目前我所观察到的是阿里有人在讨论,但是不确定是在哪个部门。
维度模型还是DV?
维度模型和DV的关系,我觉得他俩是不冲突的。在我自己参考别人的方法制定的规范中,核心层用的方法是DV,然后在集市层用到的方法就是维度模型和宽表。
如果你的前端有对应的OLAP Cube工具的话,那么维度模型确实是必要的。
在核心层,相比维度模型,DV就比较容易对各个系统的数据进行整合和关系的管理。
想知道关于Data Vault更多的信息?
首先你可以去都Dan的网站:
对英文多少有点要求,主要是他们的思路和文风有时候真的好飘逸。
其次是Roelant的网站:
里边的干货也很多,当然某些细节对大家的英语也是个挑战。他的博客里有好多细节的实现,其次他也有自己的开源项目可以作为不错的参考。
最后,也可以参考我正在翻译的DV规范:
https://github.com/microsoftbi/DWH-Standard-code-69/blob/master/DV2ModelingSpeci.md
这里面我按照英文-中文对照的方式,根据自己掌握的知识和理解去进行本地化的翻译。
进度很慢,但是如果你想要知道个大概的话那么看我中文翻译出来的部分基本就够了。
结合Data Vault我也自己编写了一个数据仓库的各方面标准:
https://github.com/microsoftbi/DWH-Standard-code-69/wiki/Data-Warehouse-standard--Code-Branch-69
Code name 69,我会不断加入更多项目的实施细节进去。
当然实际项目中会有很多实现的分支,比如对数据的变更处理,有SCD2等很多方法,在我的这个规范里就是insert only。
当然没有一个方法能适用所有场景,这个69规范也不见得就是最专业的,如果你的项目是start from zero的话,那么或许可以拿来做一个参考然后制作出自己的项目规范。
利用Data vault对数据仓库建模的更多相关文章
- 利用Data Vault对数据仓库进行建模(二)
写在前面 本篇先不讨论Data Vault其本身,因为不见得所有人都接受这个.但是里边有一些很不错的东西跟主流的数据仓库方法是有共同点的,所以这里主要讨论这些共同的方法,在笔者看来,无论是Kimbal ...
- Data Vault玩转数据仓库(三)
在Data Vault 2.0版本里,其不只是针对数据仓库的建模,同时也包含了架构,方法论以及实现.这篇挑几个概念,附上我个人对其的理解.同时也把这个系列的名字改成<Data Vault玩转数据 ...
- 数据仓库之Data Vault模型总结
一,Data Vault模型有几个主要的组件,这里先总结一下: 1.Hub组件,是一个数据表,用于记录在业务应用中常用到的业务实体键值,如员工ID,发票号.客户编号.车辆号等. 表内包括几个关键字段: ...
- Data Vault 简介
Data Vault 简介 Data Vault 2.0 不仅是建模技术,也提供了一整套数据仓库项目的方法论.它能提供一套非常可行的方案来满足数据仓库项目中对于历史轨迹和审核两个方面的需求. 多年来, ...
- 大数据之路week07--day05 (一个基于Hadoop的数据仓库建模工具之一 HIve)
什么是Hive? 我来一个短而精悍的总结(面试常问) 1:hive是基于hadoop的数据仓库建模工具之一(后面还有TEZ,Spark). 2:hive可以使用类sql方言,对存储在hdfs上的数据进 ...
- 场景4 Data Warehouse Management 数据仓库
场景4 Data Warehouse Management 数据仓库 parallel 4 100% —> 必须获得指定的4个并行度,如果获得的进程个数小于设置的并行度个数,则操作失败 para ...
- 《BI那点儿事》数据仓库建模:星型模式、雪片模式
数据仓库建模 — 星型模式Example of Star Schema 数据仓库建模 — 雪片模式Example of Snowflake Schema 节省存储空间 一定程度上的范式 星形 vs.雪 ...
- Cross-Domain Security For Data Vault
Cross-domain security for data vault is described. At least one database is accessible from a plural ...
- 数据仓库建模与ETL实践技巧
数据分析系统的总体架构分为四个部分 —— 源系统.数据仓库.多维数据库.客户端(图一:pic1.bmp) 其中,数据仓库(DW)起到了数据大集中的作用.通过数据抽取,把数据从源系统源源不断地抽取出来, ...
随机推荐
- xeus-clickhouse: Jupyter 的 ClickHouse 内核
在科学计算领域,Jupyter 是一个使用非常广泛的集成开发环境,它支持多种主流的编程语言比如 Python, C++, R 或者 Julia.同时,数据科学最重要的还是数据,而 SQL 是操作数据最 ...
- vue基础入门(2.3)
2.3.样式绑定 2.3.1.绑定class样式 1.绑定单个class <!DOCTYPE html> <html lang="en"> <head ...
- 【部分】@using (Html.BeginForm())参数示例
原文:https://www.cnblogs.com/firstcsharp/p/3238321.html 1.指定表单提交方式和路径等 @using (Html.BeginForm("In ...
- js进度条
第一步//====================.wrap,.circle,.percent{ position: absolute; ...
- 使用Fiddler模拟Post请求
做了一个动态的GIF来做演示,应该更加直观些. (完)
- MSIL入门(一)C#代码与IL代码对比
基础概念 Microsoft中间语言(MSIL),也成为通用中间语言(CIL),是一组与平台无关的指令,由特定于语言的编译器从源代码生成.MSIL是独立于平台的,因此,他可以在任何公共语言基础架构支持 ...
- 帝国の狂欢(种树)(可撤销DP)
题目描述 马上就要开学了!!! 为了给回家的童鞋们接风洗尘,HZOI帝国的老大决定举办一场狂欢舞会. 然而HZOI帝国头顶上的HZ大帝国十分小气,并不愿意给同学们腾出太多的地方.所以留给同学们开par ...
- HDU 2236 无题II 题解
题目 这是一个简单的游戏,在一个n*n的矩阵中,找n个数使得这n个数都在不同的行和列里并且要求这n个数中的最大值和最小值的差值最小. 输入格式 输入一个整数\(T\)表示\(T\)组数据. 对于每组数 ...
- XHXJ's LIS,还是dp
题目: background: #define xhxj (Xin Hang senior sister(学姐)) If you do not know xhxj, then carefully re ...
- 31道Java核心面试题,一次性打包送给你
先看再点赞,给自己一点思考的时间,微信搜索[沉默王二]关注这个靠才华苟且的程序员.本文 GitHub github.com/itwanger 已收录,里面还有一线大厂整理的面试题,以及我的系列文章. ...