数据仓库基本理论
数据仓库(英语:Data Warehouse,简称数仓、DW),是一个用于存储、分析、报告的数据系统 。数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持 (Decision Support)。
数据仓库本身并不"生产"任何数据,其数据来源于不同外部系统;同时数据仓库自身也不需要"消费"任何的数据,其结果开放给各个外部应用使用,这也是为什么叫"仓库",而不叫"工厂"的原因。
信息总是用作两个目的:
操作型记录的保存和分析型决策的制定 。数据仓库是信息技术长期发展的产物。
**OLTP的核心是面向业务,支持业务,支持事务。**所有的业务操作可以分为读、写两种操作,一般来说读的压力明显大于写的压力。如果在OLTP环境直接开展各种分析,有以下问题需要考虑 :
数据分析也是对数据进行读取操作,会让读取压力倍增;
OLTP仅存储数周或数月的数据;
数据分散在不同系统不同表中,字段类型属性不统一;
当分析所涉及数据规模较小的时候,在业务低峰期时可以在OLTP系统上开展直接分析。
但是为了更好的进行各种规模的数据分析,同时也不影响OLTP系统运行,此时需要构建一个集成统一的数据分析平台。
该平台的目的很简单:面向分析,支持分析。并且和OLTP系统解耦合 。
基于这种需求,数据仓库的雏形开始在企业中出现了。
如数仓定义所说,数仓是一个用于存储、分析、报告的数据系统,目的是构建面向分析的集成化数据环境。我们把这种面向分析、支持分析的系统称之为OLAP(联机分析处理)系统。数据仓库是OLAP一种。
数据仓库是面向主题性(Subject-Oriented ) 、集成性(Integrated) 、非易失性(Non-Volatile) 和 时变性(Time-Variant ) 数据集合,用以支持管理决策 。
数据清洗
操作型处理,叫联机事务处理OLTP(On-Line Transaction Processing) ,主要目标是做数据处理,它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。传统的关系型数据库系统作为数据管理的主要手段,主要用于操作型处理。
分析型处理,叫联机分析处理OLAP(On-Line Analytical Processing) ,主要目标是做数据分析。一般针对某些主题的历史数据进行复杂的多维分析,支持管理决策。
数据仓库是OLAP系统的一个典型示例,主要用于数据分析
数据仓库从各数据源获取数据及在数据仓库内的数据转换和流动都可以认为是ETL(抽取Extra, 转化Transfer, 装载Load)的过程。
但是在实际操作中将数据加载到仓库却产生了两种不同做法:ETL和ELT。Extract,Transform,Load,ETL
例:美团数据仓库分层 http://t.csdnimg.cn/3IITk
不删除、不修改已存在的数据, 当数据发生变更后, 会添加一条新的版本记录的数据, 在建表的时候, 会多加两个字段(起始时间, 截止时间), 通过这两个字段来标记每条数据的起止时间 , 一般称为拉链表
维度建模的两个核心概念:事实表和维度表
维度表
事实表 : 事实表一般指的就是分析主题所对应的表,每一条数据用于描述一个具体的事实信息,
这些表一般都是一系列主键(外键)和描述事实字段的聚集