由于工作需要,最近在弄数据库相关的项目,对于很多地方不甚了解,特别是一些概念性的东西,知其然而不知其所以然,这里列出一些基本知识,做个印记,也和读者共享。
数据仓库:
数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。
对于数据仓库的概念我们可以从两个层次予以理解,首先,数据仓库用于支持决策,面向分析型数据处理,它不同于企业现有的操作型数据库;其次,数据仓库是对多个异构的数据源有效集成,集成后按照主题进行了重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。
根据数据仓库概念的含义,数据仓库拥有以下四个特点:
1、面向主题。
数据仓库中的数据是按照一定的主题域进行组织。
主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。
而操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离。
2、集成的。
数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。
面向事务处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。
3、相对稳定的。
数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。
操作型数据库中的数据通常实时更新,数据根据需要及时发生变化。
4、反映历史变化。
数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
而操作型数据库主要关心当前某一个时间段内的数据。
数据仓库的存储模式
数据仓库存储的两个基本的元素是维度表和事实表。(维是看问题的角度,比如时间,部门,维度表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID)
事实表:是反映业务核心的表,表中存储了与该业务相关的关键数据,我们称其为“度量值”,是今后用来计算及统计的主要字段。除此之外,事实表中还存储着与该业务相关的所有表的关联信息,也就是数据库中外键。能够与其他表建立起联系,从而获得所需要的所有业务信息。而被关联的其他表就是维度表。
维度表:存储与业务相关的非核心信息的表。
事实表与维度表之间通过主外键关联,结构有两种:星型结构和雪花型结构。
星型结构:如图,是指一个事实表连接一个或多个维度表构成的结构,维度表不再关联其他维度表。
雪花型结构:是指一个事实表关联一个或多个维度表,并且维度表还关联了其他的维度表,构成多层级的结构,称为雪花型。
联机分析处理OLAP:
OLAP(联机分析处理On-Line Analytical Processing)也叫多维DBMS。
OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的技术核心是"维"这个概念。
“维”是人们观察客观世界的角度,是一种高层次的类型划分。“维”一般包含着层次关系,这种层次关系有时会相当复杂。通过把一个实体的多项重要的属性定义为多个维(dimension),使用户能对不同维上的数据进行比较。因此OLAP也可以说是多维数据分析工具的集合。也叫做多维数据集。一般一个多维数据集可以用一个立方体的方式进行描述。
多维数据集是联机分析处理 (OLAP) 中的主要对象,是一项可对数据仓库中的数据进行快速访问的技术。多维数据集是一个数据集合,通常从数据仓库的子集构造,并组织和汇总成一个由一组维度和度量值定义的多维结构。
每个多维数据集都有一个架构,架构是数据仓库中已联接的各表的集合,多维数据集从数据仓库提取其源数据。架构中的核心表是事实数据表,事实数据表是多维数据集度量值的源。
OLAP的基本多维分析操作有钻取(roll up和drill down)、切片(slice)和切块(dice)、以及旋转(pivot)、drill across、drill through等。 ·钻取是改变维的层次,变换分析的粒度。它包括向上钻取(roll up)和向下钻取(drill down)。roll up是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而drill down则相反,它从汇总数据深入到细节数据进行观察或增加新维。 ·切片和切块是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个,则是切块。 ·旋转是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。
ETL介绍:
ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)作为BI/DW(Business Intelligence)的核心和灵魂,能够按照统一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过程,是实施数据仓库的一重要组成部分 。
企业使用ETL工具后,利用起了已存在的数据资源,避免大量的联机事务处理。ETL工具的典型代表有:OWB、微软DTS, Informatica,Datastage 等
ETL的质量问题具体表现为:正确性、完整性、一致性、完备性、有效性、时效性和可获取性。
不同时期系统业务过程有变化,遗留系统和新业务,遗留系统模块在运营、人事、财务、办公系统等相关信息的不一致,ETL转换的过程主要包含空值处理、规范化数据格式、拆分数据、验证数据正确性及数据替换。.
DTS介绍:
DTS (Data Transformation Services的缩写)能处理数据导入、分析操作过程中与数据转换有关的步骤 .进行校验,清理等.可以自动或交互的从多个异构数据源向数据仓库或数据集市装入数据的技术。
大多数机构都有数据的多种存储格式和多个存储位置。为了支持决策制定、改善系统性能或更新现有系统,数据经常必须从一个数据存储位置移动到另一个存储位置,都可由DTS来做。DTS还允许用户定期导入或变换数据,以实现数据转换的自动化。
可以将 DTS 解决方案创建为一个或多个包。每个包都可能包含一组用来定义要执行工作的经过组织的任务、对数据和对象的转换、用来定义任务执行的工作流约束以及与数据源和目标的连接。DTS 包还提供了一些服务,例如记录包执行详细信息、控制事务和处理全局变量。DTS提供一组工具,可以从不同的源将数据抽取、转换和合并到一个或多个目标位置。借助于DTS工具,您可以创建适合于您的组织特定需要的自定义移动解决方案。
数据仓库与ETL
如下图所示,ETL服务于数据仓库,将数据迁移至仓库中。
ETL功能包括:数据抽取、数据传输、数据转换、数据装载、配置维护。如果说数据仓库的模型设计是一座大厦的设计蓝图,数据是砖 瓦的话,那么ETL就是建设大厦的过程。
E: Extract ,连接异构数据源平台,提取数据
T: Transform,过程一般都是批量操作,也是ETL的核心
L: Load ,由普通关系库导进数据仓库
ETL正式运行特点:
一是数据同步,按照固定周期运行
二是数据量一般都是巨大的,所以会拆分成E,T,L几个过程
ETL正式运行要求:
增量与自动定时运行 ,相应的加载策略、更新策略(周期)、汇总策略(替换变化的数据记录,或新增汇总记录)、维护策略。
ETL与DTS关系
为数据仓库提供导入,清洗,装载的系统解决方案的工具叫ETL,DTS是微软提供的实现ETL工具的一个解决方案,通过DTS组件的提供的功能,可定制自己的ETL运行方案。
导入:配置好数据源连接由数据转换任务从数据源提取数据(DTS的数据源Connections 11个,任务(task)19个,工作流(workflow)3个)
清洗:定制好转换规则,在字段级上处理数据
装载:清洗后处理的数据结果,批量存入数据库中