数据过滤方法及装置与流程

文档序号:16146758发布日期:2018-12-05 16:33阅读:210来源:国知局
本发明涉及数据网络通信领域,尤其是涉及到数据过滤方法及装置。
背景技术
:现代决策人员和管理人员往往希望从不同的角度来审视业务情况,比如从时间、地域、产品、客户等来看业务量、失败量、成功率等业务统计数字。每一个分析的角度可以叫做一个维,因此,我们把多角度分析方式称为多维分析。联机分析处理(又称onlineanalyticalprocessing,简称olap)是一种多维分析方法,其共享多维数据的、针对特定问题进行联机数据访问和分析,使分析人员能够从多个角度对从原始数据中转化出来的、能够真正为用户所理解的信息进行快速、一致、交互地存取,从而获得对数据的更深入了解。olap的基本多维分析操作有钻取、切片(slice)和切块(dice)、以及旋转(pivot)等。钻取是改变维的层次,变换分析的粒度。它包括向上钻取(rollup)和向下钻取(drilldown)。向上钻取是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而向下钻取则相反,它从汇总数据深入到细节数据进行观察。现有的bi工具,例如ibm公司的cognos,olap报表功能一般是指定行和/或列上的维度层次,再指定一个或多个指标在行或列上生成所需的报表,上面所有的针对多维的分析手段的前提条件就是这个维度必须出现在行或者列上。相关技术中通过拖拽的方式设置行、列、切片维度,通过分析展现引擎解析成mdx语言,然后olap分析工具把mdx转换为关系数据库的sql,查询得到过滤数据,返回给olap展现平台。这样的olap分析工具都存在一个问题,支持的过滤只能是对维度做切片,一旦某个维度作为切片维度,它就不能在行列轴上,也就意味着该维度不会出现在结果集里面,无法对该维度进行分析。比如对于时间、地域、产品三个维度。举例而言,选定时间作为切片维度也即过滤条件,假设限定为2015年,时间就没办法再出现在结果中,统计的数据是产品、地域在2015年的总和,这时候如果想分析比较下每个月的数据是实现不了的。对于大数据量来说,增加分析数据的限定条件是必须的,同时还希望对限定的维度下进行更细粒度的分析。针对相关技术中对于选为过滤条件的维度无法向下钻取数据的问题,现有技术还未提出有效的解决方案。技术实现要素:本发明提供了数据过滤方法及装置,解决了相关技术中对于选为过滤条件的维度无法向下钻取数据的问题。根据本发明的一个方面,提供一种数据过滤方法,包括:在过滤维度出现在行列轴上的情况下,根据该过滤维度及选择参数查询过滤维度配置文件获取过滤条件,其中,该过滤维度包括至少一个层级,该选择参数与该层级对应;根据该过滤条件生成结构化查询语言sql;根据该sql进行数据过滤。进一步,在该根据该sql进行数据过滤之前,在该过滤维度未出现在该行列轴上的情况下,通过联机分析处理olap将多维表达式mdx解析成该sql。进一步,该根据该过滤维度及选择参数查询过滤维度配置文件获取过滤条件包括:根据该过滤维度名称和该层级查询该过滤维度配置文件获取字符串信息;形成该选择参数和该字符串信息的对应关系以得到该过滤条件。进一步,根据该过滤条件生成sql包括:将该过滤条件作为限制条件写入该mdx解析结果生成sql。进一步,在该根据该过滤维度名称和该层级查询该过滤维度配置文件获取字符串信息之前,生成包括多个维度节点的过滤维度配置文件,其中,该维度节点包括一个表子节点和至少一个层级子节点。根据本发明的另一方面,提供一种数据过滤装置,包括:获取模块,用于在过滤维度出现在行列轴上的情况下,根据该过滤维度及选择参数查询过滤维度配置文件获取过滤条件,其中,该过滤维度包括至少一个层级,该选择参数与该层级对应;第一生成模块,用于根据该过滤条件生成结构化查询语言sql;过滤模块,用于根据该sql进行数据过滤。进一步,该数据过滤装置还包括解析模块,用于在该过滤维度未出现在该行列轴上的情况下,通过联机分析处理olap将多维表达式mdx解析成该sql。进一步,该数据过滤装置还包括该获取模块包括:第一获取单元,用于根据该过滤维度名称和该层级查询该过滤维度配置文件获取字符串信息;形成单元,用于形成该选择参数和该字符串信息的对应关系以得到该过滤条件。进一步,该第一生成模块包括:生成单元,用于将该过滤条件作为限制条件写入该mdx解析结果生成sql。进一步,该数据过滤装置还包括第二生成模块,用于生成包括多个维度节点的过滤维度配置文件,其中,该维度节点包括一个表子节点和至少一个层级子节点。通过本发明,采用过滤维度出现在行列轴上的情况下在过滤维度配置文件层面完成数据过滤的技术方案,解决了相关技术中对于选为过滤条件的维度无法向下钻取数据的问题,支持对选为过滤条件维度进行更细细粒度的分析。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据本发明实施例的数据过滤方法的流程图;图2是根据本发明实施例的数据过滤装置的结构框图;图3是根据本发明优选实施例的数据过滤装置的结构框图一;图4是根据本发明优选实施例的数据过滤装置的结构框图二;图5是根据本发明优选实施例的数据过滤装置的结构框图三;图6是根据本发明优选实施例的数据过滤装置的结构框图四。具体实施方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。在本实施例中提供了一种数据过滤方法及装置,图1是根据本发明实施例的异常处理方法的流程图一,如图1所示,该流程包括如下步骤:步骤s102,在过滤维度出现在行列轴上的情况下,根据该过滤维度及选择参数查询过滤维度配置文件获取过滤条件,其中,该过滤维度包括至少一个层级,该选择参数与该层级对应;步骤s104,根据该过滤条件生成结构化查询语言sql;步骤s106,根据该sql进行数据过滤。可选地,在该根据该sql进行数据过滤之前,在该过滤维度未出现在该行列轴上的情况下,通过联机分析处理olap将多维表达式mdx解析成该sql。mdx(multidimensionalexpressions)是一种多维数据库的查询语言,可利用开源的程序将mdx转换为sql来查询关系型数据库。mdx的结构是select…oncolumns,….onrows,from….where…。根据相关技术中mdx语言的要求,对出现在行和列轴上的维度不能进行数据过滤,也即select后面的维度,不能同时出现在where后面。优选地,一种根据该过滤维度及选择参数查询过滤维度配置文件获取过滤条件为,根据该过滤维度名称和该层级查询该过滤维度配置文件获取字符串信息,形成该选择参数和该字符串信息的对应关系以得到该过滤条件。可选地,通过将该过滤条件作为限制条件写入该mdx解析结果生成sql从而根据该过滤条件生成sql。具体的,根据参数维度的名称和具体的层级,在配置文件找到对应的物理表和字段。拼接成关系数据库的where条件,得到字符串格式:tablename.columname=….,具体的取值由页面上的选择参数决定。页面解析的mdx中无where条件,mdx的结构是select…oncolumns,….onrowsfrom….。由olap程序解析mdx得到sql,sql中添加到查询条件wheretablename.columnname=….。在关系数据库中查询得到数据返回给展现平台。值得一提的是,在该根据该过滤维度名称和该层级查询该过滤维度配置文件获取字符串信息之前,生成包括多个维度节点的过滤维度配置文件,其中,该维度节点包括一个表子节点和至少一个层级子节点。收集所有可能作为参数过滤数据的维度信息,根据上述维度信息,建立xml格式的过滤维度配置文件。每个维度作为一个节点存在,<dimensionname=”维度名字”>。每个维度节点包括两类子节点,关系数据表(table)和层次(level),其中每个维度节点只有一个table节点,定义关系数据库中表的名字。level节点可以有多个,因为一个维度中可以有多个层次。具体的各维度节点的关系数据表可以为:具体的,对需要限制的维度建立过滤维度配置文件,配置对应的关系数据库表和字段名称。作为数据过滤条件的维度通过该过滤维度配置文件的表名字和字段名字,自动拼接出sql的where条件。不带过滤维度的mdx语言(olap的查询语言)在转换为sql之后,与自动拼接出的sql组合,生成完整的sql并传给后台关系数据库,完成数据过滤。该过滤维度配置文件的格式可以为xml。通过上述步骤,在过滤维度出现在行列轴上的情况下放弃目前olap层面的过滤维度过滤方法,通过过滤维度配置文件层面完成数据过滤,克服了相关技术中作为过滤数据的维度不能出现在行列轴上的问题,解决了相关技术中对于选为过滤条件的维度无法向下钻取数据的问题,增强了查询效率,同时也满足了过滤维度同样可以在展现平台进行钻取,变换等分析。举例而言,假设目前的模型,只有一个维度,即作为参数,又在页面显示。关系数据库中事实表serv_fact有三年的数据,页面只想针对某一年的数据进行分析展示。时间维度:time,包括三个层级——年,月,日度量值:业务量步骤s1,确定切片维度为time步骤s2,设计配置文件,time维度有三个层级。该配置文件可以设置为:步骤s3,页面拖时间维度到行,业务量到列,参数选择时间维度的年层级,选择值为2015。步骤s4,由于时间维度作为切片参数,且作为行,根据s2的配置文件,得到参数字符串”time_dim.year=2015”。步骤s5,mdx解析得到初始sql,select业务量,yearfromserv_fact,time_dimwhereserv_fact.timeid=time_dim.timeid。值得一提的是,解析得到的初始sql里面的where不是过滤条件,是事实表和维度表关联的条件。根据上一步得到的参数字符串与初始sql,得到最终的sql,select业务量,yearfromserv_fact,time_dimwhereserv_fact.timeid=time_dim.timeidandtime_dim.year=2015。根据最终sql查询,可以得到过滤后的结果集,同时页面可以对时间进行钻取,查询2015每个月的数据,在往下可以看每天的数据,即实现了数据过滤,又不影响数据分析。图2是根据本发明实施例的数据过滤装置的结构框图,如图2所示,该装置包括:获取模块22,用于在过滤维度出现在行列轴上的情况下,根据该过滤维度及选择参数查询过滤维度配置文件获取过滤条件,其中,该过滤维度包括至少一个层级,该选择参数与该层级对应;第一生成模块24,用于根据该过滤条件生成结构化查询语言sql;过滤模块26,用于根据该sql进行数据过滤。图3是根据本发明优选实施例的数据过滤装置的结构框图一,如图3所示,该装置还包括:解析模块32,用于在该过滤维度未出现在该行列轴上的情况下,通过联机分析处理olap将多维表达式mdx解析成该sql。图4是根据本发明优选实施例的数据过滤装置的结构框图二,如图4所示,该获取模块22包括:第一获取单元42,用于根据该过滤维度名称和该层级查询该过滤维度配置文件获取字符串信息;形成单元44,用于形成该选择参数和该字符串信息的对应关系以得到该过滤条件。图5是根据本发明优选实施例的数据过滤装置的结构框图三,如图5所示,该第一生成模块24包括:生成单元52,用于将该过滤条件作为限制条件写入该mdx解析结果生成sql。图6是根据本发明实施例数据过滤装置的结构框图四,如图6所示,该装置包括:第二生成模块62,用于生成包括多个维度节点的过滤维度配置文件,其中,该维度节点包括一个表子节点和至少一个层级子节点。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1