数据仓库相关
一、什么是数据仓库?
- 数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化的(Time Variant)数据集合,用于支持管理决策(Decision-Making Support)。
二、数据仓库四大特征
- 面向主题:
- 主题是一个抽象的概念,是较高层次上企业信息系统中的数据综合、归类并进行分析利用的抽象;
- 在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象面向主题的数据组织方式,就是在较高层次上对分析对象的数据的一个完整、一致的描述,能完整、统一地刻划各个分析对象所涉及的企业的各项数据,以及数据之间的联系。所谓较高层次是相对面向应用的数据组织方式而言的,是指按照主题进行数据组织的方式具有更高的数据抽象级别。
- 销售情况分析就是一个分析领域,那么数据仓库的分析主题可以是“销售分析”。
- 集成的:
- 数据仓库的数据是从原有的分散的多个数据库、数据文件、用户日志中抽取来的,数据来源可能既有内部数据又有外部数据。操作型数据与分析型数据之间差别很大:
- 数据仓库的每一个主题所对应的源数据,在原有的各分散数据库中有重复和不一致的地方,且来源于不同的联机系统的数据与不同的应用逻辑捆绑在一起;
- 数据仓库中的数据很难从原有数据库系统直接得到。数据在进入数据仓库之前,需要经过统一与综合;
- 数据仓库中的数据是为分析服务的,而分析需要多种广泛的不同数据源以便进行比较、鉴别,数据仓库中的数据会从多个数据源中获取,这些数据源包括多种类型数据库、文件系统以及Internet网上数据等,它们通过数据集成而形成数据仓库中的数据。
- 数据仓库的数据是从原有的分散的多个数据库、数据文件、用户日志中抽取来的,数据来源可能既有内部数据又有外部数据。操作型数据与分析型数据之间差别很大:
- 稳定的:
- 数据仓库数据反映的是一段相当长的时间内历史数据的内容,是不同时点的数据库快照的集合,以及基于这些快照进行统计、综合和重组的导出数据。数据稳定主要是针对应用而言。数据仓库的用户对数据的操作大多是数据查询或比较复杂的挖掘,一旦数据进入数据仓库以后,一般情况下被较长时间保留。数据经加工和集成进入数据仓库后是极少更新的,通常只需要定期的加载和更新。
- 反映历史变化的:
- 数据仓库包含各种粒度的历史数据。数据仓库中的数据可能与某个特定日期、星期、月份、季度或者年份有关。虽然数据仓库不会修改数据,但并不是说数据仓库的数据是永远不变的。数据仓库的数据也需要更新,以适应决策的需要。数据仓库的数据随时间的变化表现在以下几个方面:
- 数据仓库的数据时限一般要远远长于操作型数据的数据时限;
- 业务系统存储的是当前数据,而数据仓库中的数据是历史数据;
- 数据仓库中的数据是按照时间顺序追加的,都带有时间属性;
- 数据仓库包含各种粒度的历史数据。数据仓库中的数据可能与某个特定日期、星期、月份、季度或者年份有关。虽然数据仓库不会修改数据,但并不是说数据仓库的数据是永远不变的。数据仓库的数据也需要更新,以适应决策的需要。数据仓库的数据随时间的变化表现在以下几个方面:
三、数据仓库的作用
- 整合企业业务数据,建立统一的数据中心;
- 产生业务报表,了解企业的经营状况;
- 为企业运营、决策提供数据支持
- 可以作为各个业务的数据源,形成业务数据互相反馈的良性循环;
- 分析用户行为数据,通过数据挖掘来降低投入成本,提高投入效果;
- 开发数据产品,直接或间接地为企业盈利;
四、数据仓库与数据库的区别
-
数据库与数据仓库的区别实际讲的是 OLTP 与 OLAP 的区别。
- OLTP(On-Line Transaction Processing 联机事务处理),也称面向交易的处理系统。主要针对具体业务在数据库系统的日常操作,通常对少数记录进行查询、修改。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。
- OLAP(On-Line Analytical Processing 联机分析处理),一般针对某些主题的历史数据进行分析,支持管理决策。
-
数据仓库:
- 数据仓库主要用于解决企业级的数据分析问题或者说管理和决策;
- 数据仓库是为分析数据而设计,数据库是为捕获和存储数据而设计;
- 数据仓库是面向分析,面向主题设计的,即信息是按主题进行组织的,属于分析型;数据库是面向事务设计的,属于操作型;
- 数据仓库在设计是有意引入数据冗余(目的是为了提高查询的效率),采用反范式的方式来设计;数据库设计是尽量避免冗余(第三范式),一般采用符合范式的规则来设计;
- 数据仓库较大,数据仓库中的数据来源于多个异构的数据源,而且保留了企业的历史数据;数据库存储有限期限、单一领域的业务数据;
-
数据库:
- 数据库是面向事务的设计,数据仓库是面向主题设计的;
- 数据库存储有限期限的业务数据,数据仓库存储的是企业历史数据;
- 数据库设计尽量避免冗余,数据存储设计满足第三范式,但是便于进行数据分析。数据仓库在设计时有意引入冗余,依照分析需求,分析维度、分析指标进行设计;
- 数据库是为捕获数据而设计,数据仓库是为分析数据而设计;
-
以银行业务为例:
- 数据库是事务系统的数据平台,客户在银行做的每笔交易都会写入数据库,被记录下来,这里,可以简单地理解为用数据库记账。
- 数据仓库是分析系统的数据平台,它从事务系统获取数据,并做汇总、加工,为决策者提供决策的依据。
- 比如,某银行某分行一个月发生多少交易,该分行当前存款余额是多少。如果存取款多,消费交易多,那么该地区就有必要设立ATM了。
- 银行的交易量是巨大的,通常以百万甚至千万次来计算。事务系统是实时的,这就要求时效性,客户存一笔钱需要几十秒是无法忍受的,这就要求数据库只能存储很短一段时间的数据。而分析系统是事后的,它要提供关注时间段内所有的有效数据。这些数据是海量的,汇总计算起来也要慢一些,但是,只要能够提供有效的分析数据就达到目的了。
- 数据仓库是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它决不是所谓的大型数据库。
-
数据仓库与数据库对比:
对比内容 数据库 数据仓库 数据内容 近期值、当前值 历史的、归档的数据 数据目标 面向业务操作 面向管理决策、面向分析(主题) 数据特性 动态频繁更新 静态、不能直接更新;定时添加数据 数据结构 高度结构化、满足第三范式 简单的、冗余的、满足分析的 使用频率 高 低 数据访问量 访问量大;每次访问的数据量小 访问量小;每次访问的数据量大 对响应时间的要求 高 低(不敏感)
五、数据集市
- 数据仓库(DW)是一种反映主题的全局性数据组织。但全局性数据仓库往往太大,在实际应用中将它们按部门或业务分别建立反映各个子主题的局部性数据组织,即数据集市(Data Mart),有时也称它为部门数据仓库。
- 数据集市:是按照主题域组织的数据集合,用于支持部门级的数据分析与决策。
- 如在商品销售的数据仓库中可以建立多个不同主题的数据集市:
- 商品采购数据集市
- 商品库存数据集市
- 商品销售数据集市
- 如在商品销售的数据仓库中可以建立多个不同主题的数据集市:
- 数据集市仅仅是数据仓库的某一部分,实施难度大大降低,并且能够满足企业内部部分业务部门的迫切需求,在初期获得了较大成功。但随着数据集市的不断增多,这种架构的缺陷也逐步显现。企业内部独立建设的数据集市由于遵循不同的标准和建设原则,以致多个数据集市的数据混乱和不一致,形成众多的数据孤岛。
- 数据孤岛:数据间缺乏关联性,数据库彼此无法兼容;比如:企业发展到一定阶段,出现多个事业部,每个事业部都有各自数据,事业部之间的数据往往都各自存储,各自定义。每个事业部的数据就像一个个孤岛一样无法(或者极其困难)和企业内部的其他数据进行连接互动。把这样的情况称为数据孤岛。
注:参考博客:
https://blog.csdn.net/weixin_39032019/article/details/120239321?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166813939616800180621920%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=166813939616800180621920&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-2-120239321-null-null.142v63control_1,201v3control_1,213v2t3_esquery_v1&utm_term=%E6%95%B0%E6%8D%AE%E4%BB%93%E5%BA%93&spm=1018.2226.3001.4187