数据仓库系列(1):为什么要搭建数据仓库

系列说明:

    本文写作的初衷,是想以阿里巴巴的OneData体系为出发点,详细阐述数据仓库搭建的初衷、架构的理念及实现的方式,借此来总结从事大数据开发岗位多年以来的经验积累。仅从笔者个人角度出发,收集相关素材,进行二次整理,并非原创。

什么是数据仓库?

    要想全面的来看待数据仓库,首先要回答的是数据仓库搭建的目的:

    百度百科解释:数据仓库是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。

    笔者个人理解:以数据建模理念为基础,以消除数据孤岛为目的,通过一套标准方法和工具集,解决大数据计算中诸如质量、复用、扩展、成本等问题,能够驱动业务发展的体系。

    第三方解释:数据仓库是数据管理、存储、计算、建模的方法论,是一种过程处理方法;它的特点为:面向主题的、集成的、稳定的、反映历史变化;数据仓库由元数据、数据建模、实现代码、血缘关系、规范准则组成;数据仓库在整个数据体系中的位置:数据采集->数据接入->数据仓库->数据报表/数据分析/数据挖掘。

大数据环境下数据仓库与传统数据库的异同:

  • 传统数据库用于记录状态,面向事务;数据仓库用于分析决策,面向主题;
  • 传统数据库服务业务系统,作为数据源;数据仓库服务数据分析师等专业数据人士;
  • 传统数据库一般存储最新状态的业务数据;数据仓库存储历史数据,并且不是永久保存;
  • 传统数据库严格遵循范式,避免冗余;数据仓库为了方便使用故意引入部分冗余;
  • 传统数据库数据量偏小,多以GB为规模;数据仓库以存储海量数据为目标,多以TB为规模;
  • 传统数据库承载体一般为mysql、oracle等传统的关系型数据库;数据仓库承载体一般为Hive、Hbase、Spark、Dremel等技术。

传统数据库存在的痛点:

  • 数据资产模糊,数据存储和计算资源评估缺乏必要的信息;
  • 计算口径不一致,条件的过滤和规则等的理解差异带来的算法不一致;
  • 无中间表或中间表建设的差,开发时间长并且重复建设;
  • 底层轻微的改变对上层影响巨大;
  • 问题定位难、周期长,上下游依赖混乱,生命周期难以管理;
  • 频繁的临时性需求。

大数据环境下数据仓库的优点:

  • 方便沟通交流;
  • 提高排查问题的效率;
  • 提高数据开发的效率;
  • 生产结果可复用;
  • 复杂任务解耦;
  • 提高数据质量,避免数据口径不一致等问题;
  • 减少存储成本和计算成本。

建设大数据环境下数据仓库的思考:

    需要注意的是,虽然数仓建设能带来诸多的益处,但其是一个庞大复杂耗时的工程,需要一些支持系统的配合,比如说元数据管理系统、调度系统等,而且也并不是所有的业务一开始都要建设数仓,要根据业务发展所处的状态和未来的发展趋势以及分析决策的复杂性等综合评判。

    大数据系统,其复杂度之高,是几乎不可能在一开始就完整和完美地进行自上而下定义和设计的,其设计过程必然遵守从需求->设计->迭代->理论的过程。大数据的真正价值在于生命性和生态型,其价值是随着使用场景和方式动态变化的。

    数据仓库的业务意义,在于从底层的数据采集、数据处理,到挖掘算法、数据应用服务以及数据产品的全链路、标准化的大数据体系。通过这个体系,超过EB级别的海量数据能够高效融合,并以秒级的响应速度,服务并驱动自身的业务和外部千万用户的发展。

    数据仓库的技术意义,在于规避重复建设,统一计算口径,有效降低成本,提升开发效率。

发布了19 篇原创文章 · 获赞 0 · 访问量 907

猜你喜欢

转载自blog.csdn.net/gaixiaoyang123/article/details/103782693