数据仓库系统设计文档.docx
《数据仓库系统设计文档.docx》由会员分享,可在线阅读,更多相关《数据仓库系统设计文档.docx(18页珍藏版)》请在冰豆网上搜索。
数据仓库系统设计文档
数据仓库系统总体设计
摘要:
本文档为XX通信公司网上通信记录查询平台设计说明书,为XX通信公司网上通信记录查询平台详细设计的之要依据。
本文档的主要阅读对象为XX通信公司网上通信记录查询平台的详细设计人员。
经过需求分析调查,确定了数据仓库系统总体定位和系统功能需求。
现根据需求分析规定和局具体情况,确定数据仓库整体方案,以指导数据仓库系统研究、开发、实现。
关键字:
指标;主题;数据仓库;联机分析;数据挖掘;决策支持
1概述
1.1背景
本软件全称为XX通信公司网上通信记录查询平台。
1.2术语定义
DW:
数据仓库
DC:
数据中心
OLTP:
在线事务处理
OLAP:
在线分析处理
BI:
商业智能
DSS:
决策支持系统
SOA:
面向服务的架构
EA:
企业架构
ETL:
数据抽取、转换、加载
StatisticalParameter:
指标
Subject:
主题
DataMart:
数据集市
MetaData:
元数据
OLTP(On-LineTransactionProcessing):
联机事务处理
DSS:
决策支持系统
AS:
应用服务器
WebServer:
Web服务器
1.3参考资料
数据仓库课程课件林友芳
概要设计说明书模板林友芳
《实用软件工程》清华大学出版社
2系统设计
从充分发挥系统作为“数据库,信息库,思想库,智囊库”的作用,向用户提供“快、精、准”的通讯记录查询服务的需要出发,采用当今数据库领域成熟稳定的数据仓库、决策分析等技术,在高效的网络平台上建设提供一个“决策数据管理与分析中心”的基本解决方案。
系统采用多层体系结构,建立一个良好开放性的数据仓库系统环境,适应不断增加和变化的业务需求。
多层体系结构通过引入中间层组件,扩大了传统的客户/服务器和两层计算模式。
多层结构可由以下三类分层来定义:
前端的客户层,负责提供可移植的表达逻辑;中间的应用层,允许用户通过将其与实际应用隔离而共享和控制业务逻辑;后端的数据管理与服务层,提供对专门服务(例如数据库服务器)的访问。
结构化、层次化、模块化。
采用面向对象技术,使系统高度结构化、模块化、层次化,整个系统由接口定义良好的多个模块组成,每个模块都有详细的功能说明和设计文稿,每个模块完成相对独立的功能,模块之间的接口定义规范,使模块功能的变化相对独立,不影响整个系统的功能和结构,便于系统升级,维护。
具有良好的平台移植性。
选用支持多种操作平台的数据库服务器、应用服务器、WEB服务器等服务器软件系统,选用具有良好平台移植性的B/S和C/S模式下的开发语言开发应用程序和应用中间件,提高应用系统的平台移植性。
以最简单的方式实现复杂的功能。
为提高系统的稳定性和可读性,可维护性,尽量采用简洁易懂的方式实现系统功能,不追求复杂、深奥的算法。
2.1层次结构
整个系统在逻辑上分为三层:
原始数据层,中间逻辑层(业务逻辑层、WEB服务层、安全服务层),应用层。
原始数据层:
以统一规范的方式存储数据;
中间逻辑层:
解析应用层的业务逻辑,使应用层和原始数据相互独立,提高应用层系统(程序)的可扩展性、可移植性;
应用层:
面向最终用户,提供友好、简洁、方便的用户界面,具有良好的业务无关性。
2.2系统用例模型图
根据系统功能需求,用例模型图绘制如图。
说明:
出于网络安全的原因,将整个网络分为内部网络和外部网络两部分。
内部网络与外部网络的系统机构基本相同。
外部网络基本上用在对外发布,不包括保密信息。
外部网络需要的发布数据从内部网络中通过ETL工具获得,存放在外部网络的数据仓库中。
外部网络经过防火墙、路由器与Internet相连。
为保证数据安全,只在外部网络从内部网络抽取数据时,两者才是连通的(且要经过防火墙),其余时间两个网络物理隔离。
工作站分别为各个处室的个人PC机,也可以是单独的工作站,功能为向ETL服务器提供仓库所需数据及通过浏览器访问数据仓库数据信息。
ETL工具定期从各个处室的数据库系统抽取数据,且ETL服务器兼中间数据库服务器,抽取的数据暂时保存在ETL服务器上,在导入数据仓库之前容许修改。
考虑到数据仓库系统决策分析时需要大量数据信息,所以要求交换机容量应为1000M。
OLAP服务器和应用服务器结合比较紧密,在实际的应用中共享一台设备。
入侵检测系统是一台单独的设备,放在路由之后,起到防止非法入侵的作用。
安全隐患扫描系统可以运行在一台高性能的PC机上,提供及时的安全扫描,及早发现问题。
2.4网络层次结构
整个数据仓库系统由内而外分为四层:
系统内核层:
包括数据仓库服务系统及应用系统。
系统安全层:
使用网络安全产品,与局现有网络系统兼容,保护内部数据安全,网上信息传送安全、防止黑客破坏或恶意入侵。
公共网络层:
基于TCP/IP的城域网和广域网(省局目前开通的帧中继网),使用现在已经建成的公共网络将数据、信息、知识发布出去。
外部应用层:
各种数据仓库系统的客户应用系统,通过外部应用系统用户可以获得系统提供的向外发布的各种信息。
2.5处理流程
指标数据抽取子系统通过读取ETL中间数据库中的抽取模型和清洗模型,把各个处室的数据暂存到中间数据库。
指标数据加载子系统读取中间数据库中的转换模型与加载模型,把中间数据库的数据加载到数据仓库中。
3开发及运行环境
数据仓库系统是一个跨平台、综合的大型应用系统。
综合用户习惯与系统效率等方面的考虑,整个数据仓库系统的各子系统将分别运行在不同的操作平台下,这些子系统密切合作,形成一个紧密结合、高效的整体。
3.1硬件环境
基于高速网络环境。
服务器采用高档小型机。
客户端为高性能客户端。
3.2操作系统
服务系统运行于UNIX操作系统。
UNIX以其较小的内核、较高的运行效率著名,获得了服务器上主流操作系统的地位。
全球著名的硬件产商都有与自身服务器紧密结合的UNIX操作系统(如IBM的AIX和SUN公司的Solaries,HP的HP_UX),能充分发挥系统的最大性能。
客户端系统运行在Windows操作系统下。
全世界90%的PC用的是Windows操作系统,广大用户已经习惯了Windows操作系统的界面、风格。
局几乎所有PC都是运行在Windows系统下的,数据仓库系统的客户端系统(包括系统管理、ETL工具客户端等)运行在Windows系统下能满足用户需要,缩短系统投入使用的培训时间。
3.3开发语言
JAVA语言最先由网景公司利用在WEB上,是最好的跨平台开发语言,是当前B/S模式的首选开发语言;C语言最先在UNIX系统下使用,是一种执行效率非常高的高级开发语言,C++的出现使C语言包含了面向对象概念,C++语言也得到了日益广泛的应用,是C/S模式的首选开发语言。
3.4数据库系统
数据库系统采用Oracle9i,Oracle9i是Oracle公司对数据仓库支持最好的数据库系统,它的复合索引,物化视图等技术可以使数据的查询效率有很大提高。
。
3.5系统运行环境
本系统运行环境需求如图。
OptionalDatastore
Operationaldata
Operationaldata
DataWarehouse
Operationaldata
Operationaldata
DataMart
DataMart
DataMart
系统查询界面
系统运行环境逻辑结构图
3.5.1数据仓库服务器环境要求
服务器型号:
HPDL380
CPU:
英特尔至强E5520(4核,2.26GHz,8M三级高速缓存)
内存:
6G
操作系统:
UNIX
3.5.2数据仓库管理服务器
服务器型号:
HPDL360
CPU:
英特尔至强E5504(4核,2.00GHz,4M三级高速缓存)
内存:
4G
操作系统:
UNIX
3.5.3WEB服务器环境要求
服务器型号:
HPDL580
CPU:
英特尔至强E7370(4核,2.40GHz,8M三级高速缓存)
内存:
8G
操作系统:
UNIX
4系统各个功能模块ERD
4.1查询一段时间内的短信与通讯记录
查询一段时间内短信与通讯记录ER图如图
4.2查询套餐或其他业务的扣费纪录
查询套餐或其他业务的扣费记录ER图如图。
4.3查询账户余额,充值记录
查询用户账户余额,充值记录ER图如图
4.4查询办理过的业务类型
用户查询自己办理过的业务类型ER图如图。
4.5查询用户一年内短信与通话月情况表
用户查询自己一年内短信与通话月情况表ER图如图。
5各个数据层表结构设计
5.1业务数据层
业务层的数据又称操作型数据,它是最原始的数据,是其他层次上数据的源数据。
业务数据层的数据通常是很细节的数据,它们是经过日复一日累积起来的,而且访问频率很高,是面向应用的数据。
本系统中在这一层上主要包括的数据有:
短信记录、通话记录、扣费记录、充值记录以及业务办理记录。
这些数据未经集成,是最原始的数据。
逻辑上,这些数据都是以二维表的形式存储,它们的表结构分别如下。
表字段名
中文字段名
数据类型
是否主键
可否为空
User_name
用户名
Char(20)
是
否
Phone_number
手机号码
Number
否
Send_time
发送时间
Date
否
Message_type
信息类型
Char(10)
否
Receive_number
对方号码
Number
否
Basic_fee
基本话费
Float
否
表-1短信记录
表字段名
中文字段名
数据类型
是否主键
可否为空
User_name
用户名
Char(20)
是
否
Phone_number
手机号码
Number
否
Start_time
通话起始时间
Date
否
Call_location
通话地点
Char(20)
否
Longtrip_type
长途类型
Char(10)
否
Call_type
通话类型
Char(10)
否
Call_time
通话时长
Number
否
Receive_number
对方号码
Number
否
Basic_fee
基本通话费
Float
否
Longtrip_fee
长途费
Float
否
表-2通话记录
表字段名
中文字段名
数据类型
是否主键
可否为空
User_name
用户名
Char(20)
是
否
Phone_number
手机号码
Number
否
Chargeback_Date
时间
Date
否
Package
套餐及功能费
Char(20)
否
Fee_circle
费用周期
Number
否
Fee
费用
Float
否
表-3扣费记录
表字段名
中文字段名
数据类型
是否主键
可否为空
User_neme
用户名
Char(20)
是
否
Phone_number
手机号码
Number
否
Recharge_date
充值日期
Date
否
Recharge_result
充值结果
Boolean
否
Recharge_amount
充值金额
Float
否
表-4充值记录
表字段名
中文字段名
数据类型
是否主键
可否为空
User_name
用户名
Char(20)
是
否
Phone_number
手机号码
Number
否
Business_name
业务名称
Char(20)
否
Handle_date
办理日期
Date
否
State
状态
Booolean
否
表-5业务办理记录
5.2数据仓库层
数据仓库层的数据是又业务层的原始数据经过ETL得来的,具有一定的集成度。
在本系统中,用户查询一段时间内的短信、通话记录、充值记录以及办理过的业务所得到的数据即是这一层的数据。
这些数据在逻辑上也是以二维表的形式存储的,具体如下。
表字段名
中文字段名
数据类型
是否主键
可否为空
User_name
用户名
Char(20)
是
否
Phone_number
手机号码
Number
否
Query_circle
查询周期
Number
否
Qyery_date
查询日期
Date
否
Message_record
短信记录
Char(100)
否
表-6短信记录表
短信记录表是从业务数据层的短信记录中抽取得来的。
表字段名
中文字段名
数据类型
是否主键
可否为空
User_name
用户名
Char(20)
是
否
Phone_number
手机号码
Number
否
Query_circle
查询周期
Number
否
Qyery_date
查询日期
Date
否
Call_record
通话记录
Char(150)
否
表-7通话记录表
通话记录表是从业务数据层的通话记录中抽取得来的。
查询充值记录以及办理过的业务也是从相应的记录中抽取得来的。
5.3数据集市层
数据集市层的数据时由数据仓库层的数据经过ETL得到的,它的集成度更高,粒度也更大。
用户查询一年内的短信与通话月情况得到的数据即是这一层的数据,具体二维表如下。
表字段名
中文字段名
数据类型
是否主键
是否为空
User_name
用户名
Char(10)
是
否
Phone_number
手机号码
Number
否
Year_month
年份月份
Number
否
Query_date
查询日期
Date
否
Message_aount
短信条数
Numbe
否
Fee
费用
Float
否
表-8月短信情况
表字段名
中文字段名
数据类型
是否主键
是否为空
User_name
用户名
Char(10)
是
否
Phone_number
手机号码
Number
否
Year_month
年份月份
Number
否
Query_date
查询日期
Date
否
Calltime_aount
通话总时间
Numbe
否
Fee
费用
Float
否
表-9月通话情况
5.4个体层
个体层的数据往往是临时的,费重复的。
考虑到用户查询自己的余额的得到的数据是随时可能变化的,而且余额与充值、套餐扣费、短信扣费、通话扣费等都有关系,在本系统中我们把账户余额放到个体层。
6备份与恢复
6.1数据备份方式
备份:
备份系统中所有的数据。
全备份所需时间最长,但恢复时间最短,操作最方便,当系统中数据量不大时,采用全备份最可靠。
量备份:
只备份上次完全备份以后增加的数据。
分备份:
只备份上次完全备份以后有变化的数据。
按需备份:
根据临时需要有选择地进行数据备份。
6.2数据恢复方式
灾难恢复:
灾难恢复措施在整个备份制度中占有相当重要的地位。
因为它关系到系统在经历灾难后能否迅速恢复。
灾难恢复操作通常可以分为两类。
第一类是全盘恢复,第二类是个别文件恢复。
全盘恢复:
全盘恢复一般应用在服务器发生意外灾难导致数据全部丢失、系统崩溃或是有计划的系统升级、系统重组等,也称为系统恢复。
个别文件恢复:
个别文件恢复可能要比全盘恢复常见得多,利用网络备份系统的恢复功能,我们很容易恢复受损的个别文件。