什么是数据仓库
数据仓库试图提供一种从操作型系统到决策支持环境的数据流架构模型。
处理过程收集、清洗、整合来自多个数据源的数据。
数据仓库描述:一个面向主题的、集成的、随时间变化的、非易失的数据集合。
面向主题:
数据仓库是面向主题的。主题是一个抽象概念,简单地说就是与业务相关的数据的类别,每一个主题基本对应一个宏观的分析领域。
主题域是对某个主题进行分析后确定的主题的边界;
集成:
集成的概念与面向主题是密切相关的。从公司层面整体分析销售数据,必须将多个分散的数据源统一成一致的、无歧义的数据格式后,再放置到数据仓库中。
随时间变化:
这与联机事务处理(OLTP)系统形成鲜明的对比。联机事务处理反应的是当前时间点的数据情况,要求高性能、高并发和极短的响应时间,。
数据仓库中的数据是反映了某一历史事件点的数据快照。数据是有生命周期的,到时间后将删除。
非易失:
非易失是指,一旦进入到数据仓库中,数据就不应该再有改变。
数仓的数据是不改变的;数据仓库中的数据基本是静态的,保留了数据变化的历史轨迹。
数据粒度:
数据粒度一直是数据仓库设计需要重点思考的问题。如果数据被装载进数据仓库的频率是每天一次,那么一天之内的数据更新将被忽略。
粒度级别越低,数据量越大,查询的细节程度越高,查询范围越广泛,反之亦然。
如果得到的数据粒度级别比数据仓库的高,那将意味着在数据存入数据仓库前,开发人员必须花费大量设计和资源来对数据进行拆分。数据会以很低的粒度级别进入数据仓库,如日志类型的数据或单击流数据,此时应该对数据进行编辑、过滤和汇总。
这些业务数据经过一系列的数据抽取、转换、清洗,最终以一种统一的格式装载进数据仓库。数据仓库里的数据作为分析用的数据源,提供给后面的即席查询、分析系统、数据集市、报表系统、数据挖掘系统等。
数据仓库的好处:
将多个数据源集成到单一数据存储,因此可以使用单一数据查询引擎展示数据。
缓解在事务处理数据库上因执行大查询而产生的资源竞争问题。
维护历史数据。
通过对多个源系统的数据整合,使得在整个企业的角度存在统一的中心视图。
通过提供一致的编码和描述,减少或修正坏数据问题,提高数据质量。
一致性地表示组织信息。
提供所有数据的单一通用数据模型,而不用关心数据源。
重构数据,使数据对业务用户更有意义。
向复杂分析查询交付优秀的查询性能,同时不影响操作型系统。
开发决策型查询更简单。
事务
事务是工作于数据库管理系统(或类似系统)中的一个逻辑单元,该逻辑单元中的操作被以一种独立于其他事务的可靠方式所处理。事务一般代表着数据改变,它提供“all-or-nothing”操作,就是说事务中的一系列操作要么完全执行,要么完全不执行。
在数据库中使用事务主要出于两个目的:
(1)保证工作单元的可靠性。当数据库系统异常宕机时,其中执行的操作或者已经完成或者只有部分完成,很多没有完成的操作此时处于一种模糊状态。在这种情况下,数据库系统必须能够恢复到数据一致的正常状态。
(2)提供并发访问数据库的多个程序间的隔离。如果没有这种隔离,程序得到的结果很可能是错误的。
ACID特性:
原子性
事务中的一系列操作,全执行或不执行。原子性可防止数据被部分修改。
一致性
一致性是指任何数据库事务,只能以允许的方式修改数据。一致性并不保证应用程序逻辑的正确性。
隔离性
隔离性决定其他用户所能看到的事务完整性程度。