数据库和数据仓库
数据库和数据仓库
数据库是事务系统的数据平台,数据库中存储了各项交易的记录。 数据仓库是分析系统的数据平台,从事务系统中获取数据,进行一系列的数据汇总、计算、分析。将分析得到的数据存到数据仓库中。
比如,在当当上进行一笔买书交易,交易记录就存在数据库中,那么对这些数据(购买量)进行分析可以得到书类在地区的受欢迎程度,从而根据这些分析数据结果,将书以合适的数量分配在各个地区的仓库。
主要区别总结
- 数据库是面向事务的设计,数据仓库是面向主题设计的。
- 数据库的表设计往往是针对某一个应用进行设计的。
- 数据仓库的主题是根据分析的要求来确定的。一般指用户使用数据仓库进行分析决策所关注的方向。上述的例子主题就是“销售主题”
- 数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。
- 数据库设计是尽量避免冗余,数据仓库在设计是有意引入冗余。
- 数据库是为捕获数据而设计,数据仓库是为分析数据而设计。
数据仓库(Data Warahouse)
数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。 —数据仓库之父
数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的。
主要功能仍是将组织透过资讯系统之联机事务处理(OLTP)经年累月所累积的大量资料,透过数据仓库理论所特有的资料储存架构,作一有系统的分析整理,以利各种分析方法如联机分析处理(OLAP)、数据挖掘(Data Mining)之进行,并进而支持如决策支持系统(DSS)、数据仓库技术(EIS)之创建,帮助决策者能快速有效的自大量资料中,分析出有价值的资讯,以利决策拟定及快速回应外在环境变动,帮助建构商业智能(BI)。
- 数据仓库的特点
- 面向主题:指数据仓库中的数据是按照一定的主题域进行组织。
- 集成:数据仓库的数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出来,进行加工与集成,汇总整理之后放到数据仓库中
- 稳定性:产生的新数据,只需要定期的加载、刷新。
- 时变性:分析的结果只能反映过去的情况,当业务变化后,挖掘出的模式会失去时效性。因此数据仓库的数据需要更新,以适应决策的需要。
- 非规范化的:DW数据可以是冗余的而且经常冗余。有意冗余的设计理念是反范式的。(设计关系型数据库时要遵守范式)
数据仓库技术(ETL)
ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。
ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。
数据仓库的设计
- 效率足够高。数据仓库的分析数据一般分为日、周、月、季、年等,可以看出,日为周期的数据要求的效率最高,要求24小时甚至12小时内,客户能看到昨天的数据分析。由于有的企业每日的数据量很大,设计不好
的数据仓库经常会出问题,延迟1-3日才能给出数据,显然不行的。 - 数据质量。数据仓库所提供的各种信息,肯定要准确的数据,但由于数据仓库流程通常分为多个步骤,包括数据清洗,装载,查询,展现等等,复杂的架构会更多层次,那么由于数据源有脏数据或者代码不严谨,都可以导致数据失真,客户看到错误的信息就可能导致分析出错误的决策,造成损失,而不是效益。
- 扩展性。之所以有的大型数据仓库系统架构设计复杂,是因为考虑到了未来3-5年的扩展性,这样的话,未来不用太快花钱去重建数据仓库系统,就能很稳定运行。主要体现在数据建模的合理性,数据仓库方案中多出一些中间层,使海量数据流有足够的缓冲,不至于数据量大很多,就运行不起来了。