1、1星型模型在复杂数据仓库环境中应用研究摘要: 针对数据仓库中分散数据的整合问题,本文基于商用 BI工具 COGNOS对星型结构数据模型进行优化,创建底层模型和数据立方体。运行结果显示,数据模型易于整合分散事实数据,性能优越。 Abstract: As to the integration of the scattered data in data warehouse, in this paper, we optimized the model of star structure, and create the underlying model and data cube based on th
2、e commercial BI tool COGNOS. The running results show that the data model is easy to integrate the dispersed data, and the performance is superior. 关键词: 星型模型;数据整合;位图索引;计算量;数据仓库 Key words: Star Model;data integration;bitmap index;computational quantity;data warehouse 中图分类号:TP311 文献标识码:A 文章编号:1006-431
3、1(2015)31-0077-03 1 概述 在目前石油行业信息系统中,业务数据不断集聚。在这些不断增长的海量业务数据中蕴含着大量有用信息。为有效挖掘出蕴含在这些海量数据中的业务规律,本文基于这些地域分布广泛、用户类型繁多的海量业务数据,采用商用 BI工具 cognos,对星型模型进行改进后整合事实数2据,建立汇总数据源有效支撑了数据规律的分析与展现。 2 相关概念 2.1 数据仓库 数据仓库是一个面向主题的、集成的、不可更新的、随时间变化以支持管理层决策的数据集合1。 2.2 星型模型 2.2.1 星型模型2的定义 定义四元组,其中: Di 为从域 DIM(i)中抽取的维度名,定义 n个维度
4、名的集合D=D1,D2,D3,Dn。 Mi 为从域 MEASURE(i)抽取的度量名,定义 k个度量名的集合M=M1,M2,M3,Mk。 维度名集合和度量名集合不相交,即 DM=??I;维度名集合与度量名集合的并集为事实表 F,即 F=DM。 Ai 为从域 DOMATTR(i)中抽取的属性,定义 t个元素的集合A=A1,A2,A3,At。 定义 f:DA 为一对多映射,即每个维度名对应一个属性集合。不同维度名对应的属性集互不相交。 2.2.2 星型模型的优势3 星型模型基于一个特定的主题,体现了数据库对数据结构和组织的要求。由于结构简单,易于数据的操纵和理解,且具有良好的数据连接路径,在整个数
5、据仓库生命周期中易于修改及增补。由于包含用户查询3和分析的所有属性,查询过程简单化。通过星型连接与星型索引,进一步提高 OLAP查询性能。查询效率高。基于星型模型的数据经过预处理后放到事实表中,无需进行大表联接,只需扫描事实表即可查询,因此访问效率高;甚至可以充分利用维表占用空间小的特点,把维度表放在高速缓存中,进一步提高查询效率。 3 基于星型结构的数据模型设计 3.1 整合事实数据 对于同类性质、分散于多个事实表中的业务数据建立数据模型,通过整合多个事实表中的业务数据以满足数据展现层跨域取值的事实数据需求,扩充数据分析涉及数据范围。在底层数据模型中通过 UNION不同事实表中业务数据,构建
6、统一虚拟事实表解决数据分散这一问题,如图1所示为实际应用中底层编码实现构建虚拟事实表的基本模式。 即各个事实表业务数据集合并运算形成统一业务数据集,多张事实表对外整合为一张事实表数据块整合示意图,如图 2所示。虚拟事实表作为一个整体,通过 JION方式关联各维度表,形成星型结构。 3.2 维度表关联事实表 虚拟事实表通过各外键关键字与相关维度表主键关键字建立关系实现事实表与维度表的关联,建立星型结构数据模型,如图 3所示为石油行业中基于星型结构的一种数据模型样例。 3.3 规划不同业务逻辑 区分不同的数据请求性质,如图 4所示,经常性数据请求(比如时间维度信息、机构维度信息等)可以先行提取作为
7、共性业务逻辑进行预4运算,偶然性数据请求(比如特定维度下指标量)推迟至客户端实现计算,有效减少共性运算的重复计算,从而减少整个算题的计算量5。 布局不同的计算位置,如图 5所示,进行数据整合时,充分运用服务器端计算资源,共性业务逻辑提前在服务器端数据模型中进行预运算,减少客户端计算量,以减少计算总量,减少带宽占用,缩小计算时间。 3.4 对事实表字段建立主键 在数据库中对事实表主键字段建立位图索引5,可以大幅减少数据模型物理读取量和逻辑读取量,减少查询总时间。 对事实表主键建立添加位图索引后,如表 1所示,数据的物理读取和逻辑读取时间大幅缩减,系统性能显著提升。 4 数据模型的实现 4.1 数
8、据模型的实现 4.1.1 Framework Manager 整合底层数据 采用商用 BI建模工具 Cognos Framework Manager在底层通过 UNION方式整合各个事实表业务数据6,各维度表通过维度字段与整合后的虚拟事实表相关联,建立星型结构,维度表与事实表逻辑关系如图 6所示。4.1.2 创建 cube数据源泉 在 Transformer建模工具中,以 Framework Manager发布数据包作为数据源,建立 cube,生成 mdl文件后,部署于/cognos/c10/bin 文件夹下,启动 cogtr刷新 cube,最终生成数据源文件即.mdc 文件,作为 BI报表分
9、析的最终汇总数据源。 在 linux环境下,基于 mdl文件编译生成.pyj 文件,在 5/cognos/c10/bin 下执行下面命令,./cogtr -m /cognos/Tran/PYJ/KPI_Cube.mdl -s /cognos/Tran/PYJ/KPI_Cube.pyj将 mdl文件编译成 pyj文件,最终结果如图 7所示。 执行命令cognosPCserver bin ./cogtr -c -l admin=administrator/1234 -p /cognos/Tran/PYJ/KPI_Cube.pyj,创建Cube的 MDC文件,创建结果如图 8所示。 执行命令,将创建
10、好的 Cube文件复制到 Deployment目录(/cognoscube)cognosPCserver bin ./cogtr -g -p /cognos/Tran/PYJ/KPI_Cube.pyj,发布结果如图 9所示。 执行命令,发布和更新 PackagecognosPCserver bin ./cogtr -j KPI_Cube -p /cognos/Tran/PYJ/KPI_Cube.pyj,如图 10所示为发布和更新 cube。 4.2 数据挖掘结果展示 在商用 BI工具中,基于前述汇总数据源 Cube,采用商用报表工具创建分析报表,揭示业务数据内在规律样例中抽取了指标“单位油气当
11、量生产综合能耗”涉及的分布于 25个事实表中的业务数据,结果如图 11所示,体现出比较好的跨值域整合数据能力及数据响应性能,揭示出“单位油气当量生产综合能耗”指标全年及其上一年变化趋势,为企业决策提供辅助支持。 5 结束语 本文基于星型结构模型,采用商用 BI工具基于星型结构构建底层数据模型,在此之上构建数据立方体作为汇总数据源。数据模型的构建是6数据仓库的重要方面,数据模型的构建不仅要考虑数据存储效率,同时也必须考虑数据仓库系统查询性能,并根据数据实际情况作出相应调整。参考文献: 1美Ralph Kimball ,Mary Ross. The Data Warehouse Toolkit:
12、The Complete Guide to Dimensional ModelingM.Second Edition. NEW YORK: John Wiley & Sons, Inc., 2009. 2何玉洁,张俊超.数据仓库与 OLAP实践教程M. 北京:清华大学出版社,2008. 3赵博,叶晓俊.OLAP 性能测试方法研究与实现J.计算机研究与发展,2011 年,48(10):1954-1959. 4林宇,等.数据仓库原理与实践M.北京:人民邮电出版社,2003. 5龙新征,等.基于数据仓库的高效数据统计服务平台研究J.通信学报,2013,34(72):163-165. 6美Terry Curran. IBM Cognos 10 Framework Manager M.Second Edition. Birmingham: Packt Publishing, 2013.