数据仓库 - 实际作用与需求

数据仓库的产生背景

数据仓库的起源可以追溯到计算机的发展初期,并且数据仓库是信息技术长期发展的产物,在以后也会一直发展。


从工程角度来讲,在计算机领域出现了大型在线事务处理系统后,对于数据之间的交互和使用就逐渐的多了起来。随后出现的抽取程序,可以通过设置参数,在文件中搜索满足条件的数据,然后把这些数据传送到其他文件或者数据库中。慢慢的人们发现在抽取结果中,加上一些条件限制可以更方便的得到想要的数据,于是就出现了基于抽取之上的抽取。这样就造成了如下问题:无休止的抽取带来诸多问题,抽取程序过多,功能单一,不可复用,无公共使用数据源,数据之间会产生差异等,所以开始思考是否可以建立成体系的机构化环境,以减少数据的差异。这也就是数据仓库出现的原因。数据仓库从操作型数据库中抽取数据,通过规范的加工过程,得到粒度化数据,并且这些数据时面向主题、集成、不易失、随时间变化的


从商业角度来讲,在一次大会上,马云爸爸谈到当今时代,是IT时代到DT时代的变革。数据资源是比石油还要重要的资源,数据就是生产资料。随着企业多年的经营,业务数据量的不断增大,如何能够更好地利用数据,将数据转化成商业价值,已经成为人们越来越关心的问题。举例来说,数据库系统可以很好地解决事务处理,实现对数据的“增删改查”等功能,但是却不能提供很好的决策分析支持。因为事务处理首先考虑响应的及时性,多数情况都是在处理当前数据,而决策分析需要考虑的是数据的集成性和历史性,可能对分析处理的时效性要求不高。所以为了提高决策分析的有效性和完整性,人们逐渐将一部分或者大部分数据从联机事物处理系统中剥离出来,形成今天的数据仓库。

数据团队眼中的数据仓库

从实习工作,到目前为止,我参与了两次数仓的建设,实习公司当时大数据团队刚刚成立,那时并没有建立数仓,而是依据当时的各个项目需求,直接建立数据集市,将每个审计局的业务需求,分别建立不同的业务表,数据来源有来自Excel文件的,也有来自Oracle数据库的。


再一个就是当前公司,这次的数仓建设,是我完整的一次参与整体流程,建立数仓的目的就是来应对各个产品所会提出的各种数据需求和统一各个产品的数据标准,现在的产品方,确实具有一定的数据头脑,不再像以前只追求盈利,不去思考数据背后的价值和数据指标对经营带来的影响。我所在的大数据团队负责公司层面和下面8个产品线的数据驱动服务,公司层面经常会调取盈利相关指标,产品方的需求则是各种各样,时间长度也是从年到天都有。对于公司和产品方,他们并不关心数据的来源和数仓的重要性,因为他们是使用数据结果的人,但是对于大数据团队,建立数据仓库是一个必要的事情,

数据仓库对企业的价值

数据仓库对企业带来的价值是很难估算的,但是数据仓库的成本倒是可以估算出大概的。就我们公司而言,数据仓库数据主题分成两个大类来说,就是用户数据与业务数据,那么产品方最想看到的就是用户数据与业务数据联合起来,这就是数据仓库对公司产品运营方带来的价值。


数据仓库具有历史性,其中存储的数据大多是结构化数据,这些数据并非企业全量数据,而是根据需求针对性抽取的,因此数据仓库对于业务的价值是各种各样的报表,但这些报表又无法实时产生。数据仓库报表虽然能够提供部分业务价值,但不能直接影响业务,需要数据开发人员对数据仓库中的数据进行ETL开发,给出指导性的数据分析结果。

数据仓库中数据与数据库中数据的不同

这里呢,简单的说,应该就是OLTP和OLAP的区别

数据仓库需求分析阶段

数据仓库的需求分析,在很多公司中,都是由数据团队或者数据仓库工程师几个技术人员协定下来的。但是一个合格的数据仓库,应该是由业务方,产品方,运营方,数据团队技术方一同来商定的。


一个完整的流程应该是去了解数据的背景,细节,去了解用户需要用到哪些主题的数据和数据粒度的大小,去了解主题数据中数据的维度,最后才是数据仓库设计人员开始拿出数据仓库的架构方案和ETL方案。

数据仓库作用

  • 整合公司所有业务数据,建立统一的数据中心
  • 产生业务报表,用于作出决策
  • 为网站运营提供运营上的数据支持
  • 可以作为各个业务的数据源,形成业务数据互相反馈的良性循环
  • 分析用户行为数据,通过数据挖掘来降低投入成本,提高投入效果
  • 开发数据产品,直接或间接地为公司盈利