数据仓库相关概念

数据仓库概念

数据仓库即DataWareHouse,简称DW或DWH,百度百科定义为

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

       感觉讲的比较泛,我理解他说是一类数据库的定义,是一套数据库设计、数据管理和存储的理念;从数据库角度来说,一种针对特殊业务用于分析的数据库,区别于常见的业务数据库(如某个商城的订单库),数据仓库通常使用于对于一些分析的场景,它主要用于一些分析操作,偏向通过数据对决策支持,并且能够提供直观易懂的查询结果(如BI报表);
      例如某商城随着业务增长,要通过不断的分析人群购买信息,为商城的一些业务提供数据服务,如推荐,而要分析这些购买人群数据,很难轻易的从业务数据库直接抽离数据直接进行分析,业务数据库通常需要实时应用业务的,面对大量复杂的查询容易对业务造成影响,这时候就需要使用数据仓库了,从复杂的业务中周期性的提取出需要可能会分析到的数据然后经过一定加工进入到数据仓库中,然后进行各种聚合等操作的分析,数据仓库区别业务库一般不需要需要用到事务,数据的操作一般来说也是批量的,且数据仓库在设计上甚至需要一定的数据冗余,例如一个时间列date_time [2017/09/01 01:01:01],通常会将时间列派生出year[2017]、month[09]、day[01] 等甚至一些特殊的需要列如year_month[2017-09]、year_week[2017-36]、year_quarter[2017-03]等等一些方便直接进行使用的字段,在关系型数据库(RDMS)常用星形模式的表结构设计,即维度表和实体表,实体表中有需要统计的字段和维度表的外键;

实体和维度

  • 实体:实体一般又成为事实,事实是数据仓库中主要信息单元,也是分析的意义所在,事实即是分析时候关心的东西,一类事实存储在一般一张表中,称为事实表(FactTable),每一类事实包含关于事实的主要关心信息如PV事实有点击量、点击用户量、用户平均点击量,页面停留时长等如商品销售的销售额,销量,成本,利润等,事实表一般要与多个维度关联以用于多维度(多个角度)分析;
  • 维度:维度(dimensions)可以理解为实体的属性,是用来反映业务的一类属性,类似于我要从哪方面(哪个角度)去看这个数据,例如我想从城市的角度去看昨天网站的PV(PageView)分布情况;一类属性的集合构成一个维度,例如地域维度包含国家、省份、城市,商品维度包含商品一级分类、二级分类等,时间维度包含年、月、周、日这些层级级别,存储一类维度的表成为维度表(DimTime,DimArea..),维度的属性称为维度成员,如提到的地域维度那么国家省份都是地域维度的成员
  • 度量值(measures):又称指标,是对事实表中具体分析事实单元的称呼,例如点击量这是一个指标,销量这是一个指标,从数据仓库层面来讲指标一般是指能被聚合计算且有统计意义的数据;
    下面是维度和事实表的示例
    数据仓库相关概念_第1张图片
    数据仓库相关概念_第2张图片
    数据仓库相关概念_第3张图片

OLAP联机分析处理

OALP(On-Line Analytical Processing)联机分析处理,它是基于数据仓库之上实现的面向分析的各类操作的集合,简单来说数据仓库是用来存储数据,而OLAP就是为了分析这些数据进行的一些操作的一类定义,其实映射到数据库里面就是一系列的,各种维度聚合的查询操作,OLAP区别与OLTP(联机事务处理)如果是两个对比

类型 OLTP OLAP
对象 业务开发人员 分析决策人员
功能 日常事务处理 面向分析决策
模型 关系模型 多维模型
数据量 几条或几十条记录 百万千万条记录
操作类型 增删改查 查询为主

多维度数据模型:一种比较形象的说法是立方体(CUBE),立方体事实上只有三维,实际应用的时候肯定不止三维,OLAP就是基于数据仓库进行数据然后建立起多维度的Cube,然后对数据进行各种聚合、钻取、查询操作,主要提高了分析的灵活性,可以从不同角度不同层面对数据进行细分和汇总,满足不同分析的需求,下面我自己画了一个立方体
数据仓库相关概念_第4张图片
一般经过OLAP后数据进行多维度展示分析称为BI(Business Intelligence)报表,通过这些分析报表起到对业务决策的支持作用

ETL(Extract-Transform-Load)

      ETL是数据的抽取(Extract)、转换(Transform)、加载(Load),是一套数据处理的流程的理论总结,一般属于数据仓库技术,但在其他在地方也是可以使用,一般ETL技术是在数据仓库前一个步骤,当获取到原始数据时经过数据的清洗、格式转换、派生处理等转换动作然后构成数据仓库所需要的数据模型,然后把数据加载到数据仓库中去;
      在关系型数据库中,数据源一般会经过程序导入到原始数据库中,然后通过ETL工具将源数据经过转换加载到数据库中,ETL工具Informatica、Datastage、微软SSIS、开源Kettle等

大数据下的数据仓库

      随着大数据技术的兴起,可能有人会觉得说传统那套数据仓库就过时了,我感觉数据仓库这套技术理念在大数据下反而更加重要了,大数据下数据挖掘,算法运用等等都是需要有大数据平台的中的数据为各种应用提供有利的支撑,平台的建设有可能就是 需要数据仓库技术理论作为前提;现有大数据技术同样需要有一个数据来源,这个时候可能会用kafka,flume进行数据的采集,之后经过MapReduce或者Spark进行数据清洗进入Hive或者其他分布式数据仓库中,然后根据需要从数据仓库中提取需要的数据进行不同的应用,如数据的推荐训练,用户的画像标注,深度挖掘和学习等,如下是一个大致的大数据技术架构图,(仅供参考,非正式)
数据仓库相关概念_第5张图片

你可能感兴趣的:(大数据,数据仓库)