数据仓库(下文以“数仓”称),顾名思义,存放数据的仓库,它集合了各个业务系统的数据,以金融业为例,数仓包含了贷款业务、CRM、存款业务等数据。用于企业做数据分析、出报告、做决策;在有些公司也作为各业务系统的数据来源。
从逻辑上理解,
数据库并非独立的个体,而是与整个大数据系统相结合。换言之,数据仓库就像人的心脏,只有心脏在而没有其他器官在,人就没法活下来。
其整体架构包括数据来源系统、原始数据层、数据仓库、数据应用层。
数据仓库是做什么的,业务系统,数据仓库分层
数据库和数仓没有区别,都是通过数据库软件实现存放数据的地方,只不过从数据量来说,数据仓库要比数据库更庞大。
他们最主要的区别在于,传统事务型数据库如 MySQL 用于做联机事务处理(OLTP),例如交易事件的发生等;而数据仓库主要用于联机分析处理(OLAP),例如出报表等。
有些同学可能想,数据分析、出报表等工作也可以直接通过业务数据库完成呀,数据仓库似乎也不是必需品。
如果是简单的系统
,比如初创时期,业务量少,用户和数据少,几台服务器和几个MySQL组成的系统,那确实可以实现。但当业务越做越多,用户和数据量很庞大,出报表需要跨集群关联多个系统的数据实现的话,那数仓还是很有必要的。
如果还不能理解,先想几个问题:
如果你要的数据分别存放在很多个不同的数据库,甚至存在于各种日志文件中,你要如何获取这些数据?
如果你从各数据源中取出了你要的数据,但是发现格式不一样,或者数据类型不一样,你要怎么规范?
如果有一天你需要在业务系统查历史数据,但发现这些数据被修改过的,你要怎么办?
如果要跨集群关联各个不同业务系统的数据,要怎么做?怎么优化查询时间?
……
数仓的出现,可以很好的解决上面这些问题。它通过数据抽取和清洗,将各个业务系统的数据整合落地到一个系统(数仓),规范化数据,方便在出报表做决策的时候获取数据。
对于数据库的操作通常称为OLTP(On-Line Transaction Processing),也就是联机事务处理,对于具体业务在数据库中的联机操作,具有数据量较小的特点,一般只对少量数据记录进行查询,修改。
而对于数据仓库的操作,通常被称为OLAP(On-Line Analytical Processing),联机分析处理,用于对特定主题的历史数据(综合数据)进行分析,以支持管理决策。
数据仓库是做什么的,业务系统,数据仓库分层
数据仓库是做什么的,业务系统,数据仓库分层