数据中心建设方案研究
深圳万讯自控股份有限公司
摘要
摘要
信息部
wujinyang@maxonic.com.cn
目录
目录
目录 .................................................................................................................................................... 1
1 概念 ................................................................................................................................................ 2
1.1 定义 ..................................................................................................................................... 2
1.2 现状 ..................................................................................................................................... 2
1.3 用途 ..................................................................................................................................... 3
2 数据仓库架构 ................................................................................................................................ 3
2.1 架构图.................................................................................................................................4
2.2 数据源................................................................................................................................. 4
2.3 ETL 过程................................................................................................................................4
2.3.1 抽取(Extract)............................................................................................................ 5
2.3.2 转换(Transform)....................................................................................................... 5
2.3.3 加载(Load)................................................................................................................5
2.3.4 ETL 工具分析 ............................................................................................................ 5
2.4 数据中心 ............................................................................................................................. 5
2.4.1 多维数据模型 ..........................................................................................................6
2.4.2 细节数据 ..................................................................................................................9
2.4.3 聚合数据 ..................................................................................................................9
2.4.4 业务模型 ..................................................................................................................9
2.5 数据应用 ........................................................................................................................... 10
2.5.1 报表展示 ................................................................................................................10
2.5.2 即席查询 ................................................................................................................10
2.5.3 数据分析 ................................................................................................................10
2.5.4 数据挖掘 ................................................................................................................10
2.6 设计流程 ........................................................................................................................... 10
2.6.1 确定主题 ................................................................................................................11
2.6.2 确定量度 ................................................................................................................11
2.6.3 确定数据粒度 ........................................................................................................11
2.6.4 确定维度 ................................................................................................................11
2.6.5 创建事实表............................................................................................................11
2.6.6 ETL............................................................................................................................11
2.6.7 构建应用 ................................................................................................................12
3 分布式大数据架构 ...................................................................................................................... 12
3.1 架构图............................................................................................................................... 12
3.2 Hadoop ............................................................................................................................... 13
3.2.1 Hadoop 技术框架 ................................................................................................... 14
3.3 分布式数据库 ...................................................................................................................15
3.4 处理流程 ........................................................................................................................... 16
1 / 18
1 概念
1.1 定义
数据中心,是一个面向主题的、集成的、随时间变化的数据集合(ODS 数
据),它整合了多个数据源的历史数据进行细粒度的、多维的分析并做存储,以
方便战略决策或制作商业报表。
数据中心本身不产生数据,数据应当全部来源于外部数据源。外部数据源通
过 ETL 工具处理之后,将主题性的数据按照一定的模型存储,以达到统一使用,
按需存储,面向主题的数据存储集合,避免了以往多数据库,数据冗余过多以及
数据分散,数据无面向主题,且大多数数据无用的缺点。
其特点有面向主题,数据集成,数据本身较为稳定等。
1.2 现状
传统模式下的数据中心建设为常规数据仓库,其服务器通常采用关系型数据
库,也就是说从软件实现的角度,数据仓库和操作型数据采用的模式是一样的。
这就决定了,数据仓库和操作数据库面临同样的问题:行业垄断带来的成本依赖、
数据模型带来的存储瓶颈和运算瓶颈,这也为大数据技术的应用带来了契机。
在现在新兴大数据技术如 Hadoop 的应用下,现有的数据中心已经不仅是
传统 ODS 数据存储的功能,它同时可以提供海量(PB 级)数据存储以及数据
分析(深度学习)等,并提供高可靠性与高并行运算能力。其采用的通常是非关
系型数据库 HBase。
2 / 18
通常,Hadoop 处理完的数据再导入到传统的数据仓库(SQL Server 或者
Oracle 关系型数据库)中,以便做进一步的数据展示与分析。以 Oracle 为代
表的传统数据仓库,在结构化、业务逻辑比较负责的应用场景均具有不可替代的
作用,但是以 HBase 为代表的 NoSql(非关系型)数据库,在高并发读写、强
可扩展性方面也胜过关系型数据库。
后面我们也会按照这两种模式来阐述以传统关系型数据仓库为核心以及以
分布式存储为核心的数据中心建设方案。
1.3 用途
整合公司所有业务数据,建立统一的数据中心;
企业范围内的信息共享。面向整个企业和最终用户,针对分析需要按照
主题重组。形成一套全局的数据视图,并准确一致地保留历史;
数据的多维度分析。能够进行快速访问,精确灵活分析,随心所欲的访
问数据。直观、明显、简单、易用、切割、合并、下钻、上卷;
内外部数据的有效集成,一致的展现数据(相对于原来从多个系统中出
来的报表不一致)。适应性、扩展性、可维护性。使分散的、不一致的
操作数据转换成集成的、统一的信息,最终为企业的各管理层提供决策
的数据依据;
数据中心是数据挖掘技术的关键和基础。利用数据挖掘技术在帮助用户
理解现有信息,从当前和历史数据的分析中,获得简单的趋势分析,假
设分析,预测分析等,对未来的企业状况做出完整、合理、准确的分析
和预测。
2 数据仓库架构
3 / 18
2.1 架构图
2.2 数据源
数据源库包含各种业务系统,业务数据库:如 Sql Server、Oracle 等;
数据源还可以来源于网络上提供的信息,如 Web 接口等;
其他数据源,包括手工录入的数据,或者其他零散的非结构化数据。
2.3 ETL 过程
ETL 工作的实质就是从各个数据源提取数据,对数据进行转换,并最终加载
填充数据到数据仓库维度建模后的表中。只有当这些维度/事实表被填充好,ETL
工作才算完成。接下来分别对抽取,转换,加载这三个环节进行讲解:
4 / 18
2.3.1 抽取(Extract)
数据仓库是面向分析的,而操作型数据库是面向应用的。显然,并不是所有
用于支撑业务系统的数据都有拿来分析的必要。因此,该阶段主要是根据数据仓
库主题、主题域确定需要从应用数据库中提取的数。
具体开发过程中,开发人员必然经常发现某些 ETL 步骤和数据仓库建模后
的表描述不符。这时候就要重新核对、设计需求,重新进行 ETL。
2.3.2 转换(Transform)
转换步骤主要是指对提取好了的数据的结构进行转换,以满足目标数据仓库
模型的过程。此外,转换过程也负责数据质量工作,这部分也被称为数据清洗
(data cleaning)。
2.3.3 加载(Load)
加载过程将已经提取好了,转换后保证了数据质量的数据加载到目标数据仓
库。加载可分为两种 L:首次加载(first load)和刷新加载(refresh load)。其中,
首次加载会涉及到大量数据,而刷新加载则属于一种微批量式的加载。
2.3.4 ETL 工具分析
Kettle 是一款国外开源的 etl 工具,纯 java 编写,绿色无需安装,数据
抽取高效稳定(数据迁移工具)。Kettle 中有两种脚本文件,transformation 和
job,transformation 完成针对数据的基础转换,job 则完成整个工作流的控
制。
2.4 数据中心
5 / 18
数据经过 ETL 工具分析与计算后的结果存放的地方,其实就是关系型数据
库和 NOSQL 数据库。
它需要首先建立多维数据模型,在通过 ETL 装载成细节数据与聚合数据。
2.4.1 多维数据模型
多维数据模型提供了多角度多层次的分析应用,比如基于时间维、地域维等
构建的销售星形模型、雪花模型,可以实现在各时间维度和地域维度的交叉查询,
以及基于时间维和地域维的细分。所以多维数据模型的应用一般都是基于联机分
析处理(Online Analytical Process, OLAP)的,而面向特定需求群体的数据
集市也会基于多维数据模型进行构建。
维度建模(dimensional modeling)是专门用于分析型数据库、数据中心、
数据集市建模的方法,这其中包括两种表模式:
维度表(dimension):表示对分析主题所属类型的描述。比如"昨天早
上张三在京东花费 200 元购买了一个皮包"。那么以购买为主题进行分
析,可从这段信息中提取三个维度:时间维度(昨天早上),地点维度(京
东), 商品维度(皮包)。通常来说维度表信息比较固定,且数据量小。
事实表(fact table):表示对分析主题的度量。比如上面那个例子中,
200 元就是事实信息。事实表包含了与各维度表相关联的外码,并通过
JOIN 方式与维度表关联。事实表的度量通常是数值类型,且记录数会
不断增加,表规模迅速增长。
三种维度建模方式:
6 / 18
星形模式(Star Schema):最常用的维度建模方式,下图展示了使用星
形模式进行维度建模的关系结构。
(图示来源互联网)
可以看出,星形模式的维度建模由一个事实表和一组维表成,且具有以下特
a. 维表只和事实表关联,维表之间没有关联;
b. 每个维表的主码为单列,且该主码放置在事实表中,作为两边连接的外
点:
码;
c. 以事实表为核心,维表围绕核心呈星形分布。
7 / 18