2 系统架构设计
Vmac系统的主要任务是从数据源导入大量数据并进行实时运算,完成数据统计并支持多用户同时访问。这就需要设计一个基于网络的数据模型及使用负载均衡技术,使不同类型的用户能访问共享区域内的大量报表和分析选项。如果Vmac系统遵循一般的设计模式,允许应用程序直接访问底层数据库,就会形成二者的强祸合关系,且导致系统改造和维护的困难。因此,Vmac系统采用了典型的三层结构数据模型,如图2所示,层与层之间为松祸合关系,互相间的影响可减至最低,数据抽取更新、数据处理和用户访问功能可以同时进行。
图2中,数据层(Data Layer)是Vmac系统的数据支撑。上海通用的底层数据库在10几年前基于Oracle atabase建立,目前已形成可满足企业全部核心业务需求的数据集合。为获取所需数据,Vmac系统通过Oracle ETL插件将数据源里的数据抽取到EDS接口库中,并根据业务特点对原始数据和统计报表进行清洗和汇总,形成Vmac系统数据集市。根据业务划分,EDS接口库分为EDS01、EDS02两个分布式数据库,EDS01用来存放销售及售后数据,EDS02用来存放生产制造数据。EDS01接口库每天在夜间进行一次数据抽取和更新,历时约为4h。而根据上海通用底层数据库的更新时间,EDS02接口库只能在每天上午进行,历时约1h。这意味着数据的更新和处理将与用户访问交织在一起。虽然Vmac系统的软件架构允许这种情况存在,但为了维持用户端数据的相对稳定,同时考虑到EDS02中记录的追溯件信息在Vmac系统中不会频繁地使用,即使用一天之前的追溯件信息对三包数据的分析也不会有太大的影响。因此,Vmac系统每一天的分析源数据来自于前一天夜间更新的EDS01库数据和前一天上午更新的EDS02库数据,满足了主要分析结果的及时性。
SAS (Statistical Analysis System)服务器层基于SAS统计分析计算平台(主要功能为数据访问、数据管理、数据呈现和数据分析),通过SAS ETL接口定时访问并提取Vmac数据集市中的数据,完成Vmac系统所需要的核心计算功能,并向WEB服务器输出计算结果。SAS ETL接口在数据集市更新完毕后进行数据提取和处理,历时约为2个小时。这样就保证了Vmac系统可在每天工作前将前一天的数据统计结果呈现给用户。