摘要:
本文针对一个中小规模的制造型企业的生产管理信息系统,设计了一个OLAP和OLTP综合使用的方案。数据仓库采用数据集市形式。OLAP技术的使用,为企业决策层提供了一个了解企业运作情况的强有力的分析手段。
1.概述
本文针对OLAP技术在一个制造企业的生产管理信息系统中的应用做一个探讨。客户为一个典型的机械厂,下设若干个车间,员工规模为600人左右。要求建立生产管理信息系统来处理整个企业的技术、生产、库存、财务等方面的业务,并要求能对业务数据进行统计分析,为管理层提供决策参考。我们认为,综合采用OLTP和OLAP技术来开发整个信息系统是一种比较好的解决方案。因为:一、虽然业务数据的查询OLTP可以做到,但是要提取综合性数据时OLTP则显得力不从心,尤其是随着时间的推移数据量变得越来越庞大的时候;二、在整个系统的设计中综合考虑OLAP和OLTP技术可以充分发挥二者的特长,用OLAP技术可以减轻OLTP系统中查询和报表实现的难度和工作量,而且统一的设计可以保证二者数据的一致性,减小从OLTP系统提取数据的难度,提高OLAP系统数据分析的精确性。
限于篇幅原因,本文主要阐述OLAP部分的实现。
2.OLAP系统架构
当前市场上有很多OLAP产品,比如Oracle Express、DB2 OLAP
Server等。由于OLTP系统的数据库采用的是Microsoft SQL Server2000,为了转换数据简单起见也为了减小软件投资,我们选择Microsoft
SQL Analysis Services作为OLAP服务器。系统架构如图1所示:
图1 生产管理OLAP系统架构图
整个OLAP系统分为四个部分:一、OLTP基层数据库,它是分析数据的来源;二、储存分析所用数据的数据仓库,其源数据采用DTS或者脚本从OLTP数据库中提取和整理获得;三、OLAP服务器,是支持和管理多维数据结构的数据处理引擎。利用Microsoft
OLAP Services创建的多维数据集也称立方(Cube),这种结构具有良好的性能,能够灵活快速的处理原始数据,具有比较快的响应速度;四、是前端浏览工具,使用Excel或者VB编制的程序可以对多维数据集进行查询,并以表格或者图形的方式提供给客户。
在这个系统中,OLAP数据和OLTP数据是分离的,这种架构不会对OLTP系统运行效率造成影响。
3.数据仓库和多维数据集的设计
OLAP建立在数据仓库的基础上。在设计中,我们没有采用标准数据仓库的形式,而是采用数据集市(Data
Mart)的形式实现数据仓库。标准的数据仓库作为企业级应用,其涉及的范围和投入的成本常常是巨大的,它的建设很容易形成高投入、慢进度的大项目。数据集市是针对某一主题或者某一部门而构建的更小、更集中的数据仓库,它提供了一条部门/工作组级的分析商业数据的廉价途径。数据集市应该具备的特性包括:规模小、面向特定的应用、面向部门/工作组、快速实现、投资规模小、易使用、全面支持异种机平台等。用户可根据自己的需求,以自己的方式来建立数据集市。这种方式比较适合我们的客户。以后若有新的分析需求可以增加新的数据集市而不对现有结构造成不良影响。
数据集市有一个显著的特点是针对分析主题而设计。主题由需求决定。根据客户目前提出的需求,我们把数据集市分为三个主题:生产、库存和工艺。
以生产主题为例,OLTP系统负责生产计划和实际操作中各种技术细节的处理,产生了大量的数据。现在需要在这些生产数据的基础上进行如下分析:
针对每一个员工生产加工情况统计分析;
针对每一个车间生产情况统计分析;
针对每一次施工生产情况统计分析;
针对每一种产品类型生产情况统计分析;
针对每一种主材料加工情况统计分析;
分年、季度、月对生产情况统计分析。
考察OLTP系统,发现"工序执行情况"表中包含了所有的生产动态情况,对其处理得到生产事实表。
根据需求,选定部门(车间)、员工、施工单、产品类别、材料和时间作为维度表(Dimension
Table)。由于分析时很多具体的细节不需要考虑,所以对OLTP的数据模型进行了筛选和转换。得到的多维数据集模型为星型雪花架构:
图2
生产主题多维度数据集的星型雪花架构图
采用相似的方法,可以得到库存和工艺多维数据集结构。得到多维数据集后,即可按照数据集的结构设定数据集市的表结构。由于数据集市之间是相互隔离的,所以各个数据集市可以单独运作。
根据业务数据和分析数据的物理模型可以用SQL Server的数据转换服务(Data
Transaction Service)实现从OLTP系统到OLAP系统的数据提取、整理和加载。在加载前还必须进行一致性检查。对每条业务数据记录加上时间戳。数据采集并不对业务数据进行转换和汇总,因此它保持了业务信息的最低粒度,不仅可以作为生成业务统计指标的基础,而且也是以后对数据仓库进行数据挖掘的数据基础。各个数据集市的数据提取可以单独运作,通过系统调度可以每日/每月自动从业务数据库中采集统计数据。
4.前端设计
4.1采用Excel作为客户端
Excel2000可以作为OLAP前端浏览工具使用。在Excel的"数据"菜单中,单击"数据透视表和数据透视图报表"命令,然后。单击"外部数据源",选择"Microsoft
OLE DB Provider for OLAP Services "作为驱动,即可建立多维连接,在进行连接时必须输入服务器地址、用户名和用户口令。图3为在Excel中浏览到的生产多维数据集,数据可以以表格和图形方式显示:
图3 Excel中打开的"生产"多维数据集(图形形式)
4.2使用VB设计客户端
使用Excel作为客户端,缺点是灵活度不够。它所浏览的数据必须是现有的多维数据集或者虚拟多维数据集。要实现更好的灵活性就必须采用编程语言和MDX(多维表达式,multidimensional
expressions )查询语言来实现客户端。
我们采用Visual Basic6.0作为OLAP客户端开发工具,使用ADO
MD(ActiveX Data Objects, Multi Dimension)来访问多维数据集。ADO
MD是为了支持多维数据集的访问在原来ADO技术上做的一种扩展。
在进行查询前,必须首先建立ADO连接:
Dim conn As New ADODB.Connection
conn.ConnectionString="Datasource=LocalHost;Provider=msolap;Initial
Catalog=JMSH_DW;"
conn.Open
建立连接后,即可用ADO MD中的Cellset打开多维数据集,Cellset与ADO中的Recordset在功能上类似,不过它的结果集是多维的。其查询条件用MDX语言指定。
如下的程序代码得到2002年产品类别为 "B1001"的所有工序的工序产值和废品产值:
Dim cst As New ADOMD.Cellset
Set cst.ActiveConnection = conn
cst.Source = " SELECT {[Measures].[工序产值],[Measures].[废品产值]
} ON COLUMNS, {[产品].[所有 产品].[B1001] } ON
ROWS FROM [生产] where [时间].[2002] "
cst.Open
得到多维记录集后,即可用表格或者图形控件来显示其中的数据。也可以对数据进行切片、钻取、旋转等分析操作。
整个系统已经投入使用,效果良好。
5.总结
在一个制造企业的信息系统设计中综合采用了OLTP和OLAP技术。OLAP技术的采用减轻了OLTP系统查询和报表设计的工作量。一致的设计在提高分析数据的正确性的同时降低了实施的难度。数据仓库采用数据集市的方式,提高了灵活型。该方案完全可以满足客户需求,并且方便以后扩展,具有灵活投资小的优点,非常适合中小企业,具有一定的推广价值。
|