发明内容
针对现有技术中的缺陷,本发明的目的是提供一种多维度统计业务数据的系统。
根据本发明提供的一种多维度统计业务数据的方法,包括:
多维页面初始化步骤:根据后台配置的维度名称将各维度显示在多维统计页面上;
数据存储步骤:将每一条业务数据的信息写入业务数据总表,将业务数据总表中的数据进行提炼,按接口、维度、服务器、站点生成四张简化表;
维度数据表存储步骤:从业务数据总表中,提取出所述业务数据的各个维度的维度值按照不同的时间颗粒度的聚合信息;
页面请求处理步骤:根据用户的点击操作,刷新在当前操作维度上能够执行下钻操作的维度的列表;或者,根据用户的点击操作,生成时间段统计范围、维度值统计过滤条件以及需要统计的维度。
将每一条业务数据的如下信息写入业务数据总表:
-业务数据的时间信息;
-业务数据的各个维度的维度值;
-所述业务数据的各个维度的维度值按照不同的时间颗粒度的聚合信息。
包括:
查询条件处理步骤:根据查询的维度条件确定要查询的数据表,其中,所述要查询的数据表是业务数据总表或者四张简化表;根据维度条件决定是查询简化表还是业务数据总表,若查询的维度只有一个,且存在对应的简化表,则查询简化表;若查询的维度有两个以上,则查询业务数据总表;根据查询的时间范围和系统的颗粒度列表将查询条件拆分成多个数据库查询语句;其中,所述查询条件中包含了时间信息,根据时间信息和颗粒度来将查询条件分成按多个时间段来查询;
数据库查询步骤:根据多维数据库查询语句查询数据库;聚合查询结果;
统计结果显示步骤:刷新当前多维统计查询中需要刷新的维度视图,清除在当前多维统计查询中已失效的前一次多维统计查询的视图。
在所述查询条件处理步骤中,解析查询条件,根据维度查询条件得出查询时间范围、维度值过滤条件和待统计的维度;将时间范围进行分解,得出按不同颗粒度查询的时间段;根据维度值过滤条件存在与否判断需要查询的数据表,若存在维度值过滤条件,则需要查询的表为业务数据总表;若无维度值过滤条件则需要查询的表为维度数据表;根据得出的基于各种颗粒度的查询时间段、待查询的数据表名称、维度值过滤条件以及待统计的维度生成查询语句列表。
统计结果显示步骤中:计算出查询条件中的待统计的维度的所在层级;清除多维统计页面上对此次多维度统计查询无效的、所有低于该层级的维度统计视图;刷新对应层级的维度统计视图。
根据本发明提供的一种多维度统计业务数据的系统,包括:
多维页面初始化模块:根据后台配置的维度名称将各维度显示在多维统计页面上;
数据存储模块:将每一条业务数据的信息写入业务数据总表,将业务数据总表中的数据进行提炼,按接口、维度、服务器、站点生成四张简化表;
维度数据表存储模块:从业务数据总表中,提取出所述业务数据的各个维度的维度值按照不同的时间颗粒度的聚合信息;
页面请求处理模块:根据用户的点击操作,刷新在当前操作维度上能够执行下钻操作的维度的列表;或者,根据用户的点击操作,生成时间段统计范围、维度值统计过滤条件以及需要统计的维度。
将每一条业务数据的如下信息写入业务数据总表:
-业务数据的时间信息;
-业务数据的各个维度的维度值;
-所述业务数据的各个维度的维度值按照不同的时间颗粒度的聚合信息。
包括:
查询条件处理模块:根据查询的维度条件确定要查询的数据表,其中,所述要查询的数据表是业务数据总表或者四张简化表;根据维度条件决定是查询简化表还是业务数据总表,若查询的维度只有一个,且存在对应的简化表,则查询简化表;若查询的维度有两个以上,则查询业务数据总表;根据查询的时间范围和系统的颗粒度列表将查询条件拆分成多个数据库查询语句;其中,所述查询条件中包含了时间信息,根据时间信息和颗粒度来将查询条件分成按多个时间段来查询;
数据库查询模块:根据多维数据库查询语句查询数据库;聚合查询结果;
统计结果显示模块:刷新当前多维统计查询中需要刷新的维度视图,清除在当前多维统计查询中已失效的前一次多维统计查询的视图。
在所述查询条件处理模块中,解析查询条件,根据维度查询条件得出查询时间范围、维度值过滤条件和待统计的维度;将时间范围进行分解,得出按不同颗粒度查询的时间段;根据维度值过滤条件存在与否判断需要查询的数据表,若存在维度值过滤条件,则需要查询的表为业务数据总表;若无维度值过滤条件则需要查询的表为维度数据表;根据得出的基于各种颗粒度的查询时间段、待查询的数据表名称、维度值过滤条件以及待统计的维度生成查询语句列表。
统计结果显示模块中:计算出查询条件中的待统计的维度的所在层级;清除多维统计页面上对此次多维度统计查询无效的、所有低于该层级的维度统计视图;刷新对应层级的维度统计视图。
与现有技术相比,本发明具有如下的有益效果:
1、解决了多维关系统计配置复杂的问题。多维度统计配置简化,用户操作简便。
2、解决了无法在任意维度上灵活切换统计的问题。不同层次的钻取能够同时显示在同一页面上,用户能够总览下钻维度时的各层级维度数据,维度数据展示全面。
3、解决了下钻过程中各维度统计数据无法同时显示、上钻数据时需要重新查询数据库的问题。本发明中,上钻无需再次操作和查询数据库。上钻是下钻的逆操作,是逐步减少一个维度向上再作统计;上钻无需再次操作是因为:在下钻过程中,保留了每次下钻时每个层级上的统计数据和视图,都以表格的形式显示在页面上,并不会清空,所以上钻时不需要再次查询了。
4、解决了查询数据库时性能较低的问题;查询数据库性能提高,维度数据统计页面展示结果迅速。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
如图2所示,本发明提供的多维度统计业务数据的系统,包括以下模块:
一、多维页面初始化模块,其用于:
1)根据后台配置的维度名称将各维度显示在多维统计页面上;
二、数据存储模块,其用于
1)将每一条业务数据的时间信息、各维度的值、各指标的值按设定的颗粒度聚合保存为业务数据总表;颗粒度可通过配置文件灵活配置,可以是1秒、5秒、10秒、1分钟、5分钟、15分钟、1小时、或其他颗粒度。
2)将业务数据总表中的数据进行提炼,按接口、维度、服务器、站点生成四张简化表,按1分钟颗粒度存储。以便在统计第一层级维度时可根据需求查询简化表。
三、页面请求处理模块,其用于:
1)根据用户的点击操作,刷新在当前操作维度上可执行下钻操作的维度列表;
2)根据用户的点击操作,生成时间段统计范围、维度值过滤条件以及需要统计的维度;
四、查询条件处理模块,其用于:
1)根据查询的维度信息确定要查询的数据表
这里的数据表是指包括业务数据总表和四张简化表在内的所有数据表。会根据维度条件去决定是查询简化的数据表还是业务数据总表。
2)根据查询的时间范围和系统的颗粒度列表将查询条件拆分成多个数据库查询语句;
这里的查询条件中包含了时间信息,根据时间信息和颗粒度来将查询条件分成按多个时间段来查询。
如图3,其中查询条件处理模块的操作步骤有:
步骤1:解析查询条件,根据查询条件得出查询时间范围、维度值过滤条件和待统计的维度
第四点中的维度信息是指要查的是哪些维度信息。维度可以是某地区、或者某机构,某交易渠道、某客户号等,是可以将查询细化的一种特征。
查询条件是指完整的查询条件,包括了时间信息(2017年6月底)、维度信息(某地区某客户号等)、要统计的指标(交易量、成功率等)。这里的维度查询条件和查询条件是一个意思。
步骤2:以系统的颗粒度为单位将时间范围进行分解,得出按设定的颗粒度分割查询的时间段
比如查询条件中的时间是2017年6月27日00:09:59到02:01:16分钟之间的数据,则将[00:09:59-02:01:16]时间段按配置的颗粒度(假设配置的颗粒度为1秒、5秒、15分钟、30分钟、1小时)拆为以下几份:
[00:09:59,00:10:00)(1秒钟颗粒度)
[00:10:00,00:15:00)(5分钟颗粒度)
[00:15:00,00:30:00)(15分钟颗粒度)
[00:30:00,01:00:00)(30分钟颗粒度)
[01:00:00,02:00:00)(1小时颗粒度)
[02:00:00,02:01:00)(1分钟颗粒度)
[02:01:00,02:01:15)(15秒颗粒度)
[02:01:15,02:01:16)(1秒颗粒度)
步骤3:根据维度信息确定需要查询的数据表。若查询的维度只有一个,且存在对应的简化表,则查询简化表;若查询的维度有两个以上,则查询业务数据总表。上文的维度信息/维度条件和这里的维度过滤条件是相同的意思。
步骤4:根据步骤2和3中得出的基于各种颗粒度的查询时间段、待查询的数据表名称、维度值过滤条件以及待统计的维度生成查询语句列表
五、数据库查询模块,其用于:
1)根据多维数据库查询语句查询数据库;
2)聚合查询结果;
六、统计结果显示模块,其用于:
1)刷新当前多维统计查询中需要刷新的维度视图
2)清除在当前多维统计查询中已失效的前一次多维统计查询的视图;
如图4,其中统计结果显示模块的操作步骤有:
步骤1、计算出查询条件中的待统计的维度的所在层级
步骤2、清除页面上对此次多维度统计查询无效的、所有低于该层级的维度统计视图
步骤3、刷新对应层级的维度统计视图;
如图5,前端读取维度配置文件,将所有维度显示在多维统计页面上。用户操作页面显示的维度时,前端生成多维查询条件并发送到后端,后端进行分析后生成多条多维查询语句。多维查询语句被发送到数据库端,数据库执行所有的查询语句,返回查询结果集。后端将数据库返回的所有结果集进行聚合,得到最后的结果数据并发送给前端页面。前端页面根据用户当时的维度操作和最终的结果集,来刷新多维统计页面中的统计视图。通过本系统,用户可以在任意层级的维度上切换统计维度、下钻维度,高效的获取维度统计数据,并保留下钻维度过程中各父级维度统计视图,无需再次操作。
下面对本发明进行更为具体的说明。根据本系统、查询条件处理模块以及统计结果展示模块的操作步骤所提供的方法,具体实施如下:
1、根据业务数据统计的需求配置多个维度,如交易类型、交易渠道、客户端IP、服务端IP、返回码等。
2、建立多维度数据库,包括一张业务数据总表和一张维度数据表。其中每张数据表中的维度数据按所有时间颗粒度均进行聚合存储。
3、多维统计页面上显示配置的所有维度。
4、用户可选择显示的任意维度进行统计,即下钻操作,关联子层级维度。所有上级维度视图不变,添加当前维度的下一层级维度统计视图,刷新刚添加的维度视图对应的可关联维度表。
5、当待操作的某一层级维度的可关联维度列表不为空时,即存在其他可关联维度,可以继续执行维度切换和下钻操作,即进入步骤6或步骤7。若该层级维度存在父级维度,则还执行步骤8,切换父级维度。
6、当用户在当前层级上执行切换维度操作时,当前层级的所有上级维度视图不变,刷新当前层级的维度视图。执行完该步骤后,可回到步骤5继续往下执行。
7、当用户在当前层级上执行下钻维度操作时,当前层级维度视图及所有上级维度视图不变,添加下一层级的维度视图。执行完该步骤后,可回到步骤5继续往下执行。
8、当前层级维度存在父级维度时,可切换父级维度进行统计,切换的维度所在层级的所有父级维度视图不变,刷新被切换的维度视图,及其对应的可关联维度表,清除切换维度的所有下级维度视图。执行完该步骤后,可回到步骤5继续往下执行。
在本发明提供的多维度统计业务数据的方法中,包括:
多维页面初始化步骤:根据后台配置的维度名称将各维度显示在多维统计页面上;
数据存储步骤:将每一条业务数据的如下信息写入业务数据总表:业务数据的时间信息、业务数据的各个维度的维度值、所述业务数据的各个维度的维度值按照不同的时间颗粒度的聚合信息。例如1分钟时间颗粒度、5分钟时间颗粒度、15分钟时间颗粒度、1小时时间颗粒度。将业务数据总表中的数据进行提炼,按接口、维度、服务器、站点生成四张简化表,按1分钟颗粒度存储。以便在统计第一层级维度时可根据需求查询简化表。从业务数据总表中,提取出所述业务数据的各个维度的维度值按照不同的时间颗粒度的聚合信息;例如1分钟时间颗粒度、5分钟时间颗粒度、15分钟时间颗粒度、1小时时间颗粒度;其中,维度是数据的特征,比如身份信息中的性别、籍贯,是数据中存在的特性;指标是一个统计值,比如记录数、通过率,是统计得到的,并不存在于原始数据中。维度和指标的关系可以这样理解:指标是用统计学的方法将符合某些特征的原始数据归类、得到的量化的结论。
页面请求处理步骤,包括:下钻维度列表刷新步骤:根据用户的点击操作,刷新在当前操作维度上能够执行下钻操作的维度的列表;统计条件生成步骤:根据用户的点击操作,生成时间段统计范围、维度值统计过滤条件以及需要统计的维度。
查询条件处理步骤:
1)根据查询的维度条件确定要查询的数据表,其中,所述要查询的数据表是业务数据总表或者四张简化表;根据维度条件决定是查询简化表还是业务数据总表;
2)根据查询的时间范围和系统的颗粒度列表将查询条件拆分成多个数据库查询语句;其中,所述查询条件中包含了时间信息,根据时间信息和颗粒度来将查询条件分成按多个时间段来查询。
查询条件处理步骤包括:
步骤1:解析查询条件,根据维度查询条件得出查询时间范围、维度值过滤条件和待统计的维度
步骤2:以系统的颗粒度为单位将时间范围进行分解,得出按1小时颗粒度查询、按15分钟颗粒度查询、按5分钟颗粒度查询、按1分钟颗粒度查询的时间段
步骤3:根据维度值过滤条件存在与否判断需要查询的数据表。若存在维度值过滤条件,则需要查询的表为业务数据总表;若无维度值过滤条件则需要查询的表为维度数据表
步骤4:根据步骤2和3中得出的基于各种颗粒度的查询时间段、待查询的数据表名称、维度值过滤条件以及待统计的维度生成查询语句列表
数据库查询步骤:根据多维数据库查询语句查询数据库;聚合查询结果;
统计结果显示步骤:刷新当前多维统计查询中需要刷新的维度视图,清除在当前多维统计查询中已失效的前一次多维统计查询的视图;
统计结果显示步骤中:计算出查询条件中的待统计的维度的所在层级;清除多维统计页面上对此次多维度统计查询无效的、所有低于该层级的维度统计视图;刷新对应层级的维度统计视图;
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。