在Data Vault 2.0版本里,其不只是针对数据仓库的建模,同时也包含了架构,方法论以及实现。这篇挑几个概念,附上我个人对其的理解。同时也把这个系列的名字改成《Data Vault玩转数据仓库》。

ETL和ELT

ELT火了有段时间,百度上高雅的介绍很多,不扯别的,咱直接来点俗的:

-  E就是抽取,数据从源系统进入到数据仓库的过程。

-  T是指转换,类型转换,计算什么的都算在内。

-  L加载,把结果加载到数据仓库里。

-  E和L可能从汉语的角度看有些像,如果说区别的话就是前者是从源系统到数据仓库的,后者是数据仓库内的折腾。

-  ETL就是把数据从源系统抽取的过程中做转换。

--  缺点是这个过程也会消耗源系统的资源,可能对源系统造成影响,比如对方在做日结。

-  ELT就是把数据先原封不动的放在DWH底层里,然后再在这个基础上做转换。

--  这样除了抽取消耗点源系统的资源,剩下的处理都是消耗数据仓库的资源,降低对源系统的影响。

所以数据仓库项目通常建议用ELT的方法,除非源系统的数据和压力没那么大。

STAGE和PSA

这个概念好多地方的解释都不太一样,以下是我个人的理解:

STAGE层负责整合,源系统的数据一对一的放在这里,比如你的数据仓库是SQL Server,那么甭管源系统是Oracle还是MySQL,通过数据加载工具都变成SQL Server的加载到这里。

STAGE再往下就是PSA,跟STAGE不同的是PSA是要保留数据的历史状态的。关于如何保留目前主流有两个方法,一个是基于SCD2的方法论,一个是INSERT ONLY的方法论。相对支持后者的比较多一些,主要是因为SCD2对于更新或者删除数据的处理需要找到历史的数据进行物理更新(UPDATE VALUT_TO_DATE),在数据量很大的时候性能影响很大。而INSERT ONLY的方法在后期查询的时候会麻烦一些,因为它只有VALID_FROM_DATE,而没有VALID_TO_DATE,所以在下游处理的时候就需要根据记录的时间线把其算出来。

至于如何快速比对一个数据是否变化了,请参考我的上一篇。

我也见很多人在讨论,有PSA了还需要DV吗?这个我个人理解还是好比盖高楼,业主着急住,但是电梯还没装,业主能住吗?能,也不能。这个问题是同样的道理。

自动化的工具

有什么工具可以基于配置来通过元数据以及数据建模的方式自动化生成Data Vault模型呢?

首先是大名鼎鼎的ERWin,从官网可以看到其对Data Vault的支持。业界老品牌,知名度高。这家公司在国内有雇员,所以感觉英文有压力的话可以寻求他们的辅助。

在这个圈子里比较火的是WhereScape,也是海外厂商。主要是有Dan Linsted为其站台。这个平台目前我没有发现中文的支持,所以跟这家公司沟通需要英文功底。

以上两款工具都是商业软件,没有免费以及社区版本,就连试用版本(针对data vault自动化这部分)也没有,特殊版本更不用说。授权和支持费用不低,但是考虑到项目总体成本的话还是很划算的,比如在北京雇佣一个中级ETL开发,一年的成本差不多就够这个软件的授权和支持费用了。而如果不用这类工具,你的成本肯定不止一个程序员的成本。

再说开源的平台,我个人一直在关注Roelant vos的开源项目,在github上很容易找到。我在做自己的自动化工具的时候也参考了他很多的想法和实现,比如handlebars的模板结合元数据自动生成代码,还有DGML来可视化观察数据的来龙去脉等。同时他的博客也不错,在这个领域贡献了很多内容,这个在我第一篇中也有提到。

Data Vault玩转数据仓库(三)的更多相关文章

  1. 数据仓库之Data Vault模型总结

    一,Data Vault模型有几个主要的组件,这里先总结一下: 1.Hub组件,是一个数据表,用于记录在业务应用中常用到的业务实体键值,如员工ID,发票号.客户编号.车辆号等. 表内包括几个关键字段: ...

  2. 利用Data vault对数据仓库建模

    简介 国内关于Data Vault的信息很少,所以决定写点什么,纯粹都是自己在这个行业10多年的摸爬滚打.不过为了效率,尽量做到简短,直接上干货.对于各个细节大家有不同的理解欢迎来讨论. 数据仓库建模 ...

  3. 利用Data Vault对数据仓库进行建模(二)

    写在前面 本篇先不讨论Data Vault其本身,因为不见得所有人都接受这个.但是里边有一些很不错的东西跟主流的数据仓库方法是有共同点的,所以这里主要讨论这些共同的方法,在笔者看来,无论是Kimbal ...

  4. Data Vault 简介

    Data Vault 简介 Data Vault 2.0 不仅是建模技术,也提供了一整套数据仓库项目的方法论.它能提供一套非常可行的方案来满足数据仓库项目中对于历史轨迹和审核两个方面的需求. 多年来, ...

  5. 关于Core Data的一些整理(三)

    关于Core Data的一些整理(三) 关于Core Data Stack的四种类与它们的关系如下: NSManagedObjectModel NSPersistentStore NSPersiste ...

  6. java Data、String、Long三种日期类型之间的相互转换

    java Data.String.Long三种日期类型之间的相互转换      // date类型转换为String类型   // formatType格式为yyyy-MM-dd HH:mm:ss// ...

  7. [转]在eclipse打开的android虚拟手机,打开File Explorer,下面是空的没有data、mnt、system三个文件

    在eclipse打开的android虚拟手机,打开File Explorer,下面是空的没有data.mnt.system三个文件 这是因为模拟器没有选择打开的缘故,必须首先打开一个模拟器(AVD), ...

  8. Cross-Domain Security For Data Vault

    Cross-domain security for data vault is described. At least one database is accessible from a plural ...

  9. SQL Server调优系列玩转篇三(利用索引提示(Hint)引导语句最大优化运行)

    前言 本篇继续玩转模块的内容,关于索引在SQL Server的位置无须多言,本篇将分析如何利用Hint引导语句充分利用索引进行运行,同样,还是希望扎实掌握前面一系列的内容,才进入本模块的内容分析. 闲 ...

随机推荐

  1. Linux的VMWare中Centos7文件系统挂载和开启网卡及简单命令

    一.路径 挂载磁盘/etc/fastab  开启网卡 vi .bash_profile              ---更改PATH环境变量 可设置 mysql提示符 cd  /etc/yum.rep ...

  2. mybatis中的延迟查询思想

    1.一对一延迟加载 延迟加载: 就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据.延迟加载也称懒加载. 好处:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比 ...

  3. Eclipse Java EE IDE for Web Developers 4.5.1 安装hibername tools 插件

    方式一:在线安装(太慢) 方式二:离线安装,下载hibernate tools 插件到本地,然后在eclipse菜单栏点击 help: ①添加插件,选择下载后的插件,内容框中可选择hibernate ...

  4. win7(64位)使用DEBUG

    win7 64位好像是不能直接打开DOS进行DEUBG的,于是查找相应解决方案 开始看其他人的帖子,写得语焉不详,后来一查,居然是抄百度的.....自己不觉得low吗... 参考百度经验的回答http ...

  5. 求求你们不要再用 RSA 私钥加密公钥解密了,这非常不安全!

    最近经常在网上看到有人说巨硬的 CNG(Cryptography Next Generation 即下一代加密技术) 只提供 RSA 公钥加密私钥解密,没有提供 RSA 私钥加密公钥解密,他们要自己封 ...

  6. Flutter 入门

  7. java_Collection、Map、泛型的使用

    Collection集合 集合按照其存储结构可以分为两大类,分别是 单列集合 java.util.Collection 双列集合 java.util.Map Collection:单列集合类的根接口, ...

  8. 简化RESTful开发,Spring Data REST让你少掉发

    1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! 前言 Springboot + Spring MVC大大简化了Web应用的RESTful开发,而Spring Data RE ...

  9. springboot中redis的缓存穿透问题

    什么是缓存穿透问题?? 我们使用redis是为了减少数据库的压力,让尽量多的请求去承压能力比较大的redis,而不是数据库.但是高并发条件下,可能会在redis还没有缓存的时候,大量的请求同时进入,导 ...

  10. Web前端性能优化,应该怎么做?

    摘要:本文将分享一些前端性能优化的常用手段,包括减少请求次数.减小资源大小.各种缓存.预处理和长连接机制,以及代码方面的性能优化等方面. base64:尤其是在移动端,小图标可以base64(webp ...