数据仓库的黄金时代已经来临 你做好准备了吗?
在摸索中前进
组里有12个人,其中包括一个项目经理,一个系统架构师,一个商业分析师,一个Oracle DBA和几个数据库开发人员。我认为没有一个人称得上是数据仓库方面的专家。公司有两套事务系统-一个用COBOL写的,并且使用了VSAM文件,另一个使用了Oracle Forms和Oracle 7数据库。新的产品必须和这两个事务系统配合工作。我们决定使用Oracle 8i来构建我们的数据仓库,并且学习了什么是星型模式。
商业分析师和事务开发者共同决定需要哪些维。主要的维有时间,学生,地理,人口统计,学院的系,课程和师资。一些维内部分层以使得用户能够向下钻取更多的细节。例如地理维有国家,行政区,郡,州,城市和邮政编码这些成员。度量有学生数,学费或者经济资助金。
几乎每一步都是一种挑战。我们不得不通过任何可能的途径去学习。我们构建用来描述数据仓库表中每个域的元数据表。这些表包括数据仓库中特定域的有效值和事务系统中的有效值,因此我们能够把它们转换成数据仓库中唯一确定的值。自从Oracle有了Web应用服务器,开发者能够使用PL/SQL访问Oracle数据库,同时使用嵌入的HTML标签来创建网页。这样就允许用户通过网络很容易地输入和更新元数据表。
ELT(提取,装载和转换)系统是用两种不同的语言构建的。它尤其是一种挑战,我们实在不得不临时准备。开发者使用PL/SQL从Oracle事务系统中提取数据,然后存入段表中。针对主框架事务系统,开发者写了COBOL程序来提取数据存入文本文件。然后他们使用SQL装载器把文本文件装载到Oracle段表中。所有的段表被清空并且使用元数据表中的值来转换。我们使用PL/SQL来读取包含事务值的段表,使用元数据表来清空和转换。我们有一个错误报告表明哪些记录有问题。那些无误的记录被PL/SQL装载到维表和事实表中。
网络GUI接口是另一个特殊的挑战。不仅数据仓库那时非常新,而且网络接口也不是确切的标准特征。其中一个要求是用户能够通过选择两个维和一个度量或者一个维和两个度量来建立他们自己的查询。GUI 接口是用PL/SQL 和JAVA写的。用户从网络上查询维和度量,JAVA程序使用http把它们交给PL/SQL程序,就像打开一个网页但是在链接里带有输入值,例如http://www.abc.com?name='abc'。网页事实上就是PL/SQL程序,因为我们使用了Oracle Web应用服务器。PL/SQL 程序得到维和度量后,进行动态查询,然后把只有数据的信息发送到一个静态网站-我们有标志来区分行和列。然后JAVA程序能够读到那个网页并在用户网页上生成结果。用户可以选择把结果以表格或图表的形式显示出来。用户也可以把他们最喜欢的查询保存下来放到菜单里,这样他们就不必一次又一次地选择维和度量了。我一直认为这个模块是颇有直觉力的并且以它为骄傲。
数据库管理员当然也要参与其中。Oracle那时刚刚发布8i的版本,所以数据库管理员能够使用时间这个维来区分数据仓库。数据库管理员也要关心创建用户安全机制以检查哪些用户有登录系统的权限。有个开发者用PL/SQL开发出来基于安全机制的角色,使得大学人事里不同级别的人有不同的安全级别,例如,校长能够看到一切数据而系主任只能看到他自己系的数据。
如果你要问我们中的任何一个人在1997年对数据仓库是否有充分准备,我想你会得到一致的回答“一点也没有”。但是我们确实做到了,并且乐在其中,即使我们不得不拼命地工作,而且大部分时间不知道自己在做什么。关键是我们学到了我们必须学的东西,同时数据仓库已经发展起来。商务智能现在已经发展起来,我相信如果你想留在IT行业的话你迟早会学它的。
0
相关文章