数据仓库 - zhongjiajie/zhongjiajie.github.com GitHub Wiki

数据仓库

相关概念

  • 维度建模: 其最简单的描述就是,按照事实表,维度表来构建数据仓库,数据集市
  • 星型模型: 多张维度表都连接到同一张事实表.
  • 雪花模型: 雪花模型有部分维度表连接到事实表.
    • 当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型.雪花模型是对星型模型的扩展.它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 "层次" 区域,这些被分解的表都连接到主维度表而不是事实表.
    • 相比星型模型,雪花模型的特点是贴近业务,数据冗余较少,但由于表连接的增加,导致了效率相对星型模型来的要低一些.

相关术语

  • 数据仓库:数据仓库是一个支持管理决策的数据集合。数据是面向主题的、集成的、不易丢失的并且是时变的。数据仓库是所有操作环境和外部数据源的快照集合。它并不需要非常精确,因为它必须在特定的时间基础上从操作环境中提取出来。
  • 数据集市:数据仓库只限于单个主题的区域,例如顾客、部门、地点等。数据集市在从数据仓库获取数据时可以依赖于数据仓库,或者当它们从操作系统中获取数据时就不依赖于数据仓库。
  • 事实:事实是数据仓库中的信息单元,也是多维空间中的一个单元,受分析单元的限制。事实存储于一张表中(当使用关系数据库时)或者是多维数据库中的一个单元。每个事实包括关于事实(销售额,销售量,成本,毛利,毛利率等)的基本信息,并且与维度相关。在某些情况下,当所有的必要信息都存储于维度中时,单纯的事实出现就是对于数据仓库足够的信息。
  • 维度:维度是用来反映业务的一类属性,这类属性的集合构成一个维度。例如,某个地理维度可能包括国家、地区、省以及城市的级别。一个时间维度可能包括年、季、月、周、日的级别。包含"定量值",维度在使用时,不会聚合,通常是翻译成中文是”按xx来划分“.
  • 度量:在多维数据集中,度量值是一组值,这些值基于多维数据集的事实数据表中的一列,而且通常为数字。此外,度量值是所分析的多维数据集的中心值。即,度量值是最终用户浏览多维数据集时重点查看的数字数据(如销售、毛利、成本)。包含"可聚合的数字定量值",度量在使用时,一定会聚合维度和度量都可以是离散,或者连续的.
  • 级别:维度层次结构的一个元素。级别描述了数据的层次结构,从数据的最高(汇总程度最大)级别直到最低(最详细)级别(如大分类-中分类-小分类-细分类)。级别仅存在于维度内。级别基于维度表中的列或维度中的成员属性。
  • 数据清洗:对数据仓库系统无用的或者不符合数据格式规范的数据称之为脏数据。清洗的过程就是清除脏数据的过程。
  • 数据采集:数据仓库系统中后端处理的一部分。数据采集过程是指从业务系统中收集与数据仓库各指标有关的数据。
  • 数据转换:解释业务数据并修改其内容,使之符合数据仓库数据格式规范,并放入数据仓库的数据存储介质中。数据转换包括数据存储格式的转换以及数据表示符的转换(如产品代码到产品名称的转换)。
  • 联机分析处理(OLAP Online Analytical Processing):OLAP是一种多维分析技术,用来满足决策用户在大量的业务数据中,从多角度探索业务活动的规律性、市场的运作趋势的分析需求,并辅助他们进行战略发展决策的制定。按照数据的存储方式分OLAP又分为ROLAP、MOLAP和HOLAP。在客户信息数据仓库CCDW的数据环境下,OLAP提供上钻、下钻、切片、旋转等在线分析机制。完成的功能包括多角度实时查询、简单的数据分析,并辅之于各种图形展示分析结果。
  • 数据挖掘:在数据仓库的数据中发现新信息的过程被称为数据挖掘,这些新信息不会从操作系统中获得。
  • 切片:一种用来在数据仓库中将一个维度中的分析空间限制为数据子集的技术。
  • 切块:一种用来在数据仓库中将多个维度中的分析空间限制为数据子集的技术。
  • 星型模式:是数据仓库应用程序的最佳设计模式。它的命名是因其在物理上表现为中心实体,典型内容包括指标数据、辐射数据,通常是有助于浏览和聚集指标数据的维度。星形图模型得到的结果常常是查询式数据结构,能够为快速响应用户的查询要求提供最优的数据结构。星形图还常常产生一种包含维度数据和指标数据的两层模型。
  • 雪花模式:指一种扩展的星形图。星形图通常生成一个两层结构,即只有维度和指标,雪花图生成了附加层。实际数据仓库系统建设过程中,通常只扩展三层:维度(维度实体)、指标(指标实体)和相关的描述数据(类目细节实体);超过三层的雪花图模型在数据仓库系统中应该避免。因为它们开始像更倾向于支持OLTP 应用程序的规格化结构,而不是为数据仓库和OLAP应用程序而优化的非格式化结构。
  • 粒度:粒度将直接决定所构建仓库系统能够提供决策支持的细节级别。粒度越高表示仓库中的数据较粗,反之,较细。粒度是与具体指标相关的,具体表现在描述此指标的某些可分层次维的维值上。例如,时间维度,时间可以分成年、季、月、周、日等。
  • 数据仓库模型中所存储的数据的粒度将对信息系统的多方面产生影响。事实表中以各种维度的什么层次作为最细粒度,将决定存储的数据能否满足信息分析的功能需求,而粒度的层次划分、以及聚合表中粒度的选择将直接影响查询的响应时间。

维度和度量之间的关系

发现问题的真相:维度与度量

BI的难点

主要有两点:

  • 需求复杂,需要整合的业务系统多
  • 表比较大,关联复杂,需要一定的设计能力和编程能力

数仓流派之争Inmon vs Kimball

  • Inmon: 提倡以三范式构建集中式的企业数据仓库(EDW),作为整个系统核心.其上再建设若干面向主题的、遵循维度模型设计的数据集市.前端工具直接访问数据集市,而不访问EDW.
  • Kimball: 支持数据仓库总线结构,提倡维度建模,以星型模型或是雪花模型等方式构建维度数据仓库.架构体系中,数据集市于维度数据仓库是紧密结合的,数据集市是数据仓库中一个逻辑上的主题域.各种前端工具将可以直接访问使用维度数据仓库.
  • 两者的对比:
    • Kimball方式对团队技术水平要求不太高,更易于实现,从小型的主题域数据集市建设起,但在逐步建设过程中,联合维度数据仓库的一致性较难控制,适用于战术层级的规划,或是有迫切的目标需要实现.
    • Inmon的方式,规范性较好,数据集成和数据一致性方面得到处理,适用于较为大型的企业级、战略级的规划.但对团队的要求较高,且实现周期较长、成本高昂.具体可根据企业的规模、项目规划、预算、团队等角度进行综合考虑.
特性 Kimball Inmon
时间 快速交付 交付速度较慢
开发难度
维护难度
技能要求 入门级 专家级
数据要求 特定业务 企业级

数据仓库与数据挖掘实战 读书笔记

第一章,数据仓库的概述

  • 信息化时代,为了满足对上层数据分析的需求,从传统的数据库管理系统(DBMS)中产生了数据仓库和数据挖掘等技术
  • 数据仓库的特征
    • 面向主题: 在一个较高的管理层次上对信息系统的数据按照某一具体的管理对象进行综合、归类所形成的分析对象.各个主题有完整、一致的内容以便在此基础上进行分析处理;主题之间有重叠的部分,反应主题间的联系.重叠是逻辑上的,不是物理上的;各主题的综合方式存在不同;主题域应该具有独立性和完备性
    • 集成: 经过抽取、筛选、清理、转换、综合等工作,从企业原来已经建立的数据库系统中抽取数据.原有的系统处理的是业务的流水,不适合分析处理.在进入数据仓库之前必须进行综合、计算.可能会抛弃一些不需要的数据项,必要时还会增加一些可能涉及到的外部数据
    • 稳定性(即非易失的): 在某个较短时间段来看是保持不变的,操作型数据库保存的是短暂的的操作数据,但是数据仓库存的大部分是历史的数据,则这样才能对分析提供支撑
    • 随时间变化而变化(即时变的): 数据仓库在一个较长的时间看来是变化的.大部分的数据仓库需要的是历史5-10年的数据,所以他会定期的从操作性数据库中获取新的数据.(假设2-4个月),并删除超过了数据5-10年的那部分数据.但是这并不影响他在短时间内是稳定的这个说法
  • 数据仓库系统的组成:
    • 源数据层
    • 数据储存与管理层
    • OLAP服务器层
    • 前端分析工具层(如图数据层库系统的体系结构)
    • 数据仓库: 整个数据仓库环境的核心,数据存放和检索的地方,相对于操作型数据库它的特点是对海量数据的支持和快速的检索技术
    • 抽取工具:把数据从各种各样的储存环境中提取出来,进行必要的转化、整理,存放到数据仓库中
    • 元数据:数据的数据,位于数据仓库的上层,描述数据仓库内数据的结构、位置和建立方法的数据;通过元数据进行数据仓库的管理和使用
    • 数据集市:是数据仓库的一个子集,相当于一个特定的主题,或者特定的用户使用的数据仓库,目的在于减少数据量,使得信息的利用更加快捷和灵活
    • OLAP服务:对数据仓库中的数据提供分析的一种软件,提供快速复杂的数据查询、聚集,帮助用户分析多维数据中的各维情况
    • 数据报表、数据分析和数据挖掘:提供前端或者上层的数据分析技术支持
  • ETL:Extract、Transform、Load的缩写,即抽取、转换、装载.是商业智能(BI)和数据仓库的核心和灵魂
    • 数据抽取:数据的抽取是将数据从业务系统中读取出来,这是所有工作的前提.要做到既能满足决策需要,又不影响业务系统的性能.定制相应的决策是:抽取方式、抽取时机、抽取周期
    • 数据转换:按照预先设计好的规则将抽取的数据进行转换,是本来异构的数据格式能统一起来.由于业务系统开发的时间跨度一般比较长,造成同一种数据在业务系统中可能会有多种完全.不同的储存格式,甚至在一个业务系统中根本不存在,可能要通过一些公式的计算才能得到
    • 数据装载:将转换完的数据按计划增量或者全量的导入数据仓库中
  • 数据集市:分为从属型数据集市和独立型数据集市(见图从属型数据集市和独立型数据集市)
    • 从属型数据集市:见图,他的数据直接来自中英数据仓库,这样的结构能保持数据的一致性,通畅会为那些频繁访问数据仓库的业务部门建立从属的数据集市,这样可以提高查询的访问速度
    • 独立型数据集市:企业在实施数据仓库时,出于投资方面的考虑,最终建成独立的数据集市,用来解决个别部门较为迫切的决策问题.他和企业级数据仓库除了数据量和服务对象上存在差别外,逻辑结构并无多大区别,这就是为什么把独立的数据集市称为部门及数据仓库的主要原因
    • 数据仓库和数据集市的区别:前者企业级,规模大,后者部门级,规模小;前者开发周期长,速度慢,后者开发周期短,速度快;前者的数据结构才用规范化(3NF)模式,后者数据结构采用星型模式;前者的粒度比后者的粒度要细
  • 元数据及其管理:管理元数据和用户元数据
    • 管理元数据:负责开发、维护数据仓库的人员使用.是储存关于数据仓库系统技术细节的数据,是用于开发和管理数据仓库的数据,开发管理者可以知道:
      • 数据仓库结构和描述,包括仓库模式、视图、维、数据集市的位置;业务系统,数据仓库和数据集市的体系结构和模式;汇总用的算法,包括度量和维的定义
      • 数据粒度、主题领域、聚集、汇总、预定义的查询与报告;操作环境到数据仓库环境的映射,包括源数据和其内容,数据分割,数据提取,清洗,转换规则
      • 用户元数据:从业务角度描述了数据仓库的数据,提供了使用者和实际系统之间的语义层,是的不懂计算机技术的业务人员也能够读懂数据仓库中的数据,用户可以知道:怎样连接数据仓库;可以访问数据仓库的哪些部分;所需要的数据来自哪个源系统
    • 元数据的作用:进行数据集成所必须的;帮助最终用户理解数据仓库中的数据;保证数据质量的关键;支持需求变化
      • 元数据的管理:获取并储存元数据、元数据集成、元数据标准化、保持元数据的同步
      • 获取并储存元数据:数据仓库时间跨度较长,源系统可能会发生变化,与之对应的数据抽取方式、转换方式以及数据仓库本身的结构和内容也有可能变化
      • 元数据必须具有跟踪这些变化的能力,意味着必须提供按照适合版本来获取的储存元数据的方式使得元数据可以随时变化
      • 元数据集成:将来自管理元数据和用户元数据以一种用户能够理解的同一方式集成
      • 元数据标准化:每个工具都用自己的一套元数据,标准化就是对各个工具之间元数据的转化提供一个标准
      • 保持元数据的同步:保持数据结构、数据元素、时间、规则的元数据必须在任何时间、在整个数据仓库中保持同步,如果数据或规则变化导致元数据发生变化那么这个变化也要反映到数据仓库中
  • 从数据库到数据仓库:OLTP和OLAP
    • 联机事务处理(OLTP):对操作型数据库的日常操作,通常是对一个或一组记录的查询和修改,主要为企业的特定应用服务的,注重响应时间,数据的安全性和完整性
    • 联机分析处理(OLAP):主要用于管理人员的决策分析,要访问大量的分析型历史数据传统的数据库系统难以实现对数据分析处理要求,人们尝试对传统数据库的数据进行加工,形成了支持决策分析的数据仓库
  • ODS:操作型数据库系统出现了ODS(operational data store,操作数据储存),他是企业级的全局数据库,提供集成的、企业级一致的数据.ODS具有面向主题的、集成化的、可变的、数据是当前的或接近当前的特点.ODS不具有数据仓库的稳定性和时变性的特点,主要用于支持企业级的OLTP.但是有数据仓库面向主题和集成的特点,可以进行近期的OLAP,但是不能像数据仓库那样全面
  • 商务智能和数据仓库的关系:用信息技术将于企业有关的内部和外部的数据整合起来,转换成信息和知识的过程.是数据仓库、联机分析处理、数据挖掘的技术走向商业应用后想成的应用技术.数据仓库是商业智能的基础,商业智能的应用必须基于数据仓库.所以数据仓库时商业智能的核心

--

⚠️ **GitHub.com Fallback** ⚠️