一种基于关系数据库生成多维立方体的方法及装置的制作方法

文档序号:6469113阅读:148来源:国知局

专利名称::一种基于关系数据库生成多维立方体的方法及装置的制作方法
技术领域
:本发明涉及数据管理领域,尤其涉及一种基于关系数据库生成多维立方体的方法。
背景技术
:OLAP(On-LineAnalyticalProcess,联才几分析处理)是以海量tt据为基础的复杂分析技术,是使分析人员、管理人员能够从多种角度对从原始数据中转化出来的、能够真正为用户所理解的、并真实反映数据维特性的信息,进行快速、一致、交互地访问,从而获得对数据的更深入的了解的一类软件技术。而数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策,其针对OLAP提出了一种综合的解决方案。因此,为了更有效的对各种数据进行分析,数据仓库技术广泛应用于各个领域其中,数据仓库在银行方面的应用范围包括有存款分析、货款分析、客户市场分析、相关金融业分析决策(证券、外汇买卖)、风险预测、效益分析等,扮演着至关重要的角色。数据表现是数据仓库的门面,主要表现在多维分析、数理统计、数据挖掘等方面。管理人员、分析人员通过数据仓库的数据表现来获得其所关注的各方面信息。然而,数据表现所展现的数据通常都是从数据仓库中逐条抽取,保存在一个临时文件中,然后更新加载至cube(多维立方体),采用该方法会频繁访问数据仓库,给数据仓库造成压力负重,且cube生成效率低。此外,由于数据量大,极大占据着数据仓库的存储空间,造成数据仓库的成本居高不下。
发明内容本发明的主要目的在于提供一种基于关系数据库生成cube的方法及装置,该方法及装置访问效率高且支持决策分析。5本发明提供了一种基于关系数据库生成cube的方法,该方法包括将数据仓库的数据转换加载生成cube,所述数据仓库为具有星型结构的关系型数据库;将更新的数据导入所述数据仓库;将所述更新的数据以数据文本的形式从所述数据仓库导出;以所述数据文本作为数据源更新加载所述cube中的数据。相应地,本发明还提供了一种基于关系数据库生成cube的装置,包括cube生成模块,用于将数据仓库的数据转换加载生成cube,所述数据仓库为具有星型结构的关系型凝:据库;数据导入模块,用于将更新的数据存储至所述数据仓库;数据导出模块,用于将所述数据导入模块存储至所述数据仓库的数据以数据文本的形式从所述数据仓库导出;cube更新4莫块,用于以所述数据文本作为数据源更新加载所述cube。实现本发明的实施例,先将数据以规范的数据文本形式从数据仓库导出,再以该数据文本作为数据源更新加载cube中的数据,从而避免了更新该cube时直接访问数据仓库,减轻了因频繁访问数据仓库带来的负重压力,且提高了cube生成的岁丈率。可选地,本发明实施例的基于关系数据库生成多维立方体的方法还包括将导出的数据文本存储在外部存储设备中,从而可以节约数据仓库的存储空间,降低了翁:据仓库的成本。较佳地,所述以所述数据文本作为数据源更新加载cube采用增量更新的方式完成,从而可以保障加载效率,降低cube运行风险。在本发明的优选实施例中,所述基于所述二维数据库创建数据仓库包括基于所述二维数据库建立一个具有星型结构特征的多维数据模型,该多维数据模型包括多个子星型结构;根据所述星型结构设计与之对应的数据仓库架构;将二维数据库中的数据存储至数据仓库。较佳地,该数据仓库中包括用于实现货币单位转换的单位转换表,在前端展现时选取该维度可以实现货币单位的转换,方便管理人员或分析人员更方便更直观地观察分析关注的数据。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作筒单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本发明基于关系数据库生成cube的方法的第一实施例的流程示意图。图2是本发明基于关系数据库生成cube的方法的第二实施例的流程示意图。图3a-3e是本发明基于关系数据库生成cube的方法的第二实施例的具体实施过程图。图4是本发明基于关系数据库生成cube的装置的一个实施例的结构框图。图5是本发明基于关系数据库生成cube的装置的又一实施例的结构框图。具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅4又是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。图1是本发明基于关系数据库生成cube的方法的第一实施例的流程示意图。如图l所示,本实施例的基于关系数据库生成cube的方法包括步骤101:选择一具有星型结构的关系型数据库,即数据仓库,将该数据仓库的数据转换加载生成cube,从而实现了多维数据库的应用。优选地,可以根据具体的业务应用对维进行划分,然后将该数据仓库的数据转换加载生成多个面向不同应用的cube。即将超立方体结构变为多个子立方体结构,具有很强的灵活性,提高了数据的分析效率。具体的,该关系数据库可以为通过现有的任何数据库工具实现,例如可以通过Teradata数据库管理系统(为成熟的数据仓库产品)实现,通过Teradata数据库管理系统进行处理数据,存放数据以及定期提供数据。而建立cube可以利用Cognos提供的OLAP工具来实现。步骤102:将更新的数据导入该数据仓库;具体地,将更新的数据处理清洗归档,导入该数据仓库的库表,即维度表和事实表。步骤103:将更新的数据以数据文本的形式从该数据仓库导出。优选地,可以采用Teradata数据库管理系统的快速导出方法fastexport导出该数据文本。通过该方法导出的文本效率高,且便于数据备份。具体的,该数据文本的结构与数据仓库中表的结构一致,该数据文本的一行对应表中的一条数据记录。步骤104:以该数据文本作为数据源更新加载cube中的数据。优选地,更新加载cube中的数据采用增量更新的方式。实施本发明实施例,先将更新的数据以规范的数据文本形式从数据仓库导出,cube从该数据文本加载生成,从根本上解决了cube生成直接读取数据库存在的问题,提高了cube生成效率。可选的,本发明实施例的基于关系数据库生成cube的方法还包括将从数据仓库导出的数据文本存储在外部存储设备中的步骤,其中该外部存储设备价格低廉,从而可以降低数据仓库的成本。需要说明的是,本实施例中的步骤102-104并非先后顺序,可同步进行。图2是本发明基于关系数据库生成cube的方法的第二实施例的流程示意图,本实施例以变换单位分析各种银行数据为例,对本发明实施例的基于关系数据库生成cube的方法加以说明。图3a-3e是本发明基于关系数据库生成cube的方法的第二实施例的具体实施过程图。如图2所示,本实施例的方法包括..步骤201:基于二维数据库建立一个具有星型结构特征的多维数据模型。具体地,基于所述二维数据库创建维度表和事实表;以事实表为中心,多个维度表通过各自的键列链接到所述事实表上,从而创建出一个维度完整的星型结构。其中,该维度表中包括有单位转换表。该单位转换表根据汇率表的结构构造,其具体结构如下表名单位单位单位单位称代码基率名称曰期Dim—Unit—idUnit—codeUnit一nam6Tx—dateunit其中,单位名称对应汇率表中的币种,包括元、万元、百万等单位,单位基率对应汇率表中的汇率。以万元为例,当单位名称为万元时,基率为0.0001。该表有专门的程序维护,每日更新。优选地,可以按照具体的业务应用,通过对维度进行分割,将所述完整的星型结构划分为多个子星型结构,从而将大的数据结构分成了多个多维结构。每个子星型结构的事实表数据不重复,以保证整个业务系统数据的一致性,维度表则为所有事实表所共享。通常,该多维数据模型覆盖业务系统中所有具有统计分析价值的数据。步骤202:根据上述星型结构设计与之对应的数据仓库架构。步骤203:将二维数据库中的凄t据存储至数据仓库。具体地,以上步骤可以通过Teradata数据库管理系统实现,通过Teradata数据库管理系统进行处理数据,存放数据以及定期提供数据。步骤204:将该数据仓库的现有数据转换加载生成cube,从而实现了多维数据库的应用。具体地,由于对维进行了划分,所以可以将该数据仓库的数据转换加载生成多个面向不同应用的cube。例如,可以是用户所关注业务的一个考核方面客户信用度分析、客户账务、交易分析等。对维度进行划分也可以是选取整个维度的部分数值区间,例如选取日期维度按天生成cube或按月生成cube。通过生成多个cube,将超立方体结构变为多个子立方体结构,该结构具有^f艮强的灵活性,提高了数据的分析效率。步骤205:将二维数据库中更新的数据存储至数据仓库。具体地,将更新的数据处理清洗归档,导入该数据仓库的库表,即维度表和事实表。在本实施例中,将单位转换表每日更新的数据采集、处理后导入数据仓库。步骤206:将该更新的数据以数据文本的形式从该数据仓库导出。9具体地,可以采用Teradata数据库管理系统的fastexport方法导出该数据文本,使用该方法导出的文本效率高,且便于数据备份。在本实施例中,将单位转换表按照步骤201中的表结构以数据文本的形式导出。步骤207:将该数据文本保存至外部存储设备中。其中,该外部存储设备可以采用廉价存储设备,从而降低数据仓库的成本。步骤208:以该数据文本作为数据源更新加载该cube中的数据;优选地,更新加载该cube中的数据采用增量更新的方式。例如,可以仅对每日的增量数据进行加载,每个增量生成一个独立的子立方体。通过增量更新的方式加载可以保障加载效率,如果加载失败,仅需要对增量部分进行修正,从而降低了cube的运行风险。步骤209:前端展现该cube中的数据。具体地,可以通过Cognos展现工具实现cube中数据的前端展现。通过多维分析以用户理解业务的方式表达和展现企业数据,其中应用于企业决策的多维分析让每个人都能够访问企业数据,从而更有效地管理业务。下面详细描述如何实现前端展现中的单位转换功能。在凝:据仓库中建立如前所述的单位转换表后,利用Cognos软件中的transformer工具(此为一种建模工具)调用该表,从而在前端展现时实现数据单位的转换。transformer工具调用该表的过程与调用汇率表的过程相似,具体过程如图3a-3e所示,在将每次更新的单位转换表以数据文本的形式从数据仓库导出后,进入cognostransformer的操作界面,点击界面菜单"file"中的通用表格"CurrencyTable"选项;在弹出窗口中选中4吏用外部数据源"Useanexternalcurrencydatasource"项;然后在下面的基础表格栏"Basetablecolumns"框中选好对应的数据来源,点击最下左边的加载表格"LoadTable"按钮,在勤出表格"Basetable"框中会出现在数据源中存在的单位选择项。完成单位设置后,然后在度量窗格里找到用到单位的度量(例如金额等),打开度量属性,例如双击打开度量"活期通存金额,,属性度量属性中"General"下的允许外汇汇兑"Allowcurrencyconversion"选项从灰色(不可选)变为显色(可选),在它前面的小框打上",,,点击"确定,,按钮,此度量图标发生变化,如图所示。在单位设置完后,生成发布相应的cube,在展现端看到的度量"活期通存金额"将会跟着拖拽的单位不同而相应的发生不同的数据变化,如图3e所示。用户可以根据需要自由选择度量单位,更直观更方便的进行数据观察和分析。在本实施例中,当数据仓库架构设计完成,加载生成cube之前,定时任务会触发从多维数据库的维度表和事实表往数据仓库装载数据的过程。在本实施例的实现过程中,还利用了调度系统,该调度系统可以采用ETL工具和调度工具Control-M,其中,ETL工具用于并将原始数据转换加载进维度表和事实表,而调度工具Control-M则将表中的数据加载到相应的cube中且根据原始数据及整体调度情况为以上任务配置运行触发条件。实施本发明实施例,采用了数据文件作为更新加载cube的数据源,不在数据仓库中进行数据存储和保留历史,从而节约了数据仓库的存储空间,减轻了数据仓库的负重压力。需要注意到是,本实施例中的步骤207是可选步骤。步骤205-209并非一定是先后顺序,也可以同步执行。图4是本发明基于关系数据库生成cube的装置的一个实施例的结构框图。如图4所示,本实施例的基于关系数据库生成cube的装置4包括cube生成模块41、数据导入模块42、数据导出模块43和cube更新模块44。其中,该cube生成模块41用于将数据仓库的数据转换加载生成cube,所述数据仓库为具有星型结构的关系型数据库;数据导入模块42用于将更新的数据存储至所迷数据仓库;该数据导出模块43用于将所述数据导入模块42存储至所述数据仓库的数据以数据文本的形式从所述数据仓库导出;该cube更新模块44用于以所述数据文本作为数据源更新加载所述cube。图5是本发明基于关系数据库生成cube的装置的又一实施例的结构框图。如图5所示,本实施例的基于关系数据库生成cube的装置5包括cube生成模块51、数据导入模块52、数据导出模块53和cube更新模块54。其中,该数据仓库建立模块55用于基于与所述数据仓库对应的二维数据库建立一个具有星型结构特征的多维数据模型、根据所述星型结构设计与之对应的数据仓库架构并将所述二维数据库中的数据存储至所述数据仓库,从而建立一个具有星型结构的关系型数据库。该cube生成模块51用于将数据仓库的数据转换加载生成cube;数据导入模块52用于将更新的数据存储至所述数据仓库;该数据导出模块53用于将所述数据导入模块52存储至所述数据仓库的数据以数据文本的形式从所述数据仓库导出;该cube更新模块54用于以所述数据文本作为数据源更新加载所述cube;前端展现模块56用于前端展现用户所选cube中的数据。具体地,该数据仓库建立模块55可以包括星型结构划分单元,用于按照具体的应用选择维度,将所述星型结构划分为多个子星型结构。更具体地,该数据仓库建立模块55为Teradata数据库管理系统,该数据导出才莫块53采用Teradata数据库管理系统的快速导出fastexport方法,该前端展现模块56采用Cognos展现工具。可选地,本发明实施例的基于关系数据库生成cube的装置的还可以包括数据文本存储模块,用于将所述数据导出模块导出的数据文本存储至外部存储设备。以上结合最佳实施例对本发明进行了描述,但本发明并不局限于以上揭示的实施例,而应当涵盖各种根据本发明的本质进行的修改、等效组合。权利要求1.一种基于关系数据库生成多维立方体的方法,包括将数据仓库的数据转换加载生成多维立方体,所述数据仓库为具有星型结构的关系型数据库;将更新的数据存储至所述数据仓库;将所述更新的数据以数据文本的形式从所述数据仓库导出;以所述数据文本作为数据源更新加载所述多维立方体。2.根据权利要求1所述的基于关系数据库生成多维立方体的方法,其特征在于,在所述将所述数据仓库的数据转换加载生成多维立方体的步骤之前还包括基于与所述数据仓库对应的二维数据库建立一个具有星型结构特征的多维数据模型;根据所述星型结构设计与之对应的数据仓库架构;将所述二维数据库中的数据存储至所述数据仓库。3.根据权利要求2所述的基于关系数据库生成多维立方体的方法,其特征在于,所述基于与所述数据仓库对应的二维数据库建立一个具有星型架构特征的多维数据模型包括基于所述二维数据库创建维度表和事实表;以事实表为中心,多个维度表通过各自的键列链接到所述事实表上。4.根据权利要求3所述的基于关系数据库生成多维立方体的方法,其特征在于,所述基于与所述数据仓库对应的二维数据库建立一个具有星型架构特征的多维数据模型还包括按照具体的应用选择维度,将所述星型结构划分为多个子星型结构;则,所述将所述数据仓库的数据转换加载生成多维立方体包括将所述数据仓库的数据转换加载生成多个多维立方体。5.根据权利要求4所述的基于关系数据库生成多维立方体的方法,其特征在于,所述基于所述二维数据库创建维度表和事实表包括创建汇率表,并根据所述汇率表的结构创建单位转换表。6.根据权利要求1所述的基于关系数据库生成多维立方体的方法,其特征在于,所述方法还包括将所述数据文本保存在外部存储设备上。7.根据权利要求l-6的任意一项所述的基于关系数据库生成多维立方体的方法,其特征在于所述数据文本的结构与所述数据仓库中表的结构一致,所述数据文本的一行对应表中的一条数据记录。8.根据权利要求l-6的任意一项所述的基于关系数据库生成多维立方体的方法,其特征在于所述以所述数据文本作为数据源更新加载所述数据仓库的多维立方体采用增量更新的方式。9.根据权利要求l-6的任意一项所述的基于关系数据库生成多维立方体的方法,其特征在于,该方法还包括前端展现所述多维立方体中的数据。10.—种基于关系数据库生成多维立方体的装置,包括多维立方体生成模块,用于将数据仓库的数据转换加载生成多维立方体,所述数据仓库为具有星型结构的关系型数据库;数据导入模块,用于将更新的数据存储至所述数据仓库;数据导出模块,用于将所述数据导入模块存储至所述数据仓库的数据以数据文本的形式从所述数据仓库导出;多维立方体更新模块,用于以所述数据文本作为数据源更新加载所述多维立方体。11.如权利要求10所述的基于关系数据库生成多维立方体的装置,其特征在于,所述装置还包括数据仓库建立模块,用于基于与所述数据仓库对应的二维数据库建立一个具有星型结构特征的多维数据模型、根据所述星型结构设计与之对应的数据仓库架构并将所述二维数据库中的数据存储至所述数据仓库。12.如权利要求11所述的基于关系数据库生成多维立方体的装置,其特征在于,所述数据仓库建立模块包括星型结构划分单元,用于按照具体的应用选择维度,将所述星型结构划分为多个子星型结构。13.如权利要求10所述的基于关系数据库生成多维立方体的装置,其特征在于,所述装置还包括数据文本存储模块,用于将所述数据导出模块导出的数据文本存储至外部存储设备。14.如权利要求10-13任一项所述的基于关系数据库生成多维立方体的装置,其特征在于,所述装置还包括前端展现模块,用于前端展现所述多维立方体中的数据。15.如权利要求10-13任一项所述的基于关系数据库生成多维立方体的装置,其特征在于所述数据仓库建立模块为Teradata数据库管理系统,所述数据导出模块采用Teradata数据库管理系统的快速导出fastexport方法。全文摘要本发明公开了一种基于关系数据库生成多维立方体的方法,该方法包括将数据仓库的数据转换加载生成cube,所述数据仓库为具有星型结构的关系型数据库;将更新的数据导入所述数据仓库;将该更新的数据以数据文本的形式从该数据仓库导出;以该数据文本作为数据源更新加载cube。本发明先将数据以规范的数据文本形式从数据仓库导出,再以该数据文本作为数据源加载更新cube,从而避免了更新cube时直接访问数据仓库,减轻了因频繁访问数据仓库带来的负重压力,且提高了cube生成的效率。文档编号G06F17/30GK101452485SQ20081019290公开日2009年6月10日申请日期2008年12月31日优先权日2008年12月31日发明者浩刘,鹏李,江融函,王成名,涛胡,董恒星,赵世辉,郑承满,陈少静申请人:中国建设银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1