利用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)起到了数据大集中的作用.通过数据抽取,把数据从源系统源源不断地抽取出来, ...
随机推荐
- pxc搭建mysql集群
docker -y update yum install -y docker service docker satrt docker images 服务器:curl -sSL https://get. ...
- dart快速入门教程 (7.2)
7.4.抽离类为单独文件 新建一个文件,单独存放一个类,例如:Person类抽离到person.dart文件中 class Person { final String name; final num ...
- 在Ubuntu 16.04上编译OpenJDK8的源代码
本文将详细介绍在Ubuntu16.04上对OpenJDK8进行编译. 1.准备编译环境 使用的操作系统为Ubuntu16.04,如果读者没有安装Ubuntu,可以在Windows上使用虚拟机的方式进行 ...
- Python 简明教程 --- 21,Python 继承与多态
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 程序不是年轻的专利,但是,它属于年轻. 目录 我们已经知道封装,继承和多态 是面向对象的三大特征,面 ...
- MySQL调优 优化需要考虑哪些方面
MySQL调优 优化需要考虑哪些方面 优化目标与方向定位 总体目标:使得响应时间更快,吞吐量更大. (throughout --- 吞吐量:单位时间内处理事务的数量) 如何找到需要优化的地方 使用 ...
- web3.js支持SimpleChain跨链调用
SimpleChain的跨链协议已经对外开放很久了,很多应用也已经慢慢支持Simplechain的跨链.最近社区开发者web3.js中集成了Simplechain的跨链接口,开发者只需用npm安装包文 ...
- Python预测2020高考分数和录取情况可能是这样
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:打磨虾 “迟到”了一个月的高考终于要来了. 正好我得到了一份山东新高 ...
- Django---进阶1
目录 静态文件配置 request对象方法初识 pycharm链接数据库(MySQL) django链接数据库(MySQL) Django ORM 字段的增删改查 数据的增删改查 今日作业 静态文件配 ...
- 0ctf_2016 _Web_unserialize
0x01 拿到题目第一件事是进行目录扫描,看看都有哪些目录,结果如下: 不少,首先有源码,我们直接下载下来,因为有源码去分析比什么都没有更容易分析出漏洞所在. 通过这个知道,它一共有这么几个页面,首页 ...
- day59 django初识
目录 一.借助wsgiref模块实现简易版web框架 二.动静态页面 三.python三大主流web框架 四.启动一个django项目 1 启动前的注意事项 1.1 计算机的问题 1.2 django ...