深入浅出数据仓库

1.什么是数据仓库     

         数据作为一种新的能源,正在发生聚 变,变革着我们的生产和生活 ,催生了当下大数据行业发展热火朝天的 盛景。 但是如果不能对这些数据进行有序、有结构地分类组织和存储,如 果不能有效利用并发掘它,继而产生价值,那么它同时也成为一场“灾 难”。无序、无结构的数据犹如堆积如山的垃圾,给企业带来的是令人 咋舌的高额成本。同时,日益丰富的业态,也带来了各种各样、纷繁复杂的数据需求。 如何有效地满足来自企业多样化的需求 ,提高他们 对数据使用的满意度是数据服务和数据产品需要面对的挑战,如何建设高效的数据模型和体系,使数据易用,避免重复建设和数 据不一致性,保证数据的规范性;如何提供高效易用的数据开发工 如何做好数据质量保障;如何有效管理和控制日益增长的存储和计算消 如何保证数据服务的稳定,保证其性能,这些都给大数据系统的建设提出 了更多复杂的要求。

        数据仓库之父比尔·恩门(Bill Inmon)在1991年出版的“Building the Data Warehouse”(《建立数据仓库》)一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。

2.数据仓库模型建立

       数据模型就是数据组织和存储方法,它强调从业务、数据存取和使 章大数据领域建模综述丁一 用角度合理存储数据。 有了适合业务 和基础数据存储环境的模型,那么大数据就能获得以下好处。 ·

  1. 性能 :良好的数据模型能帮助我们快速查询所需要的数据,减少数据的IO吞吐。 ·
  2. 成本 :良好的数据模型能极大地减少不必要的数据冗余,也能实现计算结果复用,极大地降低大数据系统中的存储和计算成本。
  3. 效率 :良好的数据模型能极大地改善用户使用数据的体验,提高使用数据的效率。 ·
  4. 质量 :良好的数据模型能改善数据统计口径的不一致性,减少数 据计算错误的可能性。

        因此,毋庸置疑,大数据系统需要数据模型方法来帮助更好地组织 和存储数据,以便在性能、成本、效率和质量之间取得最佳平衡。

2.1 OLTP与OLAP的区别看模型万法论的选择

         选择 OLTP 系统通常面向的主要数据操作是随机读写,主要采用满 3NF 实体关系模型存储数据,从而在事务处理中解决数据的冗余和一致性的问题,更多的用于业务数据的出路;而 OLAP 系统面向的主要数据操作是批量读写,事务处理中的一致性不是 OLAP 关注的,其主要关注数据的整合,以及在复杂大数据查询和处理中的性能,因此它需要采用不同的数据建模方法。   

2.2  ER 模型( FS-LDM )

         数据仓库之父 Bill lnmon 提出的建模方法是从全企业的高度设计 3NF模型,用实体关系( Entity Relationship, ER )模型描述企业业务,在范式理论上符合 3NF 。数据仓库中的 3NF 与OLTP 系统中的 3NF 的区别在于,它是站在企业角度面向主题的抽象,而不是针对某个具体 业务流程的实体对象关系的抽象。其具有以下几个特点:

  •  需要全面了解企业业务和数据。
  • 实施周期非常长。 
  • 对建模人员的能力要求非常高。

        采用ER模型建设数据仓库模型的出发点是整合数据,将各个系统中的数据以整个企业角度按主题进行相似性组合和合并,并进行一致性处理,为数据分析决策服务,但是并不能直接用于分析决策。
        其建模步骤分为三个阶段:

  • 高层模型:一个高度抽象的模型,描述主要的主题以及主题间的关系,用于描述企业的业务总体概况。
  • 中层模型:在高层模型的基础上,细化主题的数据项。
  • 物理模型(也叫底层模型):在中层模型的基础上,考虑物理存储,同时基于性能和平台特点进行物理属性的设计,也可能做一些表的合并、分区的设计等。  

        ER 模型在实践中最典型的代表是 Teradata 公司基于金融业务发布 FS-LDM (Financial Services Logical Data Model ),它通过对金融业务的高度抽象和总结,将金融业务划分为 10 主题 ,并以设计面向金融仓库模型的核心为基础,企业基于此模型做适当调整和扩展就能快速落地实施。

             ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​            

2.3 维度模型

        维度模型是数据仓库领域的 Ralph Kimball 所倡导的,他的 The Data Warehouse Tookit-The Complete Guide to Dimensional Modeling(数据仓库工具箱)也是数据仓库工程领域最流行的数据仓库建模的经典。

        维度建模从分析决策的需求出发构建模型,为分析需求服务,因此它重点关注用户如何更快速地完成需求分析,同时具有较好的大规模复杂查询的响应性能。其典型的代表是星形模型,以及在一些特殊场景下使用的雪花模型。其设计分为以下几个步骤。

  • 选择需要进行分析决策的业务过程。业务过程可以是单个业务事件,比如交易的支付、退款等;也可以是某个事件的状态,比如当前的账户余额等;还可以是一系列相关业务事件组成的业务流程,具体需要看我们分析的是某些事件发生情况,还是当前状态,或是事件流转效率。
  • 选择粒度。在事件分析中,我们要预判所有分析需要细分的程度,从而决定选择的粒度。粒度是维度的一个组合。
  • 识别维表。选择好粒度之后,就需要基于此粒度设计维表,包括维度属性,用于分析时进行分组和筛选。
  • 选择事实。确定分析需要衡量的指标

2.4 Data Vault 模型

        Data Vault Dan Linstedt 发起创建的一种模型,它是ER模型的衍生,其设计的出发点也是为了实现数据的整合,但不能直接用于数据分析决策。它强调建立一个可审计的基础数据层,也就是强调数据的历史性、可追溯性和原子性,而不要求对数据进行过度的一致性处理和整合同时它基于主题概念将企业数据进行结构化组织,并引入了更进一步的范式处理来优化模型,以应对游、系统变更的扩展性。 Data Vault 型由以下几部分组成。

  • Hub :是企业的核心业务实体,由 实体 key 、数据仓库序列代理键、装载时间、数据来源组成。
  • Link:代表 Hub 之间的关系。这里与 模型最大的区别是将关系作为一个独立的单元抽象,可以提升模型的扩展性。它可以直接描述1:1 1:n n:n 的关系,而不需要做任何变更。它由 Hub的代理键、装载时间、数据来源组成。
  • Satellite :是 Hub 的详细描述内容, 一个Hub 可以有多个 Satellite它由 Hub 的代理键、装载时间、来源类型、详细的 Hub 描述信息组成。

Data Vault 模型比 ER 模型更容易设计和产出,它的 ETL 加工可实 现配置化。通过 Dan Linstedt 的比喻更能理解 Data Vault 的核心思想: Hub 可以想象成人的骨架,那么 Link 就是连接骨架的韧带,而 Satellite 就是骨架上面的血肉。

2.5 Anchor 模型

        Anchor Data Vault 模型做了进一步规范化处理, Lars. Ri:innback 的初衷是设计一个高度可扩展的模型,其核心思想是所有的扩展只是添加而不是修改,因此将模型规范到 6NF ,基本变成了 k-v 结构化模型。 们看 Anchor 模型的组成。

  • Anchors :类似于 Data Vault的Hub ,代表业务实体,且只有主键。
  • Attributes :功能类似于 Data Vault Satellite ,但是它更加规范化,将其全部 k-v 结构化,一个表只有 一个Anchors 的属性描述。
  • Ties :就是 Anchors 之间的关系,单独用表来描述,类似于 Data Vault的Link ,可以提升整体模型关系的扩展能力。
  • Knots :代表那些可能会在 Anchors 中公用的属性的提炼,比如性别、状态等这种枚举类型且被公用的属性。         

3 数据仓库实践

3.1 ALi

        第一个阶段 完全应用驱动的时代,数据仓库系统构建在 Oracle 上,数据完全以满足报表需求为目的,将数据以与源结构相同的方式同步到 Oracle (称作 ODS 层),数据工程师基于 ODS数据进行统计,基本没有系统化的模型方法体系,完全基于对 Oracle数据库特性的利用进行数据存储和加工,部分采用 一些维度建模的缓慢化维方式进行历史数据处理。这时候的数据架构只有两层,即ODS+DSS。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值