数据仓库的概念

讲到数据仓库(Data Warehouse)那就不得不提商业智能(Business Intelligence),每个企业的目标就是比竞争对手做出更好的商业决策,因此也就产生了BI的概念。通过BI将业务系统中大量的数据以易于理解的、当前的、准确的格式存储起来,以便于在其基础之上做出决策。然后,可以分析出当前和长期的趋势,立即注意到机会和问题,并不断收到关于决策有效性的反馈。而数据仓库则是BI解决方案中最重要的组成部分。

数据仓库是为企业所有决策制定过程,提供所有系统数据支持的战略集合。通过对数据仓库中数据的分析,可以帮助企业,改进业务流程、控制成本、提高产品质量等。

this is a placeholder image
数据仓库,并不是数据的最终目的地,而是为数据最终的目的地做好准备。这些准备包括对数据的:清洗,转义,分类,重组,合并,拆分,统计等等。

数据仓库的特点

  • Subject-oriented 面向主题的
    与业务系统(关系型数据库,nginx服务器等等)不同,数据仓库中的数据围绕企业的主题(数据库规范化)。
    例如用户购买行为是一个主题,关系型数据库中存储的可能是订单金额,发货地址,物流信息等等。如果要考查用户的购买行为,可能就要统计一个用户从浏览到支付完成的时间,此时就要从nginx访问日志中提取相关数据,并将所有这些数据归并分类整合。收集所需的分析对象称为面向主题,主题导向对决策非常有用。
  • Integrated 综合的
    在数据仓库中的数据是集成的。由于它来自多个业务系统,所以必须消除所有的不一致性。一致性包括命名约定、变量度量、编码结构、数据的物理属性等等。
  • Time-variant 时变性的
    业务系统支持日常操作因此反映的当前值,但数据仓库数据表示长期(最多10年)的数据,这意味着它存储历史数据。它主要用于数据挖掘和预测,如果用户想知道特定客户的购买模式,那么就需要查看当前和过去购买的数据。
  • Nonvolatile 非易失性的
    数据仓库中的数据是只读的,这意味着它不能更新、创建(insert操作)或删除。
  • Summarized 概述性的
    在数据仓库中,数据在不同的级别进行汇总。例如用户开始查看一个产品在全国的总销售额。然后再去查看某个省份的某个城市的销售额。最后,他们可以在特定的城市下检查各个商店的销售额。因此,通常情况下,分析是从更高的层次开始,然后向下移动到更低的细节层次。

数仓相关的概念

数据集市(Data Market)

数据集市是数据仓库的一种简单的形式,它只专注于一个主题或者是一个职能范围,如销售、财务或营销,因此,他们的数据来源有限。数据集市是部门级的,只能为某个局部范围内的管理人员服务。

image-center

tips: 数据的来源可以是内部业务系统、中央数据仓库或外部数据。

OLTP versus OLAP

OLTP:On-Line Transaction Processing在线事务处理,针对具体的业务在数据库中的在线操作,具有数据量较少的特点,通常对少量的数据记录进行查询、修改。典型的就是我们的关系型数据库如MySQL、Oracle。
OLAP:On-Line Analytical Processing在线分析处理,针对某些主题(综合数据)的历史数据进行分析,支持管理决策。例如数据仓库hive。

比较项 操作型(OLTP) 分析性(OLAP)
关注 细节 综合或提炼
模型 实体–关系(E-R) 星型或雪花
操作 可更新 只读,只追加
操作粒度 操作一个单元 操作一个集合
场景 面向事务 面向分析
数据量

Predictive Analytics预测分析

预测分析是使用复杂的数学模型来发现和量化数据中的隐藏模式,这些模型可以用来预测未来的结果。预测分析不同于OLAP, OLAP侧重于历史数据分析,具有反应性,而预测分析侧重于未来。这些系统也用于客户关系管理(CRM)。

数据仓库的好处

  • 将来自多个数据源的数据集成到单个数据库和数据模型中,因此可以使用单个查询引擎在ODS(原始数据层)中表示数据。
  • 集成来自多个源系统的数据,支持跨企业的中心视图。这种好处总是很有价值的,特别是当组织通过合并而成长的时候。
  • 为所有感兴趣的数据提供一个通用的数据模型,而不管数据的来源。通过提供一致的代码和描述、标记甚至修复错误的数据来提高数据质量。始终如一地展示企业的信息。
  • 重构数据,组织和消除重复数据的歧义,使其对业务用户有意义,并使得决策支持的查询更容易编写,还能够提供出色的查询性能,即使对于复杂的分析查询,也不会影响业务系统。
  • 维护数据历史记录,即使源事务系统不这样做。

数仓分层的概念

image-center ODS层:原始数据层,存放原始数据,直接加载原始日志、数据,数据保持原貌不做处理。
DWD层:结构和粒度与原始表保持一致,对ODS层数据进行清洗(去除空值,脏数据,超过极限范围的数据)。
DWS层:以DWD为基础,进行轻度汇总。
ADS层:为各种统计报表提供数据。

tips: 这只是数仓分层的一种,可能每个企业中有所不同,但都大同小异。

数仓为什么要分层

  • 把复杂问题简单化
    将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单、并且方便定位问题。
  • 减少重复开发
    规范数据分层,通过的中间层数据,能够减少极大的重复计算,增加一次计算结果的复用性。
  • 隔离原始数据
    不论是数据的异常还是数据的敏感性,使真实数据与统计数据解耦开。

留下评论  

您的电子邮箱地址并不会被展示。请填写标记为必须的字段。 *

正在加载...