什么是数据仓库?如何构建数据仓库?
1. 什么是数据仓库?
在wiki中对数据仓库的解释是:
在计算中,数据仓库(DW或DWH),也称为企业数据仓库(EDW),是用于报告和数据分析的系统,被认为是商业智能的核心组成部分 DW是来自一个或多个不同来源的集成数据的中央存储库。 他们将当前和历史数据存储在一个地方,用于为整个企业的工人创建分析报告。
仓库中存储的数据是从操作系统(例如营销或销售)上载的。 数据可能会通过可操作的数据存储,并且可能需要进行数据清理才能进行其他操作,以确保在DW中使用该数据进行报告之前。
提取,转换,加载(ETL)和提取,加载,转换(E-LT)是用于构建数据仓库系统的两种主要方法。
在这里我们先解释两个概念:
数据库:数据库是通常从计算机系统以电子方式存储和访问的数据的有组织的集合。 在数据库更复杂的地方,通常使用正式的设计和建模技术来开发它们。
数据库软件:是一种软件,实现了数据库功能的软件,可以实际操作,解决业务问题,如mysql,sqlserver,oracle等数据库。
我们通常讲数据库,往往首先代入了mysql或者oracle的形象,实际上我们通常讲的数据库是数据库软件,而不是数据库这个概念。数据库和数据仓库都是数据的组织形式,可能是使用一个软件或者多个软件组合实现,二者从概念上讲没有本质区别,只不过数据库侧重OLTP,是实现业务实现,而数据仓库则是面向OLAP是面向决策的数据分析,造成二者组织、实现方式不同。
在实际业务中二者扮演了什么角色呢,下面简单举个例子。
1. 在现在的商业化服务框架中,数据库是必须存在的,如果有同学抬杠说我只有几个简单的静态网页,用户注册信息我都存在配置文件中,新增用户我就修改配置文件... ,那么请注意我说的是商业化的服务。最通俗的将,我们日常使用的微信在注册的时候就会分配一个id,关联我们输入的用户名,密码,这些信息会存储在一个数据表中,当我们进行登录操作时会读取这个表,比对用户名和密码是否一致,如果一致则完成登录。
我们日常发送到朋友圈信息也会存储在数据库中,当你打开朋友圈时会读取存放这些信息的数据库,进行数据展现。
2. 当我们进行登录的时候查询用户登录信息表可以实现这个功能,当有一天你的产品走过来告诉你,我们领导想知道最近每天有多少新增用户,这个时候你一阵窃喜,幸好在用户登录表设置的create_time,遍历一次可以拿到这些信息,你在一个从库上执行了一下这个功能(你有一个从库),执行时间有点长,稍稍影响了一些用户的登录,用户可能怀疑自己网络问题,没人追究这件事,你完成了这个需求;第二天产品告诉你,领导还想知道每天新增用户的地区分布,你看着用户登录表一筹莫展,设计的时候根本没有所属地址的信息,即便拿到你也不会存,这个时候就会引入数据仓库的概念了。
待续