马根峰 赵明
摘 要: 数据仓库以其面向主题的、集成的、不可更新的、随时间不断变化等特征,更好地支持了企业或组织的决策分析处理。它通过将数据按照不同的综合程度(即粒度)来组织,以满足不同分析的需要。星形模式是基于关系数据库的数据仓库中的一个著名概念,由于星形连接模式的设计思想能够满足人们从不同观察角(维)度分析数据的需求,所以在基于关系数据库的数据仓库设计中被广泛使用。本文主要介绍了《广东省高速公路一张网资金结算情况分析系统》中的数据仓库技术。
关键词: 数据仓库; 星形模式; 维度; 万能数据库查询分析器; OLAP
中图分类号:TP392 文献标志码:A 文章编号:1006-8228(2015)07-39-03
Guangdong highway settlement business analysis system based on star schema in data warehousing
Ma Genfeng1, Zhao Ming2
(1. Guangdong Unitoll Services incorporated, Guangzhou, Guangdong 510620, China; 2. Tianjin University of Technology and Education)
Abstract: Data warehouse is characterized by its subject-oriented, integrated, non-renewable, time-changing, and better support for decision analysis processing of enterprise or organization. It organizes the data in accordance with different degree of synthesis (i.e. granularity), to meet the needs of different analysis. The star schema is a well-known concept of data warehouse based on relational database, due to the design idea of the star schema can meet the demands for data analysis of the different observation angle (dimension), so it is widely used. This paper mainly introduces the star schema of data warehousing used in Guangdong highway settlement business analysis system.
Key words: data warehousing; star schema; dimensionality; DB query analyzer; OLAP
0 引言
数据仓库技术用以处理面向主题的,集成的,不可更新的,随时间不断变化的数据集合。它通过将数据按照不同的综合程度(即粒度)来组织,以满足不同分析的需要[5]。
星形模式是基于关系数据库的数据仓库中的一个著名概念,由于星形连接模式的设计思想能够满足人们从不同观察角(维)度分析数据的需求,加上数据仓库通常用来回答综合性的问题,所以在基于关系数据库的数据仓库设计中广泛地使用了星形模式,如电信运营商中普遍进行的话务量总体分析[1]。
本文主要围绕“广东省高速公路一张网资金结算情况分析系统”中如何使用数据仓库技术来实现“资金结算情况的分析”这个主题进行探讨。
1 系统中的数据仓库设计
1.1 广东联合电子结算中心操作型环境DB2数据库服务器下的数据组织情况
在广东联合电子结算中心,“异常流水”、“流水拆分”、“流水上传”等关系模式有以下。
⑴ 粤通卡精确拆分结果明细表
tb_cardaccuratesplitresult(流水号,工班,出口路段…,收入路段)
⑵ 现金精确拆分结果明细表
tb_cashaccuratesplitresult(流水号,工班,出口路段…,收入路段)
⑶ 流水非精确拆分记录表
tb_inaccuratesplitrecord(流水号,工班,出口路段…,收入路段)
⑷ 拆分流水异常记录表
tb_outlistspliterrorgb(流水号,工班,出口路段,…,错误类型代码)
⑸ 拆分流水异常记录历史表
tb_outlistspliterrorgb_his(流水号,工班,出口路段,…,错误类型代码)
⑹ 流水异常记录表
tb_outlisterrorgb(流水号,工班,出口路段,…,错误类型代码)
⑺ 流水异常记录历史表
tb_outlisterrorgb_his(流水号,工班,出口路段,…,错误类型代码)
⑻ 出口流水表
tb_outlistgb(流水号,工班,出口路段,…,上传时间)
1.2 数据仓库设计[1]
设计步骤简化为三步:
⑴ 概念模型设计;
⑵ 逻辑模型设计;
⑶ 数据仓库生成。
1.2.1 概念模型设计中的界定系统边界
在广东联合电子服务股份有限公司,管理者最迫切需要的分析目标主要有:
⑴ 各高速公路路段公司若干工班的流水上传、流水拆分;
⑵ 各个高速公路路段公司上传的异常流水(包含异常及拆分异常)及其修改的情况。
要进行以上分析,所需数据应包括:
⑴ 分析各条高速公路路段公司在一段周期内的流水上传数量、拆分数量、拆分流水比例;异常流水数量、异常流水修改的数量、修改比例;
⑵ 分析各条高速公路对应的软件开发商上传的异常流水(包含异常流水及拆分异常流水)数量、上传的异常(包含异常及拆分异常)流水修改的数量,以及修改的比例;
⑶ 每个工班全省上传的异常流水数量的总体分析;
⑷ 全省所有高速公路收费系统的软件开发商,产生的各种类型的异常流水数量的分析;
⑸ 全省所有高速公路上传的各种类型的异常流水的分析。
1.2.2 逻辑模型设计
因为细节级数据太大,数据仓库又建立在本人的PC机MS SQL SERVER服务器上,加之迫于分析任务提交时间的压力,故本数据仓库中不再涉及细节级数据表的设计、数据挖掘[6]。
本文只设计了以下几个综合级的关系模式,ok_xiugai对应于已经成功修改的异常流水信息;no_xiugai对应于还没有进行修改的异常流水信息;upload_split对应于各条高速公路流水上传及拆分的数量; 而kaifa代表维表“开发商”,tb_road代表维表全省的各条高速公路[2]。
关系模式定义:
ok_xiugai (LISTNO, UPLOADTIME, OUTROADNO,
SQUADDATE, ERRCODE, ERRMSG…)
no_xiugai (LISTNO, UPLOADTIME, OUTROADNO,
SQUADDATE, ERRCODE, ERRMSG…)
upload_split(路段编码,路段名称,工班,上传流水数量,拆分流水数量…)
kaifa (roadno, kaifa_name)
tb_road(areano,roadno,roadname,…)
1.2.3 数据仓库数据生成
数据仓库中数据的生成包括:操作型环境数据的挖掘和数据仓库中数据的生成两部分。如图1和图2这里所要做的工作是接口编程,实现将操作型环境OLTP下的数据装载进入数据仓库的OLAP环境中。
[生产机数据库][数据仓库][拆分流水异常记录表\&\&][流水异常记录表\&\&][数据挖掘] [no_xiugai\&ListNo
UPLOADTIME
OUTROADNO
SQUADDATE
ERRCODE
ERRMSG\&]
图1 数据挖掘(生成未修改的流水信息)
设集合A为拆分流水异常记录表,B为流水异常记录表,C为OLAP操作环境中的no_xiugai ,则
C=, 其中、
以下给出生成修改正确的流水信息算法。
设集合A为拆分流水异常记录表,B为流水异常记录表,C为拆分流水异常记录历史表,D为流水异常记录历史表,E为OLAP操作环境中的ok_xiugai,则
E=∪, 其中、、、
[生产机数据库][数据仓库][奥通卡精确拆分结果明细表\&\&][现金精确拆分结果明细表\&\&][数据挖掘] [uplond_split\&路段编码
…\&][流水非精确拆分记录表\&\&][出口流水表\&\&]
图2 数据挖掘(生成流水上传与拆分的信息)
设集合A为粤通卡精确拆分结果明细表,B为现金拆分结果明细表,C为流水非精确拆分记录表,D为出口流水表,E为OLAP操作环境中的upolad_split,则
E=()×,其中、、、
2 数据仓库的数据导出与展现
2.1 万能数据库查询分析器
万能数据库查询分析器,中文版本《DB查询分析器》、英文版本《DB Query Analyzer》。它具有强大的功能、友好的操作界面、良好的操作性、跨越各种数据库平台乃至于EXCEL和文本文件[3]。
可以通过它查询ODBC数据源(包括世面上所有的数据库、TXT/CSV文件、EXCEL文件)的数据。可以同时执行多条DML语句乃至存贮过程,结果会以已设定的表格、文本框、文件来返回。当从数据库导出千万条数据时,其效率与DBMS没有什么区别[4]。
《万能数据库查询分析器》中文版本《DB 查询分析器》在中关村的在线下载量超过10万次,位居整个数据库类排行榜中第10位,所以在实际工作中,本人用《DB查询分析器》作为客户端,实现将数据仓库中的数据展现与导出。
2.2 本系统中的两个分析目标的星形模式
设集合A、B、C、D为OLAP环境下的ok_xiugai、no_xiugai、tb_road、upload_split,E为分析模型“异常流水及修改情况、流水上传与拆分”,则
E=()××
设集合A、B、C、D为OLAP环境下的ok_xiugai、no_xiugai、tb_road、kaifa,E为分析模型“高速公路公司、各条高速公路开发商的异常流水及修改情况”,则
E=()××
具体如图3和图4。
roadname\&] [路段代码] [kaifa\&roadno
kaifa_name\&]
图4 星型模式下的“高速公路公司、各条高速
公路开发商的异常流水及修改情况”分析
2.3 数据样例示意
数据样例示意如图5、图6所示。
3 结束语
数据仓库技术对于回答及解决一些综合性的面向主题的问题,具有强大的优势。而对于使用数据仓库来回答综合性问题的场合,星形连接模式可以满足决策者从不同的维来观察数据的需求。笔者在《广东省高速公路一张网资金结算情况分析系统》的研究与开发过程中,采用了数据仓库的设计理念进行数据仓库的各级模型设计,并通过数据挖掘来生成数据仓库中的数据,最后使用万能数据库查询分析器来进行数据展现,这也是本人在实际工作中对数据仓库技术的又一次运用。近一年来,该系统每周在经过数据挖掘、仓库数据生成和数据展现后,为企业管理者提供了较为清晰地分析结果。文中的不足之处,还请有关专家批评指正。
图5 数据展现
图6 点击“DB查询分析器”的工具栏按钮,即可导出数据
参考文献:
[1] 马根峰.基于关系数据库的数据仓库星形模式下维使用原则的研究[J].
计算机工程与设计,2005.1.
[2] 马根峰.广东电信公话200专用话机话务动态分析系统的构建[J].电
信科学,2003.11.
[3] 新产品&工具点评.特别推荐:“万能数据库查询分析器”发布[J].程
序员,2007.2.
[4] 马根峰.《DB查询分析器》批量执行DML语句并返回更详细的信息[J].
电脑编程技巧与维护,2011.24.
[5] 王珊.数据仓库技术与联机分析处理[M].科学出版社,1998.
[6] Michael Corey(美), Michael Abbey(美). SQL SERVER 7 Data
Warehousing[M].希望电子出版社,2000.