CN109241195A - 排名的计算方法及装置 - Google Patents
排名的计算方法及装置 Download PDFInfo
- Publication number
- CN109241195A CN109241195A CN201710533015.8A CN201710533015A CN109241195A CN 109241195 A CN109241195 A CN 109241195A CN 201710533015 A CN201710533015 A CN 201710533015A CN 109241195 A CN109241195 A CN 109241195A
- Authority
- CN
- China
- Prior art keywords
- dimension
- ranking
- dimension member
- index value
- checked
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明公开了一种排名的计算方法及装置,涉及数据处理技术领域,为了解决现有技术中,在计算维度成员排名过程中,由于同类别数据被存储在多个待查询数据库中导致计算维度成员排名的计算速度慢、计算效率低的问题。本发明的方法包括:接收数据查询指令,数据查询指令中包括查询维度及其对应的前M个维度成员的排名;在至少两个待查询数据库中,分别查找与查询维度对应的维度成员排名,其中,待查询数据库中包含有查询维度对应的前N个维度成员的排名结果,N大于或者等于M;对至少两个维度成员排名中相同的维度成员进行同项合并,并根据同项合并后的维度成员重新计算前M个维度成员的排名。本发明适合应用于计算维度成员排名过程中。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种排名的计算方法及装置。
背景技术
随着互联网技术的日益发展,为了给企业决策者提供多角度的数据支持,越来越多的企业开始使用联机分析处理(On-Line Analytical Processing,OLAP)技术对企业数据进行多维度分析处理。在使用OLAP技术对数据进行多维度分析的过程中,通过不同的维度剖析对应的各种指标,根据某一维度对应的指标值的大小对该维度对应的维度成员进行排名,企业决策者可以根据排名结果更加直观的做出相应的决策。
目前,用户根据查询条件对OLAP数据库进行查询,通过计算获取某一维度下的维度成员排名。但是当该维度对应的同类别的数据由于来源不同或使用的处理策略不同等原因,被存储在不同的OLAP数据库中时,进行维度成员排名计算,需要根据查询条件对每一个OLAP数据库进行查询,并对查询结果进行汇总计算。例如,用户A需要查询某一时间段各卫视的收视排名,由于数据来源不同,该时间段各卫视收视情况的相关数据被存储在三个不同的OLAP数据库中,现根据查询条件分别对三个OLAP数据库进行查询,并对结果进行汇总计算,最终得到该时间段各卫视的收视排名。
发明人在实现上述发明过程中,发现现有技术中,当需要进行排名分析的数据量增大时,数据被存储在多个OLAP数据库中,需要对每一个OLAP数据库分别进行查询操作,通过计算获取每一个OLAP数据库中的维度成员排名,并将多个维度成员排名进行汇总计算,得到最终的维度成员排名,因此导致计算维度成员排名的速度较慢、效率较低。
发明内容
有鉴于此,本发明提供的排名的计算方法及装置,主要目的在于克服在计算维度成员排名过程中,由于同类别数据被存储在多个待查询数据库中导致计算维度成员排名的计算速度慢、计算效率低的问题,从而加快计算维度成员排名的计算速度以及提高计算效率。
为达到上述目的,本发明提供如下技术方案:
第一方面,本发明提供了一种排名的计算方法,该方法包括:
接收数据查询指令,所述数据查询指令中包括查询维度及其对应的前M个维度成员的排名;
在至少两个待查询数据库中,分别查找与所述查询维度对应的维度成员排名,其中,所述待查询数据库中包含有所述查询维度对应的前N个维度成员的排名结果,N大于或者等于M;
对至少两个维度成员排名中相同的维度成员进行同项合并,并根据同项合并后的维度成员重新计算前M个维度成员的排名。
可选的,在至少两个待查询数据库中,分别查找与所述查询维度对应的维度成员排名之前,所述方法还包括:
基于所述查询维度编写查询表达式;
根据同一查询表达式分别在所述至少两个待查询数据库中查找与所述查询维度对应的维度成员的第一指标值;
在不同的待查询数据库中,分别根据所述第一指标值及预设排名上限进行降序排名,得到至少两个所述维度成员排名,其中,所述预设排名上限等于N。
可选的,在接收数据查询指令之前,所述方法还包括:
分别计算第二指标值;其中,所述第二指标值为对所述待查询数据库中排名超过所述预设排名上限的所有维度成员对应的指标值,进行累加后的指标值;
将所述超过所述预设排名上限的所有维度成员作为待查询数据库的其他项,生成所述其他项与所述第二指标值之间的映射关系;
在不同的待查询数据库中,将对应的维度成员排名与所述第二指标值进行汇总,得到数据集合;
将所述各个待查询数据库中的所述数据集合进行分别存储。
可选的,对至少两个维度成员排名中相同的维度成员进行同项合并包括:
判断至少两个所述维度成员排名中的维度成员是否一致;
若一致,则基于相同维度成员对所述维度成员排名中对应的指标值进行聚合处理;
若不一致,则获取不一致的维度成员,并设置缺失维度成员在所述维度成员排名中对应的指标值为空值;对所述维度成员排名中相同维度成员的指标值进行聚合处理。
可选的,在根据同项合并后的维度成员重新计算前M个维度成员的排名之后,所述方法还包括:
将重新计算排名后的维度成员对应的指标值进行第一累加计算,并将不同待查询数据库中的其他项对应的指标值进行第二累加计算;
根据所述第一累加计算及所述第二累加计算,确定指标值总和;
根据每个维度成员对应的指标值大小与所述指标值总和,计算各个维度成员所占比重。
第二方面,本发明还提供一种排名的计算装置,该装置包括:
接收单元,用于接收数据查询指令,所述数据查询指令中包括查询维度及其对应的前M个维度成员的排名;
第一查找单元,用于在至少两个待查询数据库中,分别查找与所述接收单元接收的所述数据查询指令中包括的所述查询维度对应的维度成员排名,其中,所述待查询数据库中包含有所述查询维度对应的前N个维度成员的排名结果,N大于或者等于M;
合并单元,用于对所述第一查找单元查找到的至少两个维度成员排名中相同的维度成员进行同项合并;
第一计算单元,用于根据所述合并单元同项合并后的维度成员重新计算前M个维度成员的排名。
可选的,所述装置还包括:
编写单元,用于所述第一查找单元在至少两个待查询数据库中,分别查找与所述查询维度对应的维度成员排名之前,基于所述查询维度编写查询表达式;
第二查找单元,用于根据所述编写单元编写的同一查询表达式分别在所述至少两个待查询数据库中查找与所述查询维度对应的维度成员的第一指标值;
排名单元,用于在不同的待查询数据库中,分别根据所述第二查找单元查找的所述第一指标值及预设排名上限进行降序排名,得到至少两个所述维度成员排名,其中,所述预设排名上限等于N。
可选的,所述装置还包括:
第二计算单元,用于在所述接收单元接收数据查询指令之前,分别计算第二指标值;其中,所述第二指标值为对所述待查询数据库中排名超过所述预设排名上限的所有维度成员对应的指标值,进行累加后的指标值;
生成单元,用于将所述超过所述预设排名上限的所有维度成员作为待查询数据库的其他项,生成所述其他项与所述第二计算单元计算的所述第二指标值之间的映射关系;
汇总单元,用于在不同的待查询数据库中,将对应的维度成员排名与所述第二计算单元计算的所述第二指标值进行汇总,得到数据集合;
存储单元,用于将所述汇总单元得到的所述各个待查询数据库中的所述数据集合进行分别存储。
可选的,所述合并单元包括:
判断模块,用于判断至少两个所述维度成员排名中的维度成员是否一致;
聚合模块,用于当所述判断模块判断至少两个所述维度成员排名中的维度成员一致时,基于相同维度成员对所述维度成员排名中对应的指标值进行聚合处理;
设置模块,用于当所述判断模块判断至少两个所述维度成员排名中的维度成员不一致时,获取不一致的维度成员,并设置缺失维度成员在所述维度成员排名中对应的指标值为空值;
所述聚合模块,还用于对所述维度成员排名中相同维度成员的指标值进行聚合处理。
可选的,所述装置还包括:
第三计算单元,用于在所述第一计算单元根据同项合并后的维度成员重新计算前M个维度成员的排名之后,将重新计算排名后的维度成员对应的指标值进行第一累加计算,并将不同待查询数据库中的其他项对应的指标值进行第二累加计算;
确定单元,用于根据所述第三计算单元计算的所述第一累加计算及所述第二累加计算,确定指标值总和;
第四计算单元,用于根据每个维度成员对应的指标值大小与所述确定单元确定的所述指标值总和,计算各个维度成员所占比重。
为了实现上述目的,根据本发明的第三方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的排名的计算方法。
为了实现上述目的,根据本发明的第四方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的排名的计算方法。
借由上述技术方案,本发明提供的技术方案至少具有下列优点:
本发明提供的一种排名的计算方法及装置,本发明能够预先根据某一查询维度在存储该查询维度对应数据的多个待查询数据库中,分别计算该查询维度对应的维度成员排名,在后续查询过程中,当接收到包括该查询维度的不同数据查询指令时,可以直接在多个待查询数据库中查找该查询维度对应的维度成员排名结果,并根据多个维度成员排名结果计算与数据查询指令匹配的维度成员排名,与现有技术中根据接收到的数据查询指令,在存储该数据查询指令中包括的查询维度对应数据的多个待查询数据库中,分别计算该查询维度对应的维度成员排名相比,本发明无需根据包括相同查询维度的不同数据查询指令,再次分别计算多个待查询数据库中该查询维度对应的维度成员排名,从而加快了计算维度成员排名的计算速度以及提高了计算效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种排名的计算方法流程图;
图2示出了本发明实施例提供的另一种排名的计算方法流程图;
图3示出了本发明实施例提供的一种排名的计算装置的组成框图;
图4示出了本发明实施例提供的另一种排名的计算装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种排名的计算方法,如图1所示,该方法根据用户的查询条件,在多个待查询数据库中直接查找预先计算好的查询维度对应的维度成员排名结果,根据预先计算好的多个维度成员排名结果计算与用户查询条件匹配的维度成员排名,加快了计算维度成员排名的计算速度以及提高了计算效率,该方法包括:
101、接收数据查询指令。
其中,数据查询指令为根据用户的实际查询条件确定的查询指令,数据查询指令中包括用户实际查询过程中所使用的查询维度以及用户实际需要查询该查询维度对应的前M个维度成员的排名,在本实施例中,M为正整数。
在本发明实施例中,用户根据实际查询条件确定数据查询指令,接收用户发送的数据查询指令,以便后续查找与该数据指令匹配的维度成员排名。
例如,用户A在第一次查询过程中,需要计算在2017年5月12日19:00至22:00时间段内各卫视频道在广东省和河北省两地的收视排名的前5名时,根据用户A在该次查询过程中使用的查询条件确定对应的数据查询指令,数据查询指令包括的内容为“在2017年5月12日19:00至22:00时间段内各卫视频道在广东省和河北省两地的收视排名的前5名”;用户A在第二次查询过程中,需要计算在2017年5月12日19:00至22:00时间段内各卫视频道在广东省、河北省和辽宁省三地的收视排名的前10名时,根据用户A在该次查询过程中使用的查询条件确定对应的数据查询指令,数据查询指令包括的内容为“在2017年5月12日19:00至22:00时间段内各卫视频道在广东省、河北省和辽宁省三地的收视排名的前10名”。
102、在至少两个待查询数据库中,分别查找与查询维度对应的维度成员排名。
其中,待查询数据库为存储有查询维度对应的前N个维度成员的排名结果的数据库,待查询数据库中存储的维度成员排名中包括的维度成员个数大于或者等于数据查询指令中包括的用户需要查询的维度成员排名中的维度成员个数,即N大于或者等于M,在本实施例中,M和N为正整数。由于与查询维度对应数据的数据来源不同或者使用的数据处理策略不同,存储查询维度对应数据的待查询数据库的数量应该至少为两个,即存储查询维度对应的维度成员排名结果的待查询数据库的数量应该至少为两个。但是,当存储查询维度对应的维度成员排名结果的待查询数据库为一个时,同样适用于图1所示的方法。待查询数据库为能够进行联机分析处理的数据库,用户在能够进行联机分析处理的数据库中,可以通过不同的维度剖析对应的各种指标,根据其中某一维度对应的指标值大小对该维度对应的维度成员进行排名,用户根据维度成员排名可以更加直观的对数据进行分析。
在本发明实施例中,在步骤101接收到根据用户的实际查询条件确定的数据查询指令后,在至少两个待查询数据库中,分别查找与数据查询指令中包括的查询维度对应的维度成员排名。
对于本发明实施例,具体应用场景可以如下所示,但不限于此包括:
用户A在一次查询过程中,根据查询条件确定对应的数据查询指令为“在2017年5月12日19:00至22:00时间段内各卫视频道在广东省和河北省两地的收视排名的前5名”。由于数据采集的地域不同或者各省份使用数据采集系统的版本不同,各卫视频道在各省份的收视数据被分别存储在不同的数据库中,因此,对应的各卫视频道在各省份的收视排名结果也被分别存储在不同的数据库中,例如,在2017年5月12日19:00至22:00时间段内,在广东省各卫视频道的收视前20名的收视排名结果被存储在数据库A中;在2017年5月12日19:00至22:00时间段内,在河北省各卫视频道的收视前20名的收视排名结果被存储在数据库B中。根据接收到的数据查询指令,在数据库A中查找获得:在2017年5月12日19:00至22:00时间段内,在广东省各卫视频道的收视前20名的收视排名结果;在数据库B中查找获得:在2017年5月12日19:00至22:00时间段内,在河北省各卫视频道的收视前20名的收视排名结果。
103、对至少两个维度成员排名中相同的维度成员进行同项合并,并根据同项合并后的维度成员重新计算前M个维度成员的排名。
在本发明实施例中,在步骤102分别在至少两个待查询数据库中,查找得到至少两个维度成员排名结果之后,首先,对查找得到的至少两个维度成员排名结果中相同的维度成员进行同项合并;然后,根据同项合并后的维度成员重新计算排名;最后,根据重新计算的维度成员排名和用户的实际查询条件,确定前M个维度成员的排名为查询结果。
例如,根据用户A在一次查询过程中的查询条件确定对应的数据查询指令为“在2017年5月12日19:00至22:00时间段内各卫视频道在广东省和河北省两地的收视排名的前5名”。在数据库A和数据库B中分别获取得到:在2017年5月12日19:00至22:00时间段内,在广东省各卫视频道的收视前20名的收视排名结果A以及在2017年5月12日19:00至22:00时间段内,在河北省各卫视频道的收视前20名的收视排名结果B后,将收视排名结果A和收视排名结果B中,相同的卫视频道以及对应的收视次数进行合并,并根据合并后的各卫视频道以及对应的收视次数重新计算排名,得到在广东省和河北省两地各卫视频道的收视排名X,并将收视排名前5名的卫视频道以及对应的收视次数作为查询结果,即为在2017年5月12日19:00至22:00时间段内各卫视频道在广东省和河北省两地的收视排名前5的卫视频道。
本发明实施例提供的一种排名的计算方法,本发明实施例能够预先根据某一查询维度在存储该查询维度对应数据的多个待查询数据库中,分别计算该查询维度对应的维度成员排名,在后续查询过程中,当接收到包括该查询维度的不同数据查询指令时,可以直接在多个待查询数据库中查找该查询维度对应的维度成员排名结果,并根据多个维度成员排名结果计算与数据查询指令匹配的维度成员排名,与现有技术中根据接收到的数据查询指令,在存储该数据查询指令中包括的查询维度对应数据的多个待查询数据库中,分别计算该查询维度对应的维度成员排名相比,本发明实施例无需根据包括相同查询维度的不同数据查询指令,再次分别计算多个待查询数据库中该查询维度对应的维度成员排名,从而加快了计算维度成员排名的计算速度以及提高了计算效率。
以下为了更加详细地说明,本发明实施例提供了另一种排名的计算方法,特别是在基于同一查询维度分别在多个待查询数据库中,计算查询维度对应的维度成员排名的具体方法与对不同维度成员排名中相同维度成员进行同项合并的方法以及计算每个维度成员所占比重的具体方法,具体如图2所示,该方法包括:
201、基于查询维度编写查询表达式。
在本发明实施例中,基于用户的实际查询需求选取使用的查询维度编写对应的查询表达式,其中,查询表达式为SQL查询语句,是根据结构化查询语言编写的对应语句。
例如,用户A需要计算在2017年5月12日19:00至22:00时间段内各卫视频道的收视排名,根据用户A的实际查询需求确定选取的查询维度为“收视情况”,根据选取的查询维度和用户A的实际查询需求编写对应的结构化查询语句,其中,结构化查询语句中包括用户A的查询需求“在2017年5月12日19:00至22:00时间段内各卫视频道的收视排名”以及查询维度“收视情况”。
202、根据同一查询表达式分别在至少两个待查询数据库中查找与查询维度对应的维度成员的第一指标值。
在本发明实施例中,根据步骤201中编写的结构化查询语句分别在多个待查询数据库中查找与结构化查询语句中包含的查询维度对应的每个维度成员的具体指标值。
对于本发明实施例,具体应用场景可以如下所示,但不限于此包括:
用户A需要计算在2017年5月12日19:00至22:00时间段内各卫视频道的收视排名,由于数据采集的地域不同或者各省份使用数据采集系统的版本不同,各卫视频道在各省份的收视数据被分别存储在不同的数据库中,例如,在2017年5月12日19:00至22:00时间段内,在广东省内采集各卫视频道的收视数据被存储在数据库A中,具体的,如表1所示:
表1
频道 | 收视次数 |
CCTV-1 | 105 |
CCTV-5 | 80 |
江苏卫视 | 90 |
湖南卫视 | 120 |
北京卫视 | 85 |
东方卫视 | 95 |
浙江卫视 | 100 |
...... | ...... |
在2017年5月12日19:00至22:00时间段内,在河北省采集各卫视频道的收视数据被存储在数据库B中,具体的,如表2所示:
表2
频道 | 收视次数 |
北京卫视 | 95 |
CCTV-5 | 90 |
浙江卫视 | 100 |
湖南卫视 | 130 |
CCTV-1 | 110 |
东方卫视 | 115 |
江苏卫视 | 105 |
...... | ...... |
在上述表1和表2中,各卫视频道的收视数据以无规则形式进行排序。表1和表2中分别记录着在2017年5月12日19:00至22:00时间段内,广东省和河北省两地各卫视频道的名称以及各卫视频道对应的收视次数的数据。
需要说明的是,由于数据采集的地域不同或者各省份使用数据采集系统的版本不同,各卫视频道在各省份的收视数据被分别存储在不同的数据库中,例如,辽宁省的各卫视频道收视数据被存储在数据库C中、山东省的各卫视频道收视数据被存储在数据库D中等等,在此不一一举例。
现使用根据用户A的查询需求“在2017年5月12日19:00至22:00时间段内各卫视频道的收视排名”以及查询维度“收视情况”编写的结构化查询语句,分别查询上述A、B、C、D等数据库中存储的在在2017年5月12日19:00至22:00时间段内各卫视频道在各省份的收视数据。
例如,查询数据库A中表1包含的在2017年5月12日19:00至22:00时间段内各卫视频道在广东省的收视数据,获取查询维度“收视情况”对应的每个维度成员的具体指标值,即维度成员“CCTV-1”以及对应的具体指标值“收视次数,100”、维度成员“CCTV-5”以及对应的具体指标值“收视次数,80”等,同理查询数据库B中表2包含的在2017年5月12日19:00至22:00时间段内各卫视频道在河北省的收视数据,获取查询维度“收视情况”对应的每个维度成员的具体指标值,即维度成员“北京卫视”以及对应的具体指标值“收视次数,90”、维度成员“CCTV-5”以及对应的具体指标值“收视次数,95”等。
203、在不同的待查询数据库中,分别根据第一指标值及预设排名上限进行降序排名,得到至少两个维度成员排名。
其中,根据预设排名上限的取值N,确定进行维度成员排名的维度成员个数,预设排名上限的取值N可以根据用户的查询需求确定,也可以根据用户的历史查询条件判断进行确定,但是预设排名上限的取值范围应该为大于等于用户查询条件中需要进行排名的维度成员个数,且小于等于所有维度成员的个数,因为当预设排名上限的取值大于所有维度成员个数时,预设排名上限没有存在的意义;当预设排名上限的取值小于用户查询条件中需要进行排位的维度成员个数时,会导致无法准确的计算维度成员排名。
在本发明实施例中,根据预设排名上限的取值N,确定进行维度成员排名的维度成员个数,根据步骤202查询获取的多个待查询数据库中每个维度成员的具体指标值大小,对多个待查询数据库中预设排名上限取值范围内的维度成员进行降序排列,得到每一个待查询数据库对应的维度成员排名。
需要说明的是,当预设排名上限的取值越小时,需要进行排名的维度成员个数越少,计算维度成员排名的计算量越少,因此计算效率越高;当预设排名上限的取值越大时,需要进行排名的维度成员个数越多,计算维度成员排名的计算量也越大,相对来说会降低计算效率,但是在后续根据用户的查询条件进行重新计算维度成员排名的结果准确率更高。无论预设排名上限的取值为多少,相对于对所有维度成员都进行排名来说,计算维度成员排名的计算效率会得到提高,需要用户在计算效率与结果准确率之间衡量,确定预设排名上限的取值。在实际应用过程中,可能存在某次用户计算用户排名过程中,使用的查询条件中需要进行排名的维度成员个数大于预设排名上限的取值,即M大于N,导致无法准确的计算维度成员排名,但是预设排名上限的取值大小是根据用户的查询需求或者根据用户的历史查询条件判断进行确定的,因此这种情况发生概率很低,在此不予考虑。
对于本发明实施例,具体应用场景可以如下所示,但不限于此包括:
用户A需要计算在2017年5月12日19:00至22:00时间段内各卫视频道的收视排名,根据编写的结构化查询语句分别查询A、B、C、D等数据库,获取数据库中存储的在2017年5月12日19:00至22:00时间段内各卫视频道在各省份的收视数据,其中在2017年5月12日19:00至22:00时间段内各卫视频道,在广东省的收视数据如表1所示、在河北省的收视数据如表2所示。根据用户A的查询需求确定预设排名上限的取值为20,根据预设排名上限的取值,确定进行排名的维度成员个数为20个,分别计算A、B、C、D等数据库中各卫视频道的收视排名。
例如,在数据库A中根据各卫视频道在广东省的收视次数大小,取前20名,并进行降序排列,其他卫视频道不进行排名,计算获得在广东省各卫视频道收视排名,具体的,如表3所示:
表3
在数据库B中根据各卫视频道在河北省的收视次数大小,取前20名,并进行降序排列,其他卫视频道不进行排名,计算获得在河北省各卫视频道收视排名,具体的,如表4所示:
表4
根据各卫视频道的收视次数和预设排名上限,分别计算C、D等数据库中各卫视频道的排名,计算获得对应的各卫视频道的排名,在此不一一举例。
204、分别计算第二指标值。
其中,第二指标值为对待查询数据库中排名超过预设排名上限的所有维度成员对应的指标值,进行累加后的指标值。
在本发明实施中,将步骤203中计算获得的各个维度成员排名中,排名超过预设排名上限的所有维度成员对应的指标值分别进行累加,获取各个维度成员排名中排名超过预设排名上限的维度成员的指标值总和。
205、将超过预设排名上限的所有维度成员作为待查询数据库的其他项,生成其他项与第二指标值之间的映射关系。
在本发明实施例中,将各个维度成员排名中排名超过预设排名上限的所有维度成员作为对应待查询数据库中的其他项,并分别生成各个待查询数据库中其他维度成员的指标值总和与对应的其他项之间的映射关系。
例如,首先,将上述表3中除收视排名前20名外的其他卫视频道的收视次数进行累加,获得除收视排名前20名外的其他卫视频道的总收视次数;然后,将除收视排名前20名外的其他卫视频道作为数据库A中的其他项;最后,生成数据库A中的其他项与其他项对应的总收视次数之间的映射关系。
206、在不同的待查询数据库中,将对应的维度成员排名与第二指标值进行汇总,得到数据集合。
在本发明实施例中,在不同待查询数据库中,将与待查询数据库对应的维度成员排名、确定的其他项以及其他项对应的指标值总和,进行汇总处理,得到与待查询数据库对应的数据集合。
例如,将通过计算获得的数据库A中的在广东省的各卫视频道收视排名,如表3所示,与根据确定的数据库A中的其他项以及其他项对应的总收视次数进行汇总处理,得到与数据库A对应的数据集合,具体的,如表5所示:
表5
同理,将通过计算获得的数据库B中的在河北省的各卫视频道收视排名,如表4所示,与根据确定的数据库B中的其他项以及其他项对应的总收视次数进行汇总处理,得到与数据库B对应的数据集合,具体的,如表6所示:
表6
207、将各个待查询数据库中的数据集合进行分别存储。
需要说明的是,将步骤206中得到的各个待查询数据库中的数据集合进行分别存储,可以将数据集合分别存储在对应待查询数据库中,但是这种存储方式,在后续根据用户实际查询需求计算维度成员排名时,需要根据查询需求分别在多个待查询数据库中获取对应的计算好的数据集合,导致获取计算好的数据集合的过程变得复杂,消耗更多时间。在实际应用过程中,为了便于获取计算好的数据集合,可以将计算获取的多个数据集合存储在同一个数据库中,在此不对数据库种类进行限定。
208、接收数据查询指令。
其中,关于步骤208、接收数据查询指令,可以参考图1对应部分的描述,本发明实施例此处将不再赘述。
209、根据数据查询指令,生成第二查询表达式。
其中,第二查询表达式为根据数据查询指令生成的结构化查询语句。
在本发明实施例中,在步骤208接收到数据查询指令后,根据接收到的数据查询指令,生成对应的结构化查询语句,以便后续查找与该结构化查询语句匹配的维度成员排名。
例如,用户A在第一次查询过程中,需要计算在2017年5月12日19:00至22:00时间段内各卫视频道在广东省和河北省两地的收视排名的前5名时,根据用户A在该次查询过程中使用的查询条件确定对应的数据查询指令,根据数据查询指令生成对应的结构化查询语句A,结构化查询语句A的内容包括:查询维度“收视情况”,查询条件“2017年5月12日19:00至22:00时间段内各卫视频道在广东省和河北省两地的收视排名的前5名”;在用户A的另一次查询过程中,需要计算在2017年5月12日19:00至22:00时间段内各卫视频道在广东省、河北省以及辽宁省三地的收视排名的前10名时,根据用户A在该次查询过程中使用的查询条件确定对应的数据查询指令,根据数据查询指令生成对应的结构化查询语句B,结构化查询语句B的内容包括:查询维度“收视情况”,查询条件“2017年5月12日19:00至22:00时间段内各卫视频道在广东省、河北省以及辽宁省三地的收视排名的前10名”。
210、在至少两个待查询数据库中,分别查找与第二查询表达式对应的维度成员排名。
在本发明实施例中,根据步骤209生成的结构化查询语句在至少两个数据库中,分别查找与该结构化查询语句中包括的查询维度对应的维度成员排名,即数据集合。
例如,用户A根据查询维度“收视情况”,查询条件“2017年5月12日19:00至22:00时间段内各卫视频道在广东省和河北省两地的收视排名的前5名”生成的结构化查询语句A,查询数据库A,查找到已经计算好的在2017年5月12日19:00至22:00时间段内各卫视频道在广东省的收视排名A,如上述表5所示,查询数据库B,查找到已经计算好的在2017年5月12日19:00至22:00时间段内各卫视频道在河北省的收视排名B,如上述表6所示。
211、判断至少两个维度成员排名中的维度成员是否一致。
在本发明实施例中,由于将各个维度成员排名中排名超过预设排名上限的所有维度成员作为对应待查询数据库中的其他项,所以会出现在步骤210查找得到的多个维度成员排名后,某个维度成员存在于第一个维度成员排名中,而作为其他项存在于第二维度成员排名中的情况。为了便于对相同的维度成员进行同项合并操作,因此需要判断多个维度成员排名中的维度成员是否一致。
212a、若至少两个维度成员排名中的维度成员一致,则基于相同维度成员对维度成员排名中对应的指标值进行聚合处理。
在本发明实施例中,经过步骤211判断,当多个维度成员排名中的维度成员一致时,获取相同维度成员在多个维度成员排名中对应的指标值,并将多个指标值进行累加,作为该维度成员对应的指标值。
例如,用户A需要计算在2017年5月12日19:00至22:00时间段内各卫视频道在广东省和河北省两地的收视排名的前5名,在根据结构化查询语句查找到在广东省的收视排名A,如上述表5所示,以及在河北省的收视排名B,如上述表6所示,当判定收视排名A和收视排名B中的维度成员一致时,将相同卫视频道对应的收视次数进行相加,并将相加结果作为该卫视频道的在广东省和河北省两地的收视次数,即根据收视排名A和收视排名B计算获得维度成员“CCTV-1”以及对应指标值“收视次数,210”、维度成员“CCTV-5”以及对应指标值“收视次数,170”等。
212b、若至少两个维度成员排名中的维度成员不一致,则获取不一致的维度成员,并设置缺失维度成员在维度成员排名中对应的指标值为空值;对维度成员排名中相同维度成员的指标值进行聚合处理。
在本发明实施例中,经过步骤211判断,当多个维度成员排名中的维度成员不一致时,首先,获取所有不一致的维度成员;然后,分别在缺失该维度成员的维度成员排名中设置该维度成员对应的指标值为空值;最后,获取相同维度成员在多个维度成员排名中对应的指标值,并将多个指标值进行累加,作为该维度成员对应的指标值。
例如,经过判断后,发现上述收视排名A和收视排名B中的维度成员不一致,“山西卫视”存在与收视排名A中,但是不存在于收视排名B中,此时在收视排名B中设置“山西卫视”对应的收视次数为空值,即“收视次数,0”,获取“山西卫视”在收视排名A中的收视次数与收视排名B中的定义的空值相加,获得“山西卫视”对应的收视次数“收视次数,50”。
需要说明的是,由于预设排名上限的设置,导致出现多个维度成员排名中维度成员不一致的情况,因此会对计算维度成员排名的结果造成一定的误差。在实际使用过程中,可以根据用户的实际查询需求对预设排名上限的取值进行调整,当预设排名上限的取值变大时,可以避免上述情况的产生,但是同时也会导致计算维度成员排名的计算量增大,因此需要用户在结果准确率和计算效率之间进行衡量,确定最适合的预设排名上限的取值大小。
213、根据同项合并后的维度成员重新计算前M个维度成员的排名。
在本发明实施例中,根据步骤212a和212b同项合并之后的维度成员对应的指标值大小,重新计算维度成员排名,并根据重新计算的维度成员排名和用户的实际查询条件,确定前M个维度成员的排名为查询结果。
例如,用户A此次查询需要计算在2017年5月12日19:00至22:00时间段内各卫视频道在广东省和河北省两地的收视排名的前5名。查询得到广东省的收视排名A,如上述表5所示,以及河北省的收视排名B,如上述表6所示,经判断确定收视排名A和收视排名B中的维度成员一致,对收视排名A和收视排名B中的相同卫视频道对应的收视次数进行聚合处理后,根据同项合并后的各卫视频道对应的收视次数大小进行重新计算,获得新收视排名X,具体的,如表7所示:
表7
最后,根据用户A的实际查询条件“在2017年5月12日19:00至22:00时间段内各卫视频道在广东省和河北省两地的收视排名的前5名”,在上述表7中,获取最终查询结果,具体的,如表8所示:
表8
频道 | 收视次数 |
湖南卫视 | 280 |
CCTV-1 | 215 |
东方卫视 | 210 |
浙江卫视 | 200 |
江苏卫视 | 195 |
214、根据重新计算排名的维度成员对应的指标值大小,计算各个维度成员所占比重。
在本发明实施例中,在根据重新计算的维度成员排名和用户的实际查询条件确定查询结果后,可以根据重新计算排名的维度成员对应的指标值大小,计算各个维度成员所占比重。以下对如何计算各个维度成员所占比重进行详细说明。
(1)获取重新计排名后的各个维度成员对应的指标值,并进行累加计算;同时,对原维度成员排名对应的待查询数据库中的其他项对应的指标值也进行累加计算,获得新维度成员排名中维度成员对应的指标值总和与其他项对应的指值总和。
例如,对上述表7中各卫视频道对应的收视次数进行累加,获得新收视排名中所有卫视频道对应的总收视次数,即“收视次数,1950”,对上述表5以及表6中的其他项对应的收视次数进行累加,获得新收视排名对应的其他项的总收视次数,即“收视次数,1050”。
(2)对步骤(1)中获取得到的新维度成员排名中维度成员对应的指标之总和与其他项对应的指标值总和进行累加计算,得到所有维度成员对应的指标值总和。
例如,将根据表5、表6以及表7获取的新收视排名中所有卫视频道对应的总收视次数,即“收视次数,1950”,以及新收视排名对应的其他项的总收视次数,即“收视次数,1050”,进行累加计算,获得所有卫视频道对应的总收视次数,即“总收视次数,3000”。
(3)根据新维度成员排名中的各个维度成员对应的指标值大小与步骤(2)中获得的所有维度成员对应的指标值总和,计算新维度成员排名中的每个维度成员的所占比重。
例如,根据上述表7中的新收视排名中的每个卫视频道的收视次数与获得的所有卫视频道对应的总收视次数“收视次数,3000”,分别计算每个卫视频道的所占比重,即,根据“湖南卫视”的“收视次数,280”与“总收视次数,3000”,计算“湖南卫视”的“所占比重,9.3%”、“CCTV-1”的“收视次数,215”与“总收视次数,3000”,计算“湖南卫视”的“所占比重,7.2%”等。
(4)根据重新计算的维度成员排名、用户的实际查询条件以及步骤(3)计算获得的每个维度成员的所占比重获取查询结果。
例如,根据用户A的实际查询条件“2017年5月12日19:00至22:00时间段内各卫视频道在广东省和河北省两地收视次数前五的卫视频道”、上述表7所示的新收视排名X以及计算获取的每个卫视频道的所占比重,获取最终查询结果,具体的,如表9所示:
表9
频道 | 收视次数 | 所占比重 |
湖南卫视 | 280 | 9.3% |
CCTV-1 | 215 | 7.2% |
东方卫视 | 210 | 7% |
浙江卫视 | 200 | 6.7% |
江苏卫视 | 195 | 6.5% |
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的排名的计算方法。
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的排名的计算方法。
进一步的,作为对上述图1及图2所示方法的实现,本发明另一实施例还提供了一种排名的计算装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置应用于加快计算维度成员排名的计算速度以及提高计算效率,具体如图3所示,该装置包括:
接收单元31,用于接收数据查询指令,数据查询指令中包括查询维度及其对应的前M个维度成员的排名;
第一查找单元32,用于在至少两个待查询数据库中,分别查找与接收单元31接收的数据查询指令中包括的查询维度对应的维度成员排名,其中,待查询数据库中包含有查询维度对应的前N个维度成员的排名结果,N大于或者等于M;
合并单元33,用于对第一查找单元32查找到的至少两个维度成员排名中相同的维度成员进行同项合并;
第一计算单元34,用于根据合并单元33同项合并后的维度成员重新计算前M个维度成员的排名。
进一步的,如图4所示,该装置还包括:
编写单元35,用于第一查找单元32在至少两个待查询数据库中,分别查找与查询维度对应的维度成员排名之前,基于查询维度编写查询表达式;
第二查找单元36,用于根据编写单元35编写的同一查询表达式分别在至少两个待查询数据库中查找与查询维度对应的维度成员的第一指标值;
排名单元37,用于在不同的待查询数据库中,分别根据第二查找单元36查找的第一指标值及预设排名上限进行降序排名,得到至少两个维度成员排名,其中,预设排名上限等于N。
进一步的,如图4所示,该装置还包括:
第二计算单元38,用于在接收单元31接收数据查询指令之前,分别计算第二指标值;其中,第二指标值为对待查询数据库中排名超过预设排名上限的所有维度成员对应的指标值,进行累加后的指标值;
生成单元39,用于将超过预设排名上限的所有维度成员作为待查询数据库的其他项,生成其他项与第二计算单元38计算的第二指标值之间的映射关系;
汇总单元310,用于在不同的待查询数据库中,将对应的维度成员排名与第二计算单元38计算的第二指标值进行汇总,得到数据集合;
存储单元311,用于将汇总单元310得到的各个待查询数据库中的数据集合进行分别存储。
进一步的,如图4所示,合并单元33包括:
判断模块331,用于判断至少两个维度成员排名中的维度成员是否一致;
聚合模块332,用于当判断模块331判断至少两个维度成员排名中的维度成员一致时,基于相同维度成员对维度成员排名中对应的指标值进行聚合处理;
设置模块333,用于当判断模块331判断至少两个维度成员排名中的维度成员不一致时,获取不一致的维度成员,并设置缺失维度成员在维度成员排名中对应的指标值为空值;
聚合模块332,还用于对维度成员排名中相同维度成员的指标值进行聚合处理。
进一步的,如图4所示,该装置还包括:
第三计算单元312,用于在第一计算单元34根据同项合并后的维度成员重新计算前M个维度成员的排名之后,将重新计算排名后的维度成员对应的指标值进行第一累加计算,并将不同待查询数据库中的其他项对应的指标值进行第二累加计算;
确定单元313,用于根据第三计算单元312计算的第一累加计算及第二累加计算,确定指标值总和;
第四计算单元314,用于根据每个维度成员对应的指标值大小与确定单元313确定的指标值总和,计算各个维度成员所占比重。
本发明实施例提供的一种排名的计算装置,本发明实施例能够预先根据某一查询维度在存储该查询维度对应数据的多个待查询数据库中,分别计算该查询维度对应的维度成员排名,在后续查询过程中,当接收到包括该查询维度的不同数据查询指令时,可以直接在多个待查询数据库中查找该查询维度对应的维度成员排名结果,并根据多个维度成员排名结果计算与数据查询指令匹配的维度成员排名,与现有技术中根据接收到的数据查询指令,在存储该数据查询指令中包括的查询维度对应数据的多个待查询数据库中,分别计算该查询维度对应的维度成员排名相比,本发明实施例无需根据包括相同查询维度的不同数据查询指令,再次分别计算多个待查询数据库中该查询维度对应的维度成员排名,从而加快了计算维度成员排名的计算速度以及提高了计算效率。同时,可以通过用户对结果准确率和计算效率的衡量,确定预设排名上限的取值,根据预设排名上限的取值确定进行排名的维度成员个数,与现有技术相比,能够通过预设排名上限的取值,减少进行排名的维度成员个数,从而减少计算维度成员排名的计算量,进而提高了计算维度成员排名的计算效率。
所述排名的计算装置包括处理器和存储器,上述接收单元、第一查找单元、合并单元和第一计算单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高了提取评价文本信息的评价关系的准确率和工作效率。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现以上实施例中任一项所述的排名的计算方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行以上实施例中任一项所述的排名的计算方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
接收数据查询指令,所述数据查询指令中包括查询维度及其对应的前M个维度成员的排名;
在至少两个待查询数据库中,分别查找与所述查询维度对应的维度成员排名,其中,所述待查询数据库中包含有所述查询维度对应的前N个维度成员的排名结果,N大于或者等于M;
对至少两个维度成员排名中相同的维度成员进行同项合并,并根据同项合并后的维度成员重新计算前M个维度成员的排名。
进一步的,在至少两个待查询数据库中,分别查找与所述查询维度对应的维度成员排名之前,所述方法还包括:
基于所述查询维度编写查询表达式;
根据同一查询表达式分别在所述至少两个待查询数据库中查找与所述查询维度对应的维度成员的第一指标值;
在不同的待查询数据库中,分别根据所述第一指标值及预设排名上限进行降序排名,得到至少两个所述维度成员排名,其中,所述预设排名上限等于N。
进一步的,在接收数据查询指令之前,所述方法还包括:
分别计算第二指标值;其中,所述第二指标值为对所述待查询数据库中排名超过所述预设排名上限的所有维度成员对应的指标值,进行累加后的指标值;
将所述超过所述预设排名上限的所有维度成员作为待查询数据库的其他项,生成所述其他项与所述第二指标值之间的映射关系;
在不同的待查询数据库中,将对应的维度成员排名与所述第二指标值进行汇总,得到数据集合;
将所述各个待查询数据库中的所述数据集合进行分别存储。
进一步的,对至少两个维度成员排名中相同的维度成员进行同项合并包括:
判断至少两个所述维度成员排名中的维度成员是否一致;
若一致,则基于相同维度成员对所述维度成员排名中对应的指标值进行聚合处理;
若不一致,则获取不一致的维度成员,并设置缺失维度成员在所述维度成员排名中对应的指标值为空值;对所述维度成员排名中相同维度成员的指标值进行聚合处理。
进一步的,在根据同项合并后的维度成员重新计算前M个维度成员的排名之后,所述方法还包括:
将重新计算排名后的维度成员对应的指标值进行第一累加计算,并将不同待查询数据库中的其他项对应的指标值进行第二累加计算;
根据所述第一累加计算及所述第二累加计算,确定指标值总和;
根据每个维度成员对应的指标值大小与所述指标值总和,计算各个维度成员所占比重。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:接收数据查询指令,所述数据查询指令中包括查询维度及其对应的前M个维度成员的排名;
在至少两个待查询数据库中,分别查找与所述查询维度对应的维度成员排名,其中,所述待查询数据库中包含有所述查询维度对应的前N个维度成员的排名结果,N大于或者等于M;
对至少两个维度成员排名中相同的维度成员进行同项合并,并根据同项合并后的维度成员重新计算前M个维度成员的排名。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
1.一种排名的计算方法,其特征在于,包括:
接收数据查询指令,所述数据查询指令中包括查询维度及其对应的前M个维度成员的排名;
在至少两个待查询数据库中,分别查找与所述查询维度对应的维度成员排名,其中,所述待查询数据库中包含有所述查询维度对应的前N个维度成员的排名结果,N大于或者等于M;
对至少两个维度成员排名中相同的维度成员进行同项合并,并根据同项合并后的维度成员重新计算前M个维度成员的排名。
2.根据权利要求1所述的方法,其特征在于,在至少两个待查询数据库中,分别查找与所述查询维度对应的维度成员排名之前,所述方法还包括:
基于所述查询维度编写查询表达式;
根据同一查询表达式分别在所述至少两个待查询数据库中查找与所述查询维度对应的维度成员的第一指标值;
在不同的待查询数据库中,分别根据所述第一指标值及预设排名上限进行降序排名,得到至少两个所述维度成员排名,其中,所述预设排名上限等于N。
3.根据权利要求2所述的方法,其特征在于,在接收数据查询指令之前,所述方法还包括:
分别计算第二指标值;其中,所述第二指标值为对所述待查询数据库中排名超过所述预设排名上限的所有维度成员对应的指标值,进行累加后的指标值;
将所述超过所述预设排名上限的所有维度成员作为待查询数据库的其他项,生成所述其他项与所述第二指标值之间的映射关系;
在不同的待查询数据库中,将对应的维度成员排名与所述第二指标值进行汇总,得到数据集合;
将所述各个待查询数据库中的所述数据集合进行分别存储。
4.根据权利要求3所述的方法,其特征在于,对至少两个维度成员排名中相同的维度成员进行同项合并包括:
判断至少两个所述维度成员排名中的维度成员是否一致;
若一致,则基于相同维度成员对所述维度成员排名中对应的指标值进行聚合处理;
若不一致,则获取不一致的维度成员,并设置缺失维度成员在所述维度成员排名中对应的指标值为空值;对所述维度成员排名中相同维度成员的指标值进行聚合处理。
5.根据权利要求4所述的方法,其特征在于,在根据同项合并后的维度成员重新计算前M个维度成员的排名之后,所述方法还包括:
将重新计算排名后的维度成员对应的指标值进行第一累加计算,并将不同待查询数据库中的其他项对应的指标值进行第二累加计算;
根据所述第一累加计算及所述第二累加计算,确定指标值总和;
根据每个维度成员对应的指标值大小与所述指标值总和,计算各个维度成员所占比重。
6.一种排名的计算装置,其特征在于,包括:
接收单元,用于接收数据查询指令,所述数据查询指令中包括查询维度及其对应的前M个维度成员的排名;
第一查找单元,用于在至少两个待查询数据库中,分别查找与所述接收单元接收的所述数据查询指令中包括的所述查询维度对应的维度成员排名,其中,所述待查询数据库中包含有所述查询维度对应的前N个维度成员的排名结果,N大于或者等于M;
合并单元,用于对所述第一查找单元查找到的至少两个维度成员排名中相同的维度成员进行同项合并;
第一计算单元,用于根据所述合并单元同项合并后的维度成员重新计算前M个维度成员的排名。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
编写单元,用于所述第一查找单元在至少两个待查询数据库中,分别查找与所述查询维度对应的维度成员排名之前,基于所述查询维度编写查询表达式;
第二查找单元,用于根据所述编写单元编写的同一查询表达式分别在所述至少两个待查询数据库中查找与所述查询维度对应的维度成员的第一指标值;
排名单元,用于在不同的待查询数据库中,分别根据所述第二查找单元查找的所述第一指标值及预设排名上限进行降序排名,得到至少两个所述维度成员排名,其中,所述预设排名上限等于N。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二计算单元,用于在所述接收单元接收数据查询指令之前,分别计算第二指标值;其中,所述第二指标值为对所述待查询数据库中排名超过所述预设排名上限的所有维度成员对应的指标值,进行累加后的指标值;
生成单元,用于将所述超过所述预设排名上限的所有维度成员作为待查询数据库的其他项,生成所述其他项与所述第二计算单元计算的所述第二指标值之间的映射关系;
汇总单元,用于在不同的待查询数据库中,将对应的维度成员排名与所述第二计算单元计算的所述第二指标值进行汇总,得到数据集合;
存储单元,用于将所述汇总单元得到的所述各个待查询数据库中的所述数据集合进行分别存储。
9.根据权利要求8所述的装置,其特征在于,所述合并单元包括:
判断模块,用于判断至少两个所述维度成员排名中的维度成员是否一致;
聚合模块,用于当所述判断模块判断至少两个所述维度成员排名中的维度成员一致时,基于相同维度成员对所述维度成员排名中对应的指标值进行聚合处理;
设置模块,用于当所述判断模块判断至少两个所述维度成员排名中的维度成员不一致时,获取不一致的维度成员,并设置缺失维度成员在所述维度成员排名中对应的指标值为空值;
所述聚合模块,还用于对所述维度成员排名中相同维度成员的指标值进行聚合处理。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第三计算单元,用于在所述第一计算单元根据同项合并后的维度成员重新计算前M个维度成员的排名之后,将重新计算排名后的维度成员对应的指标值进行第一累加计算,并将不同待查询数据库中的其他项对应的指标值进行第二累加计算;
确定单元,用于根据所述第三计算单元计算的所述第一累加计算及所述第二累加计算,确定指标值总和;
第四计算单元,用于根据每个维度成员对应的指标值大小与所述确定单元确定的所述指标值总和,计算各个维度成员所占比重。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至权利要求5中任意一项所述的排名的计算方法。
12.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至权利要求5中任意一项所述的排名的计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710533015.8A CN109241195B (zh) | 2017-07-03 | 2017-07-03 | 排名的计算方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710533015.8A CN109241195B (zh) | 2017-07-03 | 2017-07-03 | 排名的计算方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109241195A true CN109241195A (zh) | 2019-01-18 |
CN109241195B CN109241195B (zh) | 2022-03-18 |
Family
ID=65083265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710533015.8A Active CN109241195B (zh) | 2017-07-03 | 2017-07-03 | 排名的计算方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109241195B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101401062A (zh) * | 2006-02-16 | 2009-04-01 | 移动容量网络公司 | 确定相关来源、查询及合并多个内容来源的结果的方法和系统 |
WO2011040765A2 (ko) * | 2009-09-30 | 2011-04-07 | 엔에이치엔(주) | 실시간으로 대용량 랭킹을 산정하기 위한 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법 |
CN104424258A (zh) * | 2013-08-28 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 多维数据查询的方法、查询服务器、列存储服务器及系统 |
CN105164674A (zh) * | 2013-08-29 | 2015-12-16 | 惠普发展公司,有限责任合伙企业 | 涉及多个数据库和执行引擎的查询 |
CN106407244A (zh) * | 2016-06-21 | 2017-02-15 | 平安科技(深圳)有限公司 | 基于多数据库的数据查询方法、系统和装置 |
CN106844541A (zh) * | 2016-12-30 | 2017-06-13 | 晶赞广告(上海)有限公司 | 一种联机分析处理方法及装置 |
-
2017
- 2017-07-03 CN CN201710533015.8A patent/CN109241195B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101401062A (zh) * | 2006-02-16 | 2009-04-01 | 移动容量网络公司 | 确定相关来源、查询及合并多个内容来源的结果的方法和系统 |
WO2011040765A2 (ko) * | 2009-09-30 | 2011-04-07 | 엔에이치엔(주) | 실시간으로 대용량 랭킹을 산정하기 위한 랭킹 데이터 시스템, 랭킹 질의 시스템 및 랭킹 산정 방법 |
CN104424258A (zh) * | 2013-08-28 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 多维数据查询的方法、查询服务器、列存储服务器及系统 |
CN105164674A (zh) * | 2013-08-29 | 2015-12-16 | 惠普发展公司,有限责任合伙企业 | 涉及多个数据库和执行引擎的查询 |
CN106407244A (zh) * | 2016-06-21 | 2017-02-15 | 平安科技(深圳)有限公司 | 基于多数据库的数据查询方法、系统和装置 |
CN106844541A (zh) * | 2016-12-30 | 2017-06-13 | 晶赞广告(上海)有限公司 | 一种联机分析处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109241195B (zh) | 2022-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102446326B (zh) | 一种信息推送的方法、系统及设备 | |
CN109213829A (zh) | 数据查询方法及装置 | |
CN104281664B (zh) | 分布式图计算系统数据切分方法和系统 | |
CN106557486A (zh) | 一种数据的存储方法和装置 | |
CN107168977A (zh) | 一种数据查询的优化方法及装置 | |
CN103136683A (zh) | 计算产品参考价格的方法、装置及产品搜索方法、系统 | |
CN103309894B (zh) | 基于用户属性的搜索实现方法及系统 | |
CN105204920B (zh) | 一种基于映射聚合的分布式计算作业的实现方法及装置 | |
CN106850750A (zh) | 一种实时推送信息的方法和装置 | |
CN105468651A (zh) | 一种关系数据库数据查询方法及系统 | |
CN103559303A (zh) | 一种对数据挖掘算法的评估与选择方法 | |
CN105975486A (zh) | 信息推荐方法及装置 | |
CN106202092A (zh) | 数据处理的方法及系统 | |
CN107622061A (zh) | 一种确定地址唯一性的方法、装置及系统 | |
CN108153776A (zh) | 数据查询方法及装置 | |
CN103544325A (zh) | 用于网页页面点击分布的数据处理方法和装置 | |
CN106156040A (zh) | 多维度数据管理方法及装置 | |
CN103838680A (zh) | 一种数据缓存方法和装置 | |
CN107391749B (zh) | 一种查询分表数据实现瀑布流的方法 | |
CN106844541A (zh) | 一种联机分析处理方法及装置 | |
CN110019195A (zh) | 一种数据的存储方法及装置 | |
CN109241195A (zh) | 排名的计算方法及装置 | |
US8417594B2 (en) | Dimension-based financial reporting using multiple combinations of dimensions | |
CN114154064A (zh) | 一种商品关键词优化方法及装置 | |
CN105989276A (zh) | Rbac权限体系中的角色优化方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |