数据库和数据仓库的区别
数据库:传统的关系型数据库的应用,主要是基本的、日常的事务处理,更关注业务交易处理(OLTP)
数据仓库:数据仓库支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询效果,更关注数据分析层面(OLAP)
随着业务指数级的增长,数据量陡增,从最初粗放的数据分析逐步演化为角色和场景都非常精细化的集群分析。这类非常具体,且能够对公司决策起到关键性作用的数据,很难从业务数据库中调取出来,主要原因是:
1、业务数据库中的数据结构是为了完成交易设计的,不是为了查询和分析的便利设计的
2、业务数据库大多数是读写优化的,对于大量数据的读(查询指标,一般是只读类型的数据查询)的支持不足
数据仓库的作用在于:
1、数据结构的设计更偏向于查询和分析
2、只读优化的数据库,对于数据写入的速度要求不高,只需要做大量数据的复杂查询的速度够快就可以了。
数据模型上的区别:
数据库:主要遵从范式模型(1NF,2NF,3NF,等等),从而尽可能减少数据冗余,保证数据引用的完整性。
数据仓库:强调数据分析的效率,复杂查询的速度,数据之间的相关性分析。数据仓库多使用多维模型,提高数据分析的效率。
产品实现上的区别:
数据库:通常使用行式存储,如Oracle,Microsoft sql server等
数据仓库:通常使用列式存储,如SAP IQ,Hive等