数据仓库是什么?

数据仓库到底是什么?

###一、逻辑层次和概念层次
数据库和数据仓库在一定程度上具有相通性,都是通过数据库软件去管理数据,但是数据库更关注业务交易处理过程中数据的存储~

数据仓库的着重点

  • 1、对于业务的存储数据进行分析。数据库通常追求业务交易的数据,交易数据的完整性,数据的一致性,在遵从三大范式的情况下,减少数据的冗余性,使得在数据存储性能上实现最优解。
  • 2、数据分析的效率、复杂语句查询的速度,数据之间的相互关联,在数仓中,更偏向通过对业务源数据的理解,加工出适合开发的多维数据模型,从而提高数据分析的效率。

二、数据的保留性传统的关系性数据库

(例如oracle,mysql,DB2)在数据存储方面,侧重点在实时的数据,每次只是针对行式数据进行处理,如果说数据库是空军基地,那么数据仓库可以说是航空母舰,数仓可以进行更远范围内的任务处理。在数仓中,往往可以存储更久远的数据,前提是历史数据在一定时间内不被处理,数据空间足够支撑数据存储,以空间换取数据处理能力。

例如: 我跟随的第一个一期数仓项目,每天省联社都会下发当天的实时数据,不同表采用不同的入库存储方式,虽然这次项目的银行数据量相比五大行的数据量差的很多,但是也达到了百亿的级别了,各种业务一点也不少,对于历史数据保留至当前,只要省联社能下发的数据,在数仓中都能找到历史数据。

三、功能点侧重数据库是面向事务的设计

它只要保证数据能完整的存储,实现引用的完整性。而数据仓库则是面向主题设计的,将数据进行集成处理,反应历史变化的数据集合,用于决策支持系统。

数据仓库系统体系结构

  • 数据源:是数据仓库系统的基础,是整个系统的数据源泉,包含内部信息和业务经营性信息。

  • 数据的存储和管理:数仓真正的意义就在于数据的存储和管理,于是乎数据的存储和管理就与传统型数据产生了很大的差异,针对各个业务系统的数据进行抽取和清理,根据对象的不同,就产生了不同的管理组织方式。将根据源数据的不同下发方式(全量,增量,变量),也产生了不同的入库存储方式,这就要求在处理数据时,要分门别类。

  • 多维数据模型建立:通过对不同的业务维度进行数据模型的建立,我将其称之为模型层,该层主要是为了方便做数据分析时,部分数据能够快速的获取和进行sql语句的编写,其实我所在的项目这一层都是用的公司原有的架构设计,从某种角度讲有一部分的模型设计已经不能够满足目前的需求,很多数据从源数据中处理后,往往不适合业务的需求,目前我能够独立开发新的模型,来满足报表业务需求。

  • 数据缓冲层(STA):服务于逻辑算法,存储过程速度快,代码简单。(四种入库方式+marge)

    • 全量:参数表,只会增加,不会删除;
    • 快照:切片式存储,数据量变化不大,但是数值变化大;按日期删除追加(增量);
    • 拉链 关于模型:分类整理
    • 集市应该是按照业务需求的不同(不再以数据作为驱动),进一步对数仓进行分类整理,应该避免在业务层面上有交叉性,独立且有针对性。

仓库应该是大而全,集市应该是分类精选

数据仓库的数据应用

  • 报表展示

    • 报表几乎是每个数据仓库的必不可少的一类数据应用,将聚合数据和多维分析数据展示到报表,提供了最为简单和直观的数据。
  • 即时查询

    • 理论上数据仓库的所有数据(包括细节数据、聚合数据、多维数据和分析数据)都应该开放即时查询,即时查询提供了足够灵活的数据获取方式,用户可以根据自己的需要查询获取数据。
  • 数据分析

    • 数据分析大部分基于构建的业务模型展开,当然也可以使用聚合的数据进行趋势分析、比较分析、相关分析等,而多维数据模型提供了多维分析的数据基础;同时从细节数据中获取一些样本数据进行特定的分析也是较为常见的一种途径。
  • 数据挖掘

    • 数据挖掘用一些高级的算法可以让数据展现出各种令人惊讶的结果。数据挖掘可以基于数据仓库中已经构建起来的业务模型展开,但大多数时候数据挖掘会直接从细节数据上入手,而数据仓库为挖掘工具诸如SAS、SPSS等提供数据接口。

接下来的几天,会从数仓整体来进行学习,主要涵盖以下几部分:

  • 需求
  • 架构
  • 元数据管理
  • 数据质量管理
  • ETL开发、建模和任务调度。

评论