zoukankan      html  css  js  c++  java
  • Hadoop构建数据仓库实践读书笔记【3】__数据仓库设计基础

    关系数据库

    关系表的属性:

    1. 每个表都有唯一的名称。
    2. 一个表中每个列有不同的名字。
    3. 一个列的值来自于相同的属性域。
    4. 列是无序的。
    5. 行是无序的。

    候选键:

    仅包含唯一标识记录所必须的最小数量列的超键。表的候选键有三个属性:

    • 唯一性:在每条记录中,候选键的值唯一标识该记录。
    • 最小性:具有唯一性属性的超键的最小子集。
    • 非空性:候选键的值不允许为空

    主键:

    唯一标识表中记录的候选键。主键是唯一的、非空的。没有被选做主键的候选键称为备用键。在选择主键时,我们可以参考以下原则:

    • 主键要尽可能地小
    • 主键值不应该被改变。主键会被其他表所引用。如果改变了主键的值,所有引用该主键的值都需要修改,否则引用就是无效的。
    • 主键通常使用数字类型,数字类型的主键要比其他数据类型效率更高。
    • 主键应该是没用业务含义的,它不应该包含实际的业务信息,无意义的数字列不需要修改,因此是主键的思想选择。大部分关系型数据库支持的增属性或序列对象更适合当作主键。
    • 虽然主键允许由多列组成,但应该使用尽可能少的列,最好是单列。

    关系型数据库的主要语言就是SQL语言。

    关系数据模型的缺点:需要额外建立数据集市的存储区,并增加相应的数据装载过程。对数据仓库的使用强烈依赖于SQL语言的掌握程度。

     维度数据模型的特点:

    • 易理解
    • 高性能
    • 可扩展

    星形模式

    维度模型最简单的形式,也是数据仓库以及数据集市开发中使用最广泛的形式。由事实表和维度表组成。

    优点:简化查询、简化业务报表逻辑、获得查询性能、快速聚合、便于向礼服体提供数据。

    缺点:不能保证数据完整性,对于数据分析需求来说不够灵活。

    雪花模式

    一种多维模型中表的逻辑布局,由事实表和维度表所组成。雪花化就是将星形模式中的维度表进行规范化处理。当所有的维度表完成规范化后,就形成了以事实表为中心的雪花型。

    优点:星形模型是雪花模式的一个特例(维度没有那么多层级)。某些条件下,雪花模式更具有优势:一些OLAP多维数据库建模工具专为雪花模型进行了优化。规范化的维度熟悉节省存储空间。

    缺点:维度数据规范化增加了查询的连接操作和复杂度。不确保数据完整性。

    向雪花模式的表中装载数据时,一定要有严格控制的管理,避免数据异常插入或更新。

    Data Vault 模型

    Data Vault 模型是一种数据仓库建模方法,用来存储来自多个操作型系统的完整的历史数据。

    Data Vault 不区分数据在业务层面的正确与错误,它保留操作型系统的所有时间的所有数据,装载数据时不做数据验证、清洗等工作。Data Vault 允许并行数据装载,不需要重新设计就可以实现扩展。

    Data Vault 模型的组成部分:中心表(Hub)、链接表(Link)、附属表(Satellite)

    从技术角度考虑,我们最好还是增加一个代理键。使用只有一列的代理键更易维护。对外键列和装载时间列联合建立唯一索引,也是一个好习惯。

    Data Vault模型的特点

    • 所有数据都基于时间来存储,即使数据是低质量的,也不能再ETL过程中处理掉。
    • 依赖越少越好
    • 和源系统越独立越好
    • 设计上适合变化 (1、源系统中数据的变化。2、在不改变模型的情况下可扩展)
    • ETL作业可以重复执行
    • 数据完全可追踪。

    数据集市与数据仓库的区别

    对比项 数据仓库 数据集市
    范围 企业级 部门或业务线
    主题 多个主题 单一主题
    数据源 遗留系统、事务系统、外部数据的多个数据源 数据仓库或事务系统的少量数据源
    数据粒度 较软的粒度 较粗的粒度
    数据结构 通常是规范化结构(3NF) 星形模式、雪花模式或者二者兼而有之
    历史数据 全部历史数据 部分历史数据
    完成需要的时间 几个月到几年 几个月

    数据集市主要用于部门级的分析型应用,数据大多数经历了汇总和聚合操作,粒度级别较高。

    负重前行
  • 相关阅读:
    课程总结
    java实训作业----IO流
    6月11日数据结构——Huffman树
    6月10日数据结构——堆
    数据结构二叉树(实训报告)
    数据结构树(二叉树的使用)
    Java窗体的应用
    java监听、抛出异常
    数据结构顺序字符串(插入、删除、查找、BF模式匹配)
    数据结构顺序字符串
  • 原文地址:https://www.cnblogs.com/astride/p/11202087.html
Copyright © 2011-2022 走看看