基于商业智能的敏捷建模方法和系统与流程

文档序号:14217584阅读:252来源:国知局
本发明涉及电子
技术领域
:,特别是一种基于商业智能的敏捷建模方法和系统。
背景技术
::商业智能(businessintelligence,简写bi)从1989年首次提出到今天,越来越多的企业通过实施商业智能产品来帮助其做出更好的管理决策。在商业智能项目中,企业用户经常反复检验的是报表或分析的质量,而非常少的来检验模型的质量。殊不知,模型的好坏很大程度上将影响前端分析的质量、系统的速度、etl开发的难易等一系列的问题,模型质量的好坏直接决定了整个项目实施能否成功。可以说,建立数据模型是商业智能实施的一个核心环节。但是目前市面上的商业智能产品基本都仅提供平台,项目实施的时候,需要进行模型设计、数据仓库建设、etl设计、数据分析、报表制作、数据挖掘等大量的设计和开发工作,其中模型设计不仅需要业务和技术方面的专业人员参与,而且工作繁琐,重复劳动偏多。因此,如何以技术手段实现商业智能项目的敏捷建模是一个亟待解决的问题。技术实现要素:针对现有技术中存在的问题,本发明实施例的目的是提供一种基于商业智能的敏捷建模方法和系统,至少部分的解决现有技术中存在的问题,以提供一种面向行业应用的商业智能敏捷建模技术,并提供图形化建模工具,让非专业人员方便快捷的建立高质量的数据模型,去除了建立多维数据模型过程中需要专业人员参与的门槛。为了实现上述目的,本发明实施例提出了一种基于商业智能的敏捷建模方法,包括:数据模型设计步骤、交互任务设计步骤、可视化模型工具实现步骤;数据模型设计步骤,用于根据多维模型的描述方法和存储结构,生成数据模型,具体包括:数据模型建立子步骤、数据模型存储结构建立子步骤数据模型建立子步骤:用于基于商业智能建立多维数据类型的数据存储结构,以建立多维数据模型的描述;其中所述多维数据类型为星形架构,包括至少一个事实数据库表和至少一个维度表,其中所述一个维度表对应关联一个或多个事实数据库表;数据模型存储结构建立子步骤:用于建立用于对数据模型持久化时的数据库的物理存储结构,以及建立实现可视化建模工具时候的java类设计;其中所述数据库的物理存储结构用于标明事实数据库表与维度表的信息中包含的业务信息,以及可视化属性信息、传输信息;其中所述业务信息为事实数据库表包含的信息,其至少包括以下参数:主键、事实度量字段、其他字段信息,还包括各个主键的类型、长度,以供生成持久化的事实数据库表做准备;其中可视化属性信息为可视化建模中所显示的信息,包括:事件监听信息,为该模型在可视化建模中所使用的交互信息;图元坐标信息,为可视化建模中图元在画布上的坐标信息;图元关系信息,为事实数据库表与维度表的关系信息,包含了事实数据库表与维度表的关系;然后将该多维数据模型进行持久化;其中所述java类设计用于在模型可视化设计过程中确定该模型的java类,具体:对多维数据模型中的各种基本元素定义四个类melement、mfacttable、mdimensiontable、massociation;其中melement是基类,另外三个类分别继承自melement;一个完整的多维数据模型由mfacttable、mdimensiontable、massociation三个类组成,所述三个类包含了数据模型建立子步骤中事实数据库表和维度表的所有参数;还包含业务信息、坐标信息、可视化属性、事件监听信息、模型物理存储参数;还包含了模型可视化过程中的绘制方法、模型物理存储过程中的存储方法;其中所有参数和信息都存储在ghcontainer的属性elementlist中;交互任务设计步骤,用于处理用户建模操作和可视化建模工具之间的交互请求;其中所述交互任务设计步骤包括画布交互子步骤和系统交互子步骤;所述画布交互子步骤用于在用户通过画布上的交互任务设计多维数据模型时,接收用于对于多维数据模型的交互操作以建立多维数据模型,其中所述交互操作包括以下的至少一种操作:点击、拖动、双击;所述系统交互子步骤;系统交互子步骤用于对事件进行监听以实现对应的模型管理操作;其中所述事件包括以下的至少一种:按钮单击、右键点击、拖动;其中管理操作包括以下的至少一种:新建、保存、修改;其中系统交互子步骤包括:建立交互任务模型,并利用事件控制器监听事件,以根据预先设置的一组状态驱动状态改变,从一个状态转换成另外一个状态,以实现相应的管理操作;其中所述交互任务模型包括任务模型和状态转换模型,所述任务模型用于描述用户的事件与系统的管理操作之间的对应关系;且所述系统交互子步骤包括还包括:建立客户端与服务器端的事件处理机制,以实现多维数据模型的持久化存储;其中所述事件由鼠标或键盘或外部输入触发,或是由组件外观和生命周期发生变化时触发;其中,通过事件监听器监听事件,事件监听器采用函数方法响应用户指定的事件;使用组件时,需要先为该组件注册一个事件,然后监听该事件,当所监听的事件被触发时,则分发事件,由响应的eventlistener捕获事件进行响应处理;可视化模型工具实现步骤,用于生成可视化工具;其中所述可视化建模工具的架构自上而下分为:客户端、服务器端、数据库;其中客户端基于flex结合actionscript语言实现,包含建模应用引擎、模型解析引擎、权限管理引擎三个部分,以相互协作解析来自服务器的多维数据模型并且转化为actionscript语言以实现模型的可视化;其中所述客户端使用flex的可视化组件外,以及自定义的用于绘制多维数据模型的可视化组件,至少包括:mfacttable、mdimensiontable、massociation;服务器端采用java语言基于spring+struts+hibernate架构建立,以与客户端进行数据交互来处理客户端的业务数据,并将处理好的业务数据返回客户端;并与数据库进行数据交互,以处理来自数据库的数据或者将处理好的业务数据存储到数据库;数据库端基于postgresql实现,以在客户端建立的多维数据模型传输到服务器端,经过服务器端的解析,转化成结构化的语言,最终存储到数据库中;其中所述客户端与服务端的通信框架分为两部分,一部分是基于flex的客户端服务,另外一部分是基于java的服务器端服务;当客户端发生某一具体的交互任务时,客户端的通信服务能够通过框架将具体的任务传递给服务器端,服务器端服务进行处理并返回给客户端;其中所述可视化模型工具实现步骤还用于:建立实现可视化建模的附加功能,所述附加功能包括以下的至少一种:模型管理、快速建模、版本管理、数据映射、自定义模板;其中模型管理用于根据需求建立不同的多维数据模型,并将多为数据模块以树形结构显示给用户,以使用户通过模型树对多维数据模型进行管理;其中所述管理包括对模型进行的以下至少一种操作:添加、删除、更新、导入导出、持久化;其中快速建模用于根据内置的多维数据模型模板进行快速建模;在对商业智能项目进行多维模型设计的时候,选择对应的多维数据模型模板,在多维数据模型模板基础上进行配置操作,以生成多维数据模型;其中版本管理用于存储、追踪多维模型的修改历史;其中数据映射管理用于在多维数据模型转换成物理模型时,根据预设的映射机制,转换成系统支持的任意一种数据库模型;其中所述预设的映射机制为多维数据模型在转化成物理模型过程中具体的数据类型的描述;其中所述数据映射管理还用于对预设的映射机制进行操作,所述操作包括以下的至少一种:添加、删除、修改、保存;其中自定义模板用于接收用户的输入以生成多维数据模型模板。其中所述事实数据库表至少包括以下的参数:name参数,用于标明该事实数据库表的唯一标识;type参数,用于标明该事实数据库表的类型;(xpos,ypos)参数,用于标明该事实数据库表的坐标,以在对模型进行可视化处理时在画布上标出该事实数据库表的位置;description参数,用于标明该事实数据库表的描述;tablename参数,用于标明该事实数据库表所对应的关系数据库表;primarykey参数,用于标明该事实数据库表所对应的关系数据库表的主键;cubemeasure参数,用于标明该事实数据库表的字段的描述;association参数,用于标明该事实数据库表与其相关维度表的关系,其中该事实数据库表关联另一个实时数据库表或一个维度表;其中,所述维度表dimensiontable至少包括以下的参数:name参数,用于标明该事实数据库表的唯一标识;type参数,用于标明该维度表的类型;(xpos,ypos)参数,用于标明该维度表的坐标,以在对模型进行可视化处理时在画布上标出该维度表的位置;description参数,用于标明该维度表的描述;tablename参数,用于标明该维度表所对应的关系数据库表的名称;primarykey参数,用于标明该维度表所对应的关系数据库表的主键;attribute参数,用于维度表具体字段的参数信息;association参数,用于标明该维度表与其相关数据库表的关联关系。其中,该cubemeasure参数有具体包括以下子参数:name子参数,用于标明该cubemeasure参数的唯一标识;column子参数,用于标明cubemeasure参数对应的一列字段的名称;type子参数,用于标明column子参数对应的一列字段的数据类型,所述数据类型可以为integer或char或date;sourcetable子参数,用于标明该字段对应的源数据库表的列的名称;sourcecolumn子参数,用于标明该字段对应的源数据库表的名称;attribute子参数,用于标明维度库表的具体字段的参数信息。其中,该attribute子参数具体包括以下孙参数:name孙参数,用于标明该表所对应的关系数据库表的子参数的唯一标识;column孙参数,用于标明attribute子参数对应的一列字段的名称;type孙参数,用于标明column孙参数对应的一列字段的数据类型,所述数据类型可以为integer或char或date;description孙参数,用于标明该字段的描述;sourcetable孙参数,用于标明该字段对应的源数据库表的名称;sourcecolumn孙参数,用于标明该字段对应的源数据库表的列的名称;not-null孙参数,用于标明该字段是否为空,如果是则not-null孙参数为true,如果否则该not-null为false。其中,事实数据库表和维度表的association参数包括以下子参数:name子参数,用于标明该association参数的唯一标识;sourcekey子参数,用于标明该数据模型的一个字段;target子参数,用于标明该表的关联关系,即该事实数据库表关联的另一事实数据库表或维度表的名称;targettype子参数,用于标明该表关联的另一事实数据库表或维度表的类型;targetkey子参数,用于标明该表关联的另一事实数据库表或维度表中进行关联的字段;deletecascade子参数,用于标明是否允许级联删除,如果是则该子参数为true,如果否则该子参数为false;updatecascade子参数,用于标明是否允许级联更新,如果是则该子参数为true,如果否则该子参数为false。其中,所述快速建模包括:选择内置的对应模板,该模板中包括预设的事实数据库表、维度表和关联关系;对事实数据库表进行配置,配置时可以模板定义好的度量,也可以自行增加、修改和删除、自定义度量;选择事实数据库表来源;对维度表进行配置,配置时可以选取模板定义好的维度,也可以自定义维度;选择维度表来源;关联关系配置,配置时可以模板定义好的已经定义好关联关系,也可以自定义关联关系;配置完成后,生成多维度数据模型,并存储到后台数据库中。同时,本发明实施例还提出了一种基于商业智能的敏捷建模系统,包括:数据模型设计模块、交互任务设计模块、可视化模型工具实现模块;数据模型设计模块,用于根据多维模型的描述方法和存储结构,生成数据模型,具体包括:数据模型建立子模块、数据模型存储结构建立子模块;数据模型建立子模块:用于基于商业智能建立多维数据类型的数据存储结构,以建立多维数据模型的描述;其中所述多维数据类型为星形架构,包括至少一个事实数据库表和至少一个维度表,其中所述一个维度表对应关联一个或多个事实数据库表;数据模型存储结构建立子模块:用于建立用于对数据模型持久化时的数据库的物理存储结构,以及建立实现可视化建模工具时候的java类设计;其中所述数据库的物理存储结构用于标明事实数据库表与维度表的信息中包含的业务信息,以及可视化属性信息、传输信息;其中所述业务信息为事实数据库表包含的信息,其至少包括以下参数:主键、事实度量字段、其他字段信息,还包括各个主键的类型、长度,以供生成持久化的事实数据库表做准备;其中可视化属性信息为可视化建模中所显示的信息,包括:事件监听信息,为该模型在可视化建模中所使用的交互信息;图元坐标信息,为可视化建模中图元在画布上的坐标信息;图元关系信息,为事实数据库表与维度表的关系信息,包含了事实数据库表与维度表的关系;然后将该多维数据模型进行持久化;其中所述java类设计用于在模型可视化设计过程中确定该模型的java类,具体:对多维数据模型中的各种基本元素定义四个类melement、mfacttable、mdimensiontable、massociation;其中melement是基类,另外三个类分别继承自melement;一个完整的多维数据模型由mfacttable、mdimensiontable、massociation三个类组成,所述三个类包含了数据模型建立子步骤中事实数据库表和维度表的所有参数;还包含业务信息、坐标信息、可视化属性、事件监听信息、模型物理存储参数;还包含了模型可视化过程中的绘制方法、模型物理存储过程中的存储方法;其中所有参数和信息都存储在ghcontainer的属性elementlist中;交互任务设计模块,用于处理用户建模操作和可视化建模工具之间的交互请求;其中所述交互任务设计模块包括画布交互子模块和系统交互子模块;所述画布交互子模块用于在用户通过画布上的交互任务设计多维数据模型时,接收用于对于多维数据模型的交互操作以建立多维数据模型,其中所述交互操作包括以下的至少一种操作:点击、拖动、双击;所述系统交互子模块用于对事件进行监听以实现对应的模型管理操作;其中所述事件包括以下的至少一种:按钮单击、右键点击、拖动;其中管理操作包括以下的至少一种:新建、保存、修改;其中系统交互子模块包括:建立交互任务模型,并利用事件控制器监听事件,以根据预先设置的一组状态驱动状态改变,从一个状态转换成另外一个状态,以实现相应的管理操作;其中所述交互任务模型包括任务模型和状态转换模型,所述任务模型用于描述用户的事件与系统的管理操作之间的对应关系;且所述系统交互子步骤包括还包括:建立客户端与服务器端的事件处理机制,以实现多维数据模型的持久化存储;其中所述事件由鼠标或键盘或外部输入触发,或是由组件外观和生命周期发生变化时触发;其中,通过事件监听器监听事件,事件监听器采用函数方法响应用户指定的事件;使用组件时,需要先为该组件注册一个事件,然后监听该事件,当所监听的事件被触发时,则分发事件,由响应的eventlistener捕获事件进行响应处理;可视化模型工具实现模块,用于生成可视化工具;其中所述可视化建模工具的架构自上而下分为:客户端、服务器端、数据库;其中客户端基于flex结合actionscript语言实现,包含建模应用引擎、模型解析引擎、权限管理引擎三个部分,以相互协作解析来自服务器的多维数据模型并且转化为actionscript语言以实现模型的可视化;其中所述客户端使用flex的可视化组件外,以及自定义的用于绘制多维数据模型的可视化组件,至少包括:mfacttable、mdimensiontable、massociation;服务器端采用java语言基于spring+struts+hibernate架构建立,以与客户端进行数据交互来处理客户端的业务数据,并将处理好的业务数据返回客户端;并与数据库进行数据交互,以处理来自数据库的数据或者将处理好的业务数据存储到数据库;数据库端基于postgresql实现,以在客户端建立的多维数据模型传输到服务器端,经过服务器端的解析,转化成结构化的语言,最终存储到数据库中;其中所述客户端与服务端的通信框架分为两部分,一部分是基于flex的客户端服务,另外一部分是基于java的服务器端服务;当客户端发生某一具体的交互任务时,客户端的通信服务能够通过框架将具体的任务传递给服务器端,服务器端服务进行处理并返回给客户端;其中所述可视化模型工具实现模块还用于:建立实现可视化建模的附加功能,所述附加功能包括以下的至少一种:模型管理、快速建模、版本管理、数据映射、自定义模板;其中模型管理用于根据需求建立不同的多维数据模型,并将多为数据模块以树形结构显示给用户,以使用户通过模型树对多维数据模型进行管理;其中所述管理包括对模型进行的以下至少一种操作:添加、删除、更新、导入导出、持久化;其中快速建模用于根据内置的多维数据模型模板进行快速建模;在对商业智能项目进行多维模型设计的时候,选择对应的多维数据模型模板,在多维数据模型模板基础上进行配置操作,以生成多维数据模型;其中版本管理用于存储、追踪多维模型的修改历史;其中数据映射管理用于在多维数据模型转换成物理模型时,根据预设的映射机制,转换成系统支持的任意一种数据库模型;其中所述预设的映射机制为多维数据模型在转化成物理模型过程中具体的数据类型的描述;其中所述数据映射管理还用于对预设的映射机制进行操作,所述操作包括以下的至少一种:添加、删除、修改、保存;其中自定义模板用于接收用户的输入以生成多维数据模型模板。本发明的上述技术方案的有益效果如下:上述技术方案提出了一种基于商业智能的敏捷建模方法和系统,具有以下优点:1.本发明设计了多维数据模型与存储结构,包括对事实表与维度表的描述,并且根据多维数据模型的描述方法建立起一套多维数据模型的物理存储、类存储设计模式,包括可视化属性、业务属性、事件监听属性、图元绘制信息、图元关系信息等信息进行了设计。2、针对可视化建模中的交互任务,采用基于画布的交互任务以及基于组件的远程交互任务相结合的方法来解决建模过程中的交互问题,并对画布交互任务以及远程交互任务进行分析,设计了客户端与服务器端的通信框架。3、本发明实现了可视化建模工具的设计,对基于flex和actionscript的客户端与基于java的服务器端进行了整合,设计了针对客户端与服务器端的通信框架,实现了客户端与服务器端的数据交互。附图说明图1是事实表与维度表结构图;图2是多维数据模型图;图3是java类ghcontainer存储结构图;图4是多维数据模型的状态图;图5是本发明可视化建模工具总体架构图;图6是事实表的外观图;图7是事实表和维度表展现图;图8是客户端与服务器端的通信框架;图9是基于内置模板的快速建模流程图。具体实施方式为了说明本发明的一种基下面结合附图和具体实施方式对本发明作进一步详细的说明。如图1-9所示的,本发明实施例提出了一种基于商业智能的敏捷建模技术,并提供图形化建模工具,使得非专业人员也能方便快捷的建立高质量的数据模型,为后续的数据仓库建设、etl设计、数据分析、报表制作、数据挖掘等工作打下坚实基础。本发明的实施包括:数据模型设计、交互任务设计、可视化模型工具的实现。1.数据模型设计数据模型设计是指设计一套多维模型的描述方法、存储结构,由于本发明要提供可视化建模工具,所以还包括模型可视化部分的设计。1)数据模型定义商业智能项目一般都建立在数据仓库之上,而建立数据仓库就需要对数据仓库的数据结构进行建模,多维数据模型是数据仓库最常见的一种数据存储结构。olap逻辑建模的关键和核心就是至少使用一个星形架构的源数据模型,星形架构至少包含一个事实数据库表和一个维度表,通常会有许多个维度表,并与一个或多个事实数据库表相关联。对于纯星形架构,两类表中的数据行通过主—外键相关联,主键唯一地标识维度表中的每一行,并与事实数据库表中的外键相关联。根据以上分析,下面对多维数据模型给出定义:表1事实表模型facttable表2度量模型cubemeasure属性描述namecubemeasure的名称,它唯一的标识cubemeasure。column对应的一列字段的名称。type该字段所对应的数据类型,比如integer,char,date等类型。sourcetable该字段所对应的源数据库表具体的某一列的名称。sourcecolumn该字段所对应的源数据库表的名称。attribute维度表具体字段的参数信息,其具体定义见定义5。not-null表示该字段是否可以为空,可以为空填true,反之为false。表3关联关系模型association定义4维度表模型dimensiontable定义5属性模型attribute属性描述nameattribute的名称,它唯一的标识attribute。column对应的一列字段的名称。type该字段所对应的数据类型,比如integer、char、date等类型。description对本字段的描述,一般采用中文描述sourcetable该字段所对应的源数据库表的名称。sourcecolumn该字段所对应的源数据库表具体的某一列字段的名称。not-null表示该字段是否可以为空,可以为空填true,反之为false2)建立数据模型存储结构数据模型的存储结构设计包含两方面的设计,一方面是指数据模型持久化的时候,在数据库中的物理存储结构设计;另一方面是实现可视化建模工具时候的java类设计。(1)数据模型物理存储设计多维数据模型中,事实表与维度表的信息中需要包含其基木的业务信息,以及提供可视化建模、传输的相应信息。如图1所示,业务信息是事实表包含的信息,包括主键、事实度量字段、其他字段信息,还包括各主键的类型、长度等信息,供后面生成持久化的事实表做准备;可视化属性是指可视化建模中所显示的信息;事件监听信息是指该模型在可视化建模中所使用的交互信息;图元坐标信息是指可视化建模中图元在画布上的坐标信息;图元关系信息是指事实表与维度表的关系信息,包含了事实表与维度表的关系。通过对维度表和事实表的描述,这样就得到一个完整的多维数据模型的描述,如图2所示。要对多维数据模型进行后续的使用,必须将模型持久化,最好是存储到数据库中,以便于团队协作和后续维护。本发明中将多维数据模型存入postgresql数据库,postgresql是一种先进的对象-关系数据库管理系统(ordbms),它不仅支持关系数据库的各种功能,而且还具备类、继承等对象数据库的特征,它是目前功能最强大、特性最丰富的开源数据库管理系统。(2)java类设计在模型可视化设计过程中需要对上述定义的模型给出java类定义,核心类定义如下:首先针对多维数据模型中的各种基本元素定义四个类melement、mfacttable、mdimensiontable、massociation,其中melement是基类,另外三个类分别继承自melement,一个完整的多维数据模型由mfacttable、mdimensiontable、massociation三个类组成,这几个基类中包含了上面定义中的所有元素,包含了多维数据模型所应该包含的业务信息、坐标信息、业务信息、可视化属性、事件监听信息、模型物理存储等建模所用到的基本信息。此外,每个类中还包含在模型可视化过程中的绘制方法、模型物理存储过程中的存储方法。对于一个完整的多维数据模型,是一组元素的集合,包含有若干个维度表和事实表以及它们之间的关系,因此需要一个容器来存储这些元素的集合。在这里我们建立起一个类容器来存储这个元素的集合:ghcontainer。ghcontainer中包含有一个属性elementlist,用于保存这些元素的集合。图3是对基于java的服务器端的类存储结构的描述,对于基于flex客户端也应该建议一套相应的类存储结构,这样才能实现服务器端与客户端的数据一致性,客户端的类结构与上面所介绍的类结构基本上是一致的。2.交互任务设计交互任务主要用于处理用户建模操作和可视化建模工具之间的交互请求,分为画布交互任务和系统交互任务两部分。画布交互是指用户通过画布上的交互任务设计多维数据模型,可以实现多维数据模型的点击、拖动、双击等基本的交互操作,实现多维数据模型的建立;系统交互任务则是对各种组件的事件监听,比如按钮的单击事件、右键事件等,通过对组件的事件监听,实现新建、保存、修改等对模型的管理操作。1)交互任务模型在设计多维数据模型的过程中需要涉及到很多的交互任务,比如一个交互任务可能是建立一个事实表,或者是建立一个维度表。其中涉及到一些状态的转换,比如图4多维数据模型的状态图所示,交互任务使用状态控制器进行驱动,状态转换模型的思想是定义一组状态,由一个状态控制器来驱动。当状态控制器监听到外界事件时候,根据所定义的一组状态驱动状态改变,从一个状态转换成另外一个状态。交互任务模型用任务模型和状态转换模型来表示,任务模型是描述用户想进行的交互活动,想做的事情,比如画一条直线、执行一个点击操作或是执行一个拖拽操作。任务可以是一个具体的任务,也可以是一个抽象的任务,抽象任务可以分解为多个具体子任务。子任务是对任务进行分解的产物。为了能更好的对任务进行描述,常常需要将一个大的任务分解为若干步骤,即为子任务。整个任务模型就是一棵倒置的树,每一个叶子节点就是一个子任务。2)事件处理机制为了实现多维数据模型的持久化存储,需要建立客户端与服务器端的事件处理机制。事件可以由键盘、鼠标触发;也可能是外部输入,比如webservice返回;事件还能由组件外观和生命周期发生变化时触发,比如组件的创建或者改变大小。在程序中使用事件监听器监听这些事件,事件监听器采用函数方法响应用户指定的事件。使用组件时,需要先为该组件注册一个事件,然后监听该事件,当所监听的事件被触发时,则分发事件,由响应的eventlistener捕获事件进行响应处理。3.可视化建模工具设计1)总体架构设计总体架构设计图见图5,整个架构自上而下分为三个部分:客户端、服务器端、数据库。客户端基于actionscript实现,它包含建模应用引擎、模型解析引擎、权限管理引擎三个部分,这三个部分相互协作解析来自服务器的多维数据模型,并且转化为actionscript语言,实现模型的可视化。服务器端介于客户端与数据库之间,这部分的作用一方面与客户端进行数据交互,处理来自客户端的复杂业务数据,并且将处理好的业务数据返回给客户端;另一方面与数据库之间进行数据交互,处理来自数据库的数据,或者将处理好的数据存储到数据库。服务器端是基于java语言实现的,采用经典的spring+struts+hibernate架构。数据库端采用postgresql,在客户端建立的多维数据模型传输到服务器端,经过服务器端的解析,转化成结构化的语言,最终存储到数据库中,以供后面的数据分析、数据挖掘使用。客户端采用flex结合actionscript语言开发,除了使用flex已经提供了的可视化组件外,还需要自定义可视化组件用于绘制多维数据模型。基于前面的分析,至少需要自定义三个组件:mfacttable、mdimensiontable、massociation。以mfacttable为例,需要设计组件的外观和事件。一个事实表的外观应当包括组件的名称部分、所关联的关系表部分、以及字段显示区域,这里设计的事实表的外观结构如图6所示。mdimensiontable、massociation的设计方式与mfacttable类似,外观如图7所示。对于这些自定义的组件,还要加入事件监听服务,以便用户在与应用程序进行交互的时候,自定义组件能够根据交互信息进行响应。2)数据交互客户端与服务端的通信框架分为两部分,一部分是基于flex的客户端服务,另外一部分是基于java的服务器端服务,当客户端发生某一具体的交互任务时,客户端的通信服务能够通过框架将具体的任务传递给服务器端,服务器端服务进行处理并返回给客户端,具体如图8所示。3)功能设计可视化建模工具的主要功能模块包含模型管理、快速建模、版本管理、数据映射、自定义模板五大部分。(1)模型管理本工具可以根据不同的行业建立不同的多维数据模型,这些多维数据模型以树的形式展现给用户,用户可以通过模型树对多维数据模型进行管理,实现模型的添加、删除、更新、导入导出、持久化等操作。(2)快速建模本模块内置了多种行业和业务的多维数据模型模板,支持快速建模操作。目前系统内置了实体零售企业、互联网零售企业、生产型企业、软件企业等多种行业20多种不同业务的多维数据模型模板,在对商业智能项目进行多维模型设计的时候,选择对应的模型模板,在模板基础上进行简单配置操作即可生成多维模型。基于内置模板的快速建模流程如图9,具体操作步骤如下:a、首先选择内置的对应模板,模板里有定义好的各种事实表、维度表和关联关系;b、事实表配置,可以选取模板定义好的度量,比如选择日销售额、同比、环比、同期、成本等,也可以自行增加、修改和删除、自定义度量;选择事实表来源;c、维度表配置,可以选取模板定义好的维度,也可以自定义维度;选择维度表来源;d、关联关系配置,模板已经定义好关联关系,如果不满足实际需求,可以根据实际需要修改。e、配置完成后,点击“生成多维模型”按钮自动生成多维模型并存入后台数据库中。(3)版本管理版本管理是为了便于存储、追踪多维模型的修改历史。用户在修改多维数据模型的过程中有时会需要回退到以前某个版本的模型状态,这时候就要对模型进行版本管理。用户在保存模型的时候可以选择保存到当前版本,或者是保存到其他版本,如果选择保存到其他版本,则会重新建立一个版本并且保存,并不会覆盖当前版本模型;如果选择保存到当前版本,则首先把当前版本模型另存一个版本,然后把当前画布内容保存到当前版本。在模型版本管理界面中,用户还可以对以前的版本进行编辑、删除等管理。(4)数据映射管理本工具支持多种数据库,包括postgresql、oracle、sqlserver、mysql等。在多维数据模型转换成物理模型时,可以转换成系统支持的任意一种数据库模型。这些不同的模型,语法并不一样,因此,需要加上数据映射,比如varchar转换成mysql的模型时应该转化成varchar(15)。这样就需要建立一套映射机制,告诉多维数据模型在转化成物理模型过程中具体的数据类型的描述,这样才能支持生成不同数据库的物理模型。系统还可以通过数据映射设置来对映射进行管理,包括添加、删除、修改、保存等操作。(5)自定义模板本工具除了系统内置的数据模型模板外,还支持用户自己定义符合自己工作需要的模型模板。在实际的多维模型设计工作中,模型设计人员很多时候会重复设计某些类型的数据模型,而这些模型具有独特的应用场景,并没有内置在工具模板中。为避免每次都要重复工作,特加入自定义模板的功能,支持用户把自己创建的具有通用性的多维模型存成模板,在以后设计同类型多维模型的时候,可以把对应模板导入,然后进行简单修改即可快速完成一个多维模型的设计工作。本发明对多维数据模型中的事实表facttable、度量cubemeasure、维度表dimensiontable、属性attribute、关联关系association进行了定义和设计,针对多维数据模型设计了一个完整的图元所应该包含的业务信息、可视化属性、事件监听信息、图元绘制信息、图元关系信息等。并且实现了模型和后台数据的相互转换,及模型物理存储。通过对可视化建模过程中的交互任务、客户端与服务器端之间的通信框架进行设计,成功实现了多维数据模型的可视化建模工具,并支持模型管理、快速建模、版本管理、数据映射、自定义模板等功能。上述方法提供了一种面向行业应用的商业智能敏捷建模技术,解决了商业智能项目实施过程中,非专业人员快速设计高质量模型的问题。以上所述是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1