掌桥专利:专业的专利平台
掌桥专利
首页

一种多市场数据查询方法、系统及装置

文献发布时间:2023-06-19 18:37:28


一种多市场数据查询方法、系统及装置

技术领域

本发明属于数据处理技术领域,特别涉及一种多市场数据查询方法、系统及装置。

背景技术

随着信息技术的不断发展,大数据查询在不同的行业领域均有不同程度的广泛应用,尤其是金融领域的数据处理方面,不仅数据源来源的渠道越来越多,而且多市场的数据查询和比对需求强烈,这对数据处理效率,数据筛选的准确性,以及查询操作的快速响应提出了更高的要求。目前,虽然在数据查询方面,已能够实现多数据源和多市场的查询功能,但是现有技术存在诸多需要优化的部分,比如现有技术的查询操作,需要处理的数据量较多,尤其是查询范围越大,需要查询的市场数量越多时,数据量成倍增长,而且,在查询时的操作循环次数也会随着查询范围的不断扩大而快速增长,随着查询范围和筛选参数的增加,将直接影响查询时的响应速度,随着日益增长的数据量,显然无法满足提高数据处理效率和查询快速响应的要求。

因此,通过优化的数据查询处理方法,使查询操作受数据量的影响较小,降低数据处理量,提高查询处理效率,实现缩短查询响应时间,提高查询结果的准确性是目前需要解决的问题。

发明内容

鉴于以上问题,本申请提供一种多市场数据查询方法、系统及装置,以解决上述技术问题。

本申请提供了以下技术方案:

第一方面,本申请提供了一种多市场数据查询方法,所述方法包括:

从目标数据源中,获取第一数据集;

根据第一数据集,提前构建与查询条件匹配的多市场数据查询位置集;

获取查询指令,并按照查询指令从已匹配的多市场数据查询位置集中选取输出数据,输出查询结果;

所述目标数据源,为最初的数据来源,即多市场数据查询的数据来源,其中的数据包括但不限于:市场代码及市场代码的关联数据、市场中的产品代码及产品代码的关联数据,以及关联数据的存储位置;

所述市场代码,包含该市场的代码,以及属于该市场的所有产品的代码;所述市场代码的关联数据,包含该市场代码的关联数据,以及属于该市场的所有产品代码的关联数据;

所述产品代码、产品代码的关联数据,以及关联数据的存储位置,为互相关联对应的数据,且共同组成为一组数据;

具体来说,获取某一产品代码之后,即可获取该产品代码的关联数据,以及关联数据的存储位置;

所述市场,为产品交易市场,包括但不限于:证券或期货交易所;如上海证券交易所、上海期货交易所、深圳证券交易所、中国香港证券交易所、美股证券交易所等;所述市场代码,为对该市场在数据处理层面所具有的识别代码;所述市场代码的关联数据,为数据处理层面,与该市场有关的所有数据;

所述产品,为所述市场包含的具体产品,包括但不限于:证券或期货;所述产品代码,为该产品在数据处理层面所具有的识别代码;所述产品代码的关联数据,为数据处理层面,与该产品有关的所有数据;

具体来说,所述市场代码,及市场代码的关联数据,在数据处理层面上,对该市场及其包含的数据均标注了同一识别代码,或者将市场代码与市场包含的数据进行关联;同理,所述产品代码,及产品代码的关联数据,在数据处理层面上,对该产品及其包含的数据均标注了同一识别代码,或者将产品代码与产品包含的数据进行关联;这样就使得在整个数据处理的全过程中,所述市场和产品,以及所述市场和产品包含的具体数据,在数据的完整性和数据处理的效率方面均有较大的提升。

所述第一数据集,为目标数据源的快照信息,即目标数据源某一时刻的数据复制;同样包括市场代码及市场代码的关联数据、市场中的产品代码及产品代码的关联数据,以及以上具体数据的存储位置;

具体来说,所述目标数据源的快照信息,就是所有市场的行情快照信息,具体就是目标数据源中,所有市场中的所有产品的最新的行情信息;所述的行情信息也是关联数据的一部分,比如所有产品的最新价、最高价、最低价、开盘价、成交量、成交额、买卖档位、涨跌额、涨跌幅等信息;

所述查询条件,为预设的查询相关的筛选参数和排序规则;

所述多市场数据查询位置集,为根据第一数据集,构建的所有市场和各个单独市场的数据排序结果;

所述查询指令,为查询时指定的筛选参数和排序规则;

所述查询结果,为根据查询指令的具体要求所获得的返回数据;

本申请从目标数据源中,获取第一数据集,并根据第一数据集,提前构建与查询条件匹配的多市场数据查询位置集,这样能够在查询之前,提前构建所有市场和各个单独市场的数据排序结果,不仅为后续的查询操作,提供更加准确的查询结果,而且查询操作的响应时间大大缩短,提高了查询的效率。

进一步的,所述根据第一数据集,提前构建与查询条件匹配的多市场数据查询位置集,包括:

获取第一查询条件;

从所述第一数据集中,抽取与第一查询条件相关的所有的市场代码,市场代码的关联数据,以及具体数据的存储位置,组成第二数据集;

从第二数据集中,依据第一查询条件中的不同的筛选参数,分别提取与筛选参数对应的第一列表数据,并按照该筛选参数对应的排序规则,对所提取的第一列表数据进行排序,并按照该排序结果对所述第一列表数据标注排序位置信息,然后,将该排序位置信息,组成第一列表;

将所述第一列表,以市场为单位进行数据提取,分别组成各个单市场的第二列表,再按照与第一列表相同的排序规则进行单独排序,然后,将该排序位置信息与其在第一列表中对应的排序位置信息,组成第二列表;所述第二列表的数量即市场的个数;

将满足相同筛选参数的第一列表和其对应的多个市场内部的第二列表,组成多市场数据查询位置集;

所述第一查询条件,为预设的查询相关的筛选参数和排序规则,即查询终端所设置的各种筛选参数,及其对应的排序规则;

具体来说,所述第一查询条件,是随着查询终端所预设的查询筛选规则和参数的变化,而对应改变第一查询条件的具体内容的,即第一查询条件是与查询终端能够查询的内容所一一对应的。所述第二数据集,与第一数据集的区别在于,第一数据集是某一时刻目标数据源的直接复制,而第二数据集是根据第一查询条件,从第一数据集中抽取出的部分数据,即与第一查询条件相关的数据。比如:第一数据集中包含某一市场中某个产品代码,及该产品代码的关联数据,则第二数据集抽取的数据为该产品代码,及该产品代码的关联数据之中,与第一查询条件相关的部分数据。

由于获取某一产品代码之后,即可获取该产品代码的关联数据,以及关联数据的存储位置,所以,后续从第二数据集中对所有市场的所有产品进行抽取、筛选、排序之后,获得的第一列表和第二列表,都只需存储产品代码及其对应排序位置信息即可实现对产品代码的关联数据的操作,不仅处理的数据量很小,而且处理效率也进一步提高,当后续查询时,响应速度大幅提高。

所述第一列表数据,为第二数据集中与某一筛选参数相关的具体数据和对应的所有市场内的全部产品代码;

所述第二列表数据,为将第一列表数据按照单独的市场进行划分,划分成各市场的第二列表数据,所有市场对应一个第一列表数据,每个市场对应一个第二列表数据;

具体来说,按照该筛选参数对应的排序规则,对所提取的第一列表数据进行排序,仅仅是针对每个产品代码的关联数据中与该筛选参数一致的数据,进行的排序,所获取的第一列表,也是与该筛选参数一致的数据所对应的排序结果集;也就是说,不同的筛选参数,分别对应不同的第一列表数据,也就会生成不同的第一列表,筛选参数的数量决定了生成第一列表的数量;

所述第二列表,与第一列表的筛选参数和排序规则一致,即相同筛选参数下,一个包含所有市场代码的第一列表与多个包含单市场代码的第二列表,共同组成了一个多市场数据查询位置集;一个筛选参数对应一个多市场数据查询位置集;

本申请采用提前构建多市场数据查询位置集的方式,从第一数据集中,逐步缩小数据范围,首先抽取与第一查询条件匹配的第二数据集,再根据筛选参数和排序规则,从第二数据集中生成了第一列表和其对应的多个第二列表,共同组成了多市场数据查询位置集,这样将原始数据经过层层抽取后,不仅能够使最后获得的多市场数据查询位置集的数据更加准确,而且由于多市场数据查询位置集中的第一列表和第二列表中仅包含产品代码和其对应的排序位置信息,进一步将数据量减小,后续查询时处理数据的效率进一步提高,进而能够显著提高查询操作的响应速度;因此,本申请不仅能够提高多市场数据查询的效率,而且使得查询结果的准确性也进一步提高。

进一步的,所述获取查询指令,并按照查询指令从已匹配的多市场数据查询位置集中选取输出数据,输出查询结果,包括:

从查询指令中获取第二查询条件;

根据第二查询条件,匹配相同筛选参数的多市场数据查询位置集;

在已匹配的多市场数据查询位置集中,按照第二查询条件,抽取相关数据并排序,组成返回数据输出查询结果;

所述查询指令,为查询操作时发出的指令和相关信息;所述第二查询条件,为与匹配相同筛选参数的多市场数据查询位置集相关的参数;

进一步的,所述从查询指令中获取第二查询条件,包括:

从所述查询指令中,确定查询范围,即查询的市场代码及市场数量,并抽取与第一查询条件相关的关键词,并解析出具体的筛选参数和排序规则。

具体来说,由于前期已构建完成各个筛选参数对应的多市场数据查询位置集,所以,在后续查询时,只需要将查询指令中的筛选参数和排序规则,以及查询范围确定后,直接匹配相同筛选参数的多市场数据查询位置集,在已匹配的相同筛选参数的多市场数据查询位置集中,按照查询范围进行针对性地选取第一列表或第二列表,然后对选取的第一列表或第二列表,进行简单地操作,即可立即得到返回数据,输出查询结果,这样整个查询过程,仅需在预先构建的多市场数据查询位置集中,根据具体需求调取第一列表或第二列表,即可获取所需的数据,而无需采用现有的查询方式,直接查询目标数据源,再从目标数据源开始,逐层识别筛选数据;因此,本申请查询时,与现有的查询方式相比,不仅极大地压缩了实际的数据处理量,而且获取查询指令后,需要的数据操作也较为简单,使得查询操作时响应极为快速,尤其是在查询操作频繁,或者查询人数较多时,响应速度的优势更加明显,同时由于多市场数据查询位置集是对多市场数据进行的构建,因而查询时,市场数量的多少对查询响应时间的影响较小,即随着后期市场数量的增加,查询响应时间几乎不变;

综上,本申请的能够在查询操作较为频繁,查询人数较多,且查询的市场数量较多时,均能够保证较低的响应时间,查询处理数据量小,处理时间短,返回查询结果快速。

进一步的,所述在已匹配的多市场数据查询位置集中,按照第二查询条件,抽取相关数据并排序,组成返回数据输出查询结果,包括:

按照第二查询条件中的查询范围,抽取已匹配的多市场数据查询位置集中的第一列表或者第二列表中的相关数据,具体如下:

(1)当查询范围为单市场时,先获取已匹配的多市场数据查询位置集中对应市场的第二列表,将其进行同步操作后,再选取输出数据,组成返回数据,并输出查询结果;

所述同步操作,为确定第二列表中的排序规则是否与所述第二查询条件中的排序规则相同,若相同,则无操作,直接返回输出数据,若相反,则将第二列表倒序处理后,再返回处理后的输出数据;

所述返回数据,为选取的第二列表经过同步处理,再选取输出数据后的最终数据,即按照第二查询条件所需的排序规则进行排列的产品代码和其对应数据,以及其他需要输出的关联数据;

(2)当查询范围为多市场时,分情况:

a.若查询范围为全部市场,先获取已匹配的多市场数据查询位置集中的第一列表,将其进行同步操作后,再选取输出数据,组成返回数据,并输出查询结果;

b.若查询范围为部分市场,先确定查询范围的市场代码,并获取已匹配的多市场数据查询位置集中的对应多个市场的第二列表,将其进行同步操作后,再选取输出数据,生成所需的返回数据,并输出查询结果;

进一步的,所述选取输出数据,包括:

设总共有S个市场,查询范围为X个市场,查询结果需输出前Y个产品代码和其对应数据,即需要输出的查询结果为:某一筛选参数下,在X个市场中,按照某排序规则的前Y个的产品代码和其对应数据;则选取输出数据的方法如下:

(1)若X=1,表示查询范围为单市场,则选取输出数据时,直接选所需第二列表中排序前Y个的产品代码和其对应数据;

(2)若X=S,表示查询范围为全部市场,则选取输出数据时,直接选取所需第一列表中排序前Y个的产品代码和其对应数据;

(3)若1

将查询范围的X市场的第二列表,依次标为1-X号第二列表;

抽取1-X号第二列表中排序最前面的产品代码和其对应数据,即抽取出共X 组数据;

将抽取的X组数据,按照所需排序规则进行比较,选取最符合排序规则的一组数据;

将该组数据,作为返回数据中排序为1的输出数据,并在之后抽取数据时,跳过该排序为1的输出数据;

重复以上抽取输出数据的过程,直到选取出返回数据中排序为Y的输出数据为止;

将选取的Y个输出数据,组成所需的返回数据;

所述重复以上选取输出数据的过程,其抽取输出数据的操作次数,等于所需输出数据的数量,即需要Y个输出数据时,则只需循环Y次抽取输出数据的过程,即可完成。

具体来说,如果按照现有查询方式,必须遍历目标数据源,不仅处理的数据负荷较大,而且由于需要将X个市场的数据全部比较排序后才能确定所需的前Y 个产品代码和其对应数据,所以每次查询的运算量都比较大,这样必然会造成每次查询时,响应速度大幅下降,且随着查询次数的增加,数据处理的负荷将会极大地增加,对查询操作的稳定性和交互体验均有较大的负面影响;而本申请在实现查询操作时,在已提前构建多市场数据查询位置集的基础上,只需要在在X 个市场的数据抽取中,循环Y次即可获得所需的Y个输出数据(即前Y个产品代码和其对应数据),换句话说,以现有查询方式来说,在实施查询操作时,按照最理想的无需排序的情况下,抽取输出数据至少也需要X*Y次循环才可得到所需的Y个输出数据,如果需要排序的话,循环次数将成倍增加,且如果查询的市场数量增加,循环次数也将成倍增加;而以本申请的查询方式来说,在实施查询操作时,不受查询市场数量的限制,均只需循环Y次抽取输出数据的过程,即可得到输出数据;因此,本申请不仅缩小了数据处理量,降低了数据处理负荷,增加了查询处理的效率,提高了查询响应的速度,在查询操作的稳定性和交互体验上有显著的优化。

进一步的,所述将选取的Y个输出数据,组成所需的返回数据,还包括:

在选取Y个输出数据时,同时将每个输出数据的数据变化程度,作为一项参考指标标注于对应的输出数据,再加入返回数据中,组成所需的返回数据;

所述输出数据的数据变化程度,为在数据处理层面,预设时间段内,构建的多市场数据查询位置集中与输出数据对应的具体数据的变化率;

具体来说,由于查询结果的返回数据,是在与所需筛选参数一致的多市场数据查询位置集之中,按照所需排序规则选取的,所以输出的结果为,同一筛选参数下,输出产品的对应数据及其排序,而排序所包含的信息仅为某产品在列表中的位置,虽然从排序的变化只能获知该产品的对应数据是增加还是减少,却无法得知其增加或减少的程度,尤其是无法衡量其在筛选范围内,与其他同向变化的数据相比时具体的变化程度;本申请将在选取Y个输出数据时,同时将每个输出数据的数据变化程度,在查询结果输出后,不仅可以获得每个输出数据的排序结果,而且,将对应输出数据的变化程度,作为一项参考指标进行标注,使得查询结果所呈现的信息,在数据变化方面,不仅有定性的排序结果,而且也有定量的程度指标,查询结果直观、准确、可参考性强。

进一步的,所述输出数据的数据变化程度,采用数据波动指数表征,具体的数据波动指数模型,如下:

其中,Z

n

n

n为查询范围内,数据在预设时间段内变化方向为增加和减小的产品数量之和,即n=n

c

c

c

c

c

c

所述第二数据,为预设时间段内,当前时刻的数据;所述第二数据,为预设时间段内,前一时刻的数据;所述当前时刻和前一时刻之间为预设时间段;

以上参数,均为查询范围内,同一筛选参数的产品的对应数据;

具体来说,输出数据中,排序为k的产品的数据波动指数表征的意义分情况如下:

(1)若c

(2)若c

(3)若c

由于本申请的数据波动指数模型,以预设时间段内变化方向为划分依据,将查询范围内的所有数据分为变化方向为增加和减小的数据集,再计算出各个输出数据在相同变化方向的数据中的变化程度,最后在整个查询范围内加权后,得到输出数据中,排序为k的产品的数据波动指数,这样就准确地将数据变化的程度进行量化,尤其是得到一种能够准确衡量数据在其变化方向上的具体指标,不仅进一步丰富了查询结果的输出参数,而且在排序的基础上将数据变化进行具体量化,提高了输出结果的准确性和全面性。

第二方面,本申请提供了一种多市场数据查询系统,所述系统包括:

数据获取模块,用于从目标数据源中,获取第一数据集;

数据构建模块,用于根据第一数据集,提前构建与查询条件匹配的多市场数据查询位置集;

数据输出模块,用于获取查询指令,并按照查询指令从已匹配的多市场数据查询位置集中选取输出数据,输出查询结果;

所述目标数据源,为最初的数据来源,即多市场数据查询的数据来源,其中的数据包括但不限于:市场代码及市场代码的关联数据、市场中的产品代码及产品代码的关联数据,以及关联数据的存储位置;

所述市场代码,包含该市场的代码,以及属于该市场的所有产品的代码;所述市场代码的关联数据,包含该市场代码的关联数据,以及属于该市场的所有产品代码的关联数据;

所述产品代码、产品代码的关联数据,以及关联数据的存储位置,为互相关联对应的数据,且共同组成为一组数据;

所述市场,为产品交易市场,包括但不限于:证券或期货交易所;所述市场代码,为对该市场在数据处理层面所具有的识别代码;所述市场代码的关联数据,为数据处理层面,与该市场有关的所有数据;

所述产品,为所述市场包含的具体产品,包括但不限于:证券或期货;所述产品代码,为该产品在数据处理层面所具有的识别代码;所述产品代码的关联数据,为数据处理层面,与该产品有关的所有数据;

所述第一数据集,为目标数据源的快照信息,即目标数据源某一时刻的数据复制;同样包括市场代码及市场代码的关联数据、市场中的产品代码及产品代码的关联数据,以及以上具体数据的存储位置;

所述查询条件,为预设的查询相关的筛选参数和排序规则;

所述多市场数据查询位置集,为根据第一数据集,构建的所有市场和各个单独市场的数据排序结果;

所述查询指令,为查询时指定的筛选参数和排序规则;

所述查询结果,为根据查询指令的具体要求所获得的返回数据。

第三方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。

第四方面,本申请提供了一种计算机装置,包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序时,实现如第一方面所述的方法。

综上所述,本申请通过构建与筛选参数对应的多市场数据查询位置集,使得查询操作受数据量的影响较小,降低了数据处理量,提高了查询处理效率,不仅缩短了查询响应时间,而且提高了查询结果的准确性。

附图说明

为了易于说明,本申请由下述的具体实施及附图作以详细描述。

图1为本申请的方法流程示意图之一;

图2为本申请的方法流程示意图之二;

图3为本申请的方法流程示意图之三;

图4为本申请实施例的现有技术方案查询操作流程示意图;

图5为本申请实施例的总结果集及对应的单市场PosMap的示意图;

图6为本申请实施例的查询操作流程的示意图;

图7为本申请的系统结构示意图;

图8为本申请的计算机可读存储介质示意图;

图9为本申请的计算机装置示意图。

具体实施方式

下面将结合本申请实施例中的图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

实施例1

如图1所示,本实施例提供了一种多市场数据查询方法,所述方法包括:

从目标数据源中,获取第一数据集;

根据第一数据集,提前构建与查询条件匹配的多市场数据查询位置集;

获取查询指令,并按照查询指令从已匹配的多市场数据查询位置集中选取输出数据,输出查询结果;

所述目标数据源,为最初的数据来源,即多市场数据查询的数据来源,其中的数据包括但不限于:市场代码及市场代码的关联数据、市场中的产品代码及产品代码的关联数据,以及关联数据的存储位置;

所述市场代码,包含该市场的代码,以及属于该市场的所有产品的代码;所述市场代码的关联数据,包含该市场代码的关联数据,以及属于该市场的所有产品代码的关联数据;

所述产品代码、产品代码的关联数据,以及关联数据的存储位置,为互相关联对应的数据,且共同组成为一组数据;

具体来说,获取某一产品代码之后,即可获取该产品代码的关联数据,以及关联数据的存储位置;

所述市场,为产品交易市场,包括但不限于:证券或期货交易所;如上海证券交易所、上海期货交易所、深圳证券交易所、中国香港证券交易所、美股证券交易所等;所述市场代码,为对该市场在数据处理层面所具有的识别代码;所述市场代码的关联数据,为数据处理层面,与该市场有关的所有数据;

所述产品,为所述市场包含的具体产品,包括但不限于:证券或期货;所述产品代码,为该产品在数据处理层面所具有的识别代码;所述产品代码的关联数据,为数据处理层面,与该产品有关的所有数据;

具体来说,所述市场代码,及市场代码的关联数据,在数据处理层面上,对该市场及其包含的数据均标注了同一识别代码,或者将市场代码与市场包含的数据进行关联;同理,所述产品代码,及产品代码的关联数据,在数据处理层面上,对该产品及其包含的数据均标注了同一识别代码,或者将产品代码与产品包含的数据进行关联;这样就使得在整个数据处理的全过程中,所述市场和产品,以及所述市场和产品包含的具体数据,在数据的完整性和数据处理的效率方面均有较大的提升。

所述第一数据集,为目标数据源的快照信息,即目标数据源某一时刻的数据复制;同样包括市场代码及市场代码的关联数据、市场中的产品代码及产品代码的关联数据,以及以上具体数据的存储位置;

具体来说,所述目标数据源的快照信息,就是所有市场的行情快照信息,具体就是目标数据源中,所有市场中的所有产品的最新的行情信息;所述的行情信息也是关联数据的一部分,比如所有产品的最新价、最高价、最低价、开盘价、成交量、成交额、买卖档位、涨跌额、涨跌幅等信息;

所述查询条件,为预设的查询相关的筛选参数和排序规则;

所述多市场数据查询位置集,为根据第一数据集,构建的所有市场和各个单独市场的数据排序结果;

所述查询指令,为查询时指定的筛选参数和排序规则;

所述查询结果,为根据查询指令的具体要求所获得的返回数据;

本申请从目标数据源中,获取第一数据集,并根据第一数据集,提前构建与查询条件匹配的多市场数据查询位置集,这样能够在查询之前,提前构建所有市场和各个单独市场的数据排序结果,不仅为后续的查询操作,提供更加准确的查询结果,而且查询操作的响应时间大大缩短,提高了查询的效率。

进一步的,所述根据第一数据集,提前构建与查询条件匹配的多市场数据查询位置集,包括:

获取第一查询条件;

从所述第一数据集中,抽取与第一查询条件相关的所有的市场代码,市场代码的关联数据,以及具体数据的存储位置,组成第二数据集;

从第二数据集中,依据第一查询条件中的不同的筛选参数,分别提取与筛选参数对应的第一列表数据,并按照该筛选参数对应的排序规则,对所提取的第一列表数据进行排序,并按照该排序结果对所述第一列表数据标注排序位置信息,然后,将该排序位置信息,组成第一列表;

将所述第一列表,以市场为单位进行数据提取,分别组成各个单市场的第二列表,再按照与第一列表相同的排序规则进行单独排序,然后,将该排序位置信息与其在第一列表中对应的排序位置信息,组成第二列表;所述第二列表的数量即市场的个数;

将满足相同筛选参数的第一列表和其对应的多个市场内部的第二列表,组成多市场数据查询位置集;

所述第一查询条件,为预设的查询相关的筛选参数和排序规则,即查询终端所设置的各种筛选参数,及其对应的排序规则;

具体来说,所述第一查询条件,是随着查询终端所预设的查询筛选规则和参数的变化,而对应改变第一查询条件的具体内容的,即第一查询条件是与查询终端能够查询的内容所一一对应的。所述第二数据集,与第一数据集的区别在于,第一数据集是某一时刻目标数据源的直接复制,而第二数据集是根据第一查询条件,从第一数据集中抽取出的部分数据,即与第一查询条件相关的数据。比如:第一数据集中包含某一市场中某个产品代码,及该产品代码的关联数据,则第二数据集抽取的数据为该产品代码,及该产品代码的关联数据之中,与第一查询条件相关的部分数据。

由于获取某一产品代码之后,即可获取该产品代码的关联数据,以及关联数据的存储位置,所以,后续从第二数据集中对所有市场的所有产品进行抽取、筛选、排序之后,获得的第一列表和第二列表,都只需存储产品代码及其对应排序位置信息即可实现对产品代码的关联数据的操作,不仅处理的数据量很小,而且处理效率也进一步提高,当后续查询时,响应速度大幅提高。

所述第一列表数据,为第二数据集中与某一筛选参数相关的具体数据和对应的所有市场内的全部产品代码;

所述第二列表数据,为将第一列表数据按照单独的市场进行划分,划分成各市场的第二列表数据,所有市场对应一个第一列表数据,每个市场对应一个第二列表数据;

具体来说,按照该筛选参数对应的排序规则,对所提取的第一列表数据进行排序,仅仅是针对每个产品代码的关联数据中与该筛选参数一致的数据,进行的排序,所获取的第一列表,也是与该筛选参数一致的数据所对应的排序结果集;也就是说,不同的筛选参数,分别对应不同的第一列表数据,也就会生成不同的第一列表,筛选参数的数量决定了生成第一列表的数量;

所述第二列表,与第一列表的筛选参数和排序规则一致,即相同筛选参数下,一个包含所有市场代码的第一列表与多个包含单市场代码的第二列表,共同组成了一个多市场数据查询位置集;一个筛选参数对应一个多市场数据查询位置集;

本申请采用提前构建多市场数据查询位置集的方式,从第一数据集中,逐步缩小数据范围,首先抽取与第一查询条件匹配的第二数据集,再根据筛选参数和排序规则,从第二数据集中生成了第一列表和其对应的多个第二列表,共同组成了多市场数据查询位置集,这样将原始数据经过层层抽取后,不仅能够使最后获得的多市场数据查询位置集的数据更加准确,而且由于多市场数据查询位置集中的第一列表和第二列表中仅包含产品代码和其对应的排序位置信息,进一步将数据量减小,后续查询时处理数据的效率进一步提高,进而能够显著提高查询操作的响应速度;因此,本申请不仅能够提高多市场数据查询的效率,而且使得查询结果的准确性也进一步提高。

进一步的,所述获取查询指令,并按照查询指令从已匹配的多市场数据查询位置集中选取输出数据,输出查询结果,包括:

从查询指令中获取第二查询条件;

根据第二查询条件,匹配相同筛选参数的多市场数据查询位置集;

在已匹配的多市场数据查询位置集中,按照第二查询条件,抽取相关数据并排序,组成返回数据输出查询结果;

所述查询指令,为查询操作时发出的指令和相关信息;所述第二查询条件,为与匹配相同筛选参数的多市场数据查询位置集相关的参数;

进一步的,所述从查询指令中获取第二查询条件,包括:

从所述查询指令中,确定查询范围,即查询的市场代码及市场数量,并抽取与第一查询条件相关的关键词,并解析出具体的筛选参数和排序规则。

具体来说,由于前期已构建完成各个筛选参数对应的多市场数据查询位置集,所以,在后续查询时,只需要将查询指令中的筛选参数和排序规则,以及查询范围确定后,直接匹配相同筛选参数的多市场数据查询位置集,在已匹配的相同筛选参数的多市场数据查询位置集中,按照查询范围进行针对性地选取第一列表或第二列表,然后对选取的第一列表或第二列表,进行简单地操作,即可立即得到返回数据,输出查询结果,这样整个查询过程,仅需在预先构建的多市场数据查询位置集中,根据具体需求调取第一列表或第二列表,即可获取所需的数据,而无需采用现有的查询方式,直接查询目标数据源,再从目标数据源开始,逐层识别筛选数据;因此,本申请查询时,与现有的查询方式相比,不仅极大地压缩了实际的数据处理量,而且获取查询指令后,需要的数据操作也较为简单,使得查询操作时响应极为快速,尤其是在查询操作频繁,或者查询人数较多时,响应速度的优势更加明显,同时由于多市场数据查询位置集是对多市场数据进行的构建,因而查询时,市场数量的多少对查询响应时间的影响较小,即随着后期市场数量的增加,查询响应时间几乎不变;

综上,本申请的能够在查询操作较为频繁,查询人数较多,且查询的市场数量较多时,均能够保证较低的响应时间,查询处理数据量小,处理时间短,返回查询结果快速。

进一步的,所述在已匹配的多市场数据查询位置集中,按照第二查询条件,抽取相关数据并排序,组成返回数据输出查询结果,包括:

按照第二查询条件中的查询范围,抽取已匹配的多市场数据查询位置集中的第一列表或者第二列表中的相关数据,具体如下:

(1)当查询范围为单市场时,先获取已匹配的多市场数据查询位置集中对应市场的第二列表,将其进行同步操作后,再选取输出数据,组成返回数据,并输出查询结果;

所述同步操作,为确定第二列表中的排序规则是否与所述第二查询条件中的排序规则相同,若相同,则无操作,直接返回输出数据,若相反,则将第二列表倒序处理后,再返回处理后的输出数据;

所述返回数据,为选取的第二列表经过同步处理,再选取输出数据后的最终数据,即按照第二查询条件所需的排序规则进行排列的产品代码和其对应数据,以及其他需要输出的关联数据;

(2)当查询范围为多市场时,分情况:

a.若查询范围为全部市场,先获取已匹配的多市场数据查询位置集中的第一列表,将其进行同步操作后,再选取输出数据,组成返回数据,并输出查询结果;

b.若查询范围为部分市场,先确定查询范围的市场代码,并获取已匹配的多市场数据查询位置集中的对应多个市场的第二列表,将其进行同步操作后,再选取输出数据,生成所需的返回数据,并输出查询结果;

进一步的,所述选取输出数据,包括:

设总共有S个市场,查询范围为X个市场,查询结果需输出前Y个产品代码和其对应数据,即需要输出的查询结果为:某一筛选参数下,在X个市场中,按照某排序规则的前Y个的产品代码和其对应数据;则选取输出数据的方法如下:

(1)若X=1,表示查询范围为单市场,则选取输出数据时,直接选所需第二列表中排序前Y个的产品代码和其对应数据;

(2)若X=S,表示查询范围为全部市场,则选取输出数据时,直接选取所需第一列表中排序前Y个的产品代码和其对应数据;

(3)若1

将查询范围的X市场的第二列表,依次标为1-X号第二列表;

抽取1-X号第二列表中排序最前面的产品代码和其对应数据,即抽取出共X 组数据;

将抽取的X组数据,按照所需排序规则进行比较,选取最符合排序规则的一组数据;

将该组数据,作为返回数据中排序为1的输出数据,并在之后抽取数据时,跳过该排序为1的输出数据;

重复以上抽取输出数据的过程,直到选取出返回数据中排序为Y的输出数据为止;

将选取的Y个输出数据,组成所需的返回数据;

所述重复以上选取输出数据的过程,其抽取输出数据的操作次数,等于所需输出数据的数量,即需要Y个输出数据时,则只需循环Y次抽取输出数据的过程,即可完成。

具体来说,如果按照现有查询方式,必须遍历目标数据源,不仅处理的数据负荷较大,而且由于需要将X个市场的数据全部比较排序后才能确定所需的前Y 个产品代码和其对应数据,所以每次查询的运算量都比较大,这样必然会造成每次查询时,响应速度大幅下降,且随着查询次数的增加,数据处理的负荷将会极大地增加,对查询操作的稳定性和交互体验均有较大的负面影响;而本申请在实现查询操作时,在已提前构建多市场数据查询位置集的基础上,只需要在在X 个市场的数据抽取中,循环Y次即可获得所需的Y个输出数据(即前Y个产品代码和其对应数据),换句话说,以现有查询方式来说,在实施查询操作时,按照最理想的无需排序的情况下,抽取输出数据至少也需要X*Y次循环才可得到所需的Y个输出数据,如果需要排序的话,循环次数将成倍增加,且如果查询的市场数量增加,循环次数也将成倍增加;而以本申请的查询方式来说,在实施查询操作时,不受查询市场数量的限制,均只需需循环Y次抽取输出数据的过程,即可得到输出数据;因此,本申请不仅缩小了数据处理量,降低了数据处理负荷,增加了查询处理的效率,提高了查询响应的速度,在查询操作的稳定性和交互体验上有显著的优化。

进一步的,所述将选取的Y个输出数据,组成所需的返回数据,还包括:

在选取Y个输出数据时,同时将每个输出数据的数据变化程度,作为一项参考指标标注于对应的输出数据,再加入返回数据中,组成所需的返回数据;

所述输出数据的数据变化程度,为在数据处理层面,预设时间段内,构建的多市场数据查询位置集中与输出数据对应的具体数据的变化率;

具体来说,由于查询结果的返回数据,是在与所需筛选参数一致的多市场数据查询位置集之中,按照所需排序规则选取的,所以输出的结果为,同一筛选参数下,输出产品的对应数据及其排序,而排序所包含的信息仅为某产品在列表中的位置,虽然从排序的变化只能获知该产品的对应数据是增加还是减少,却无法得知其增加或减少的程度,尤其是无法衡量其在筛选范围内,与其他同向变化的数据相比时具体的变化程度;本申请将在选取Y个输出数据时,同时将每个输出数据的数据变化程度,在查询结果输出后,不仅可以获得每个输出数据的排序结果,而且,将对应输出数据的变化程度,作为一项参考指标进行标注,使得查询结果所呈现的信息,在数据变化方面,不仅有定性的排序结果,而且也有定量的程度指标,查询结果直观、准确、可参考性强。

进一步的,所述输出数据的数据变化程度,采用数据波动指数表征,具体的数据波动指数模型,如下:

其中,Z

n

n

n为查询范围内,数据在预设时间段内变化方向为增加和减小的产品数量之和,即n=n

c

c

c

c

c

c

所述第二数据,为预设时间段内,当前时刻的数据;所述第二数据,为预设时间段内,前一时刻的数据;所述当前时刻和前一时刻之间为预设时间段;

以上参数,均为查询范围内,同一筛选参数的产品的对应数据;

具体来说,输出数据中,排序为k的产品的数据波动指数表征的意义分情况如下:

(1)若c

(2)若c

(3)若c

由于本申请的数据波动指数模型,以预设时间段内变化方向为划分依据,将查询范围内的所有数据分为变化方向为增加和减小的数据集,再计算出各个输出数据在相同变化方向的数据中的变化程度,最后在整个查询范围内加权后,得到输出数据中,排序为k的产品的数据波动指数,这样就准确地将数据变化的程度进行量化,尤其是得到一种能够准确衡量数据在其变化方向上的具体指标,不仅进一步丰富了查询结果的输出参数,而且在排序的基础上将数据变化进行具体量化,提高了输出结果的准确性和全面性。

为了详细说明本技术方案的有益效果,下面结合实际进行详细举例说明,如下:

按照现有的技术方案,假设市场总数量为M,每个市场中均包含产品数量为 N,所有产品的最新行情数据(即产品代码的关联数据),放到一个结果集进行排序,处理的产品总数为M*N;行情排序接口支持按市场过滤排序结果集,目前需要进行全循环操作,才能查找符合筛选参数和排序规则的产品代码和对应数据,获得最终的排序结果集(即选取输出数据的来源)。

现有技术方案查询操作流程的示意图如图4所示。

以股票行情为例,图中显示了用户从输入需要查询的市场到返回查询结果这一完整的前后端数据传递过程。每当用户修改请求数据参数时,重复101-105 操作步骤。

步骤101:用户在客户端页面上选择需要展示混合市场的排行榜,点击获取排序结果集;

步骤102:客户通过网络传输,将客户端的请求参数传送到服务端;

步骤103:服务端在所有市场快照排序结果集中,全循环遍历每个股票代码,进行筛选参数和排序规则匹配,直到返回符合的记录数再跳出循环,其中遍历次数为M*N次;

步骤104:服务端将返回的结果集,通过网络传输给客户端;

步骤105:客户端根据返回的结果集展示在客户端页面上,用户界面展示排行榜行情。

按照本申请的技术方案,假设市场总数量为M,每个市场中均包含产品数量为N,与现有技术方案的区别在于,本申请提前构建与筛选参数对应的多市场数据查询位置集,包括全市场的第一列表(即总结果集,所有产品代码在总排序结果集的位置信息及其对应数据)和各单市场的第二列表(即单市场posMap,某一市场内所有产品代码的排序信息),这样在查询时能根据请求中的查询指令(即查询范围、筛选参数和排序规则),快速定位到对应的市场代码和产品代码的位置。

单市场查询时,可直接根据查询指令找到对应维护的单市场PosMap信息,遍历该PosMap信息返回结果给客户端;多市场查询时,查找多个单市场的PosMap 信息,按照本申请的选取输出数据的方法返回结果给客户端。这样可以避免全市场代码数的遍历,快速返回查询结果。

构建总结果集及对应的单市场PosMap的步骤及方法如下:

(1)获取所有市场代码的行情快照信息(M个市场),行情快照即该证券或期货代码最新的行情信息,包括最新价、最高价、最低价、开盘价、成交量、成交额、买卖档位、涨跌额、涨跌幅等信息;

(2)将所有的市场快照按照筛选参数,分别汇总到对应的数据集中(即第二数据集,每个数据集有M*N个代码);

(3)将各个对应的数据集,按照排序规则进行排序操作,生成各自的全市场所有代码的总结果集;再以市场为单位,生成对应的各个单市场PosMap,组成多市场数据查询位置集;

(4)查询时,找到对应的多市场数据查询位置集,再按照查询指令,在对应的多市场数据查询位置集中的总结果集或单市场PosMap中,选取所需数据,组成返回数据,输出查询结果;

由以上过程,可知构建多市场数据查询位置集之后,只需按照预设周期更新维护每个单市场的所有产品代码的PosMap信息,即所述每个单市场的所有产品代码在对应总结果集的位置信息。

所述posMap信息,即位置映射信息,英文Position Mapping的简称;其中 PosMap信息的数量为该市场的产品代码个数

总结果集及对应的单市场PosMap的示意图如图5所示。

本申请的查询步骤主要如下:

(1)获取查询指令中需要的市场列表。

(2)查找到对应的市场PosMap信息,如果不是支持的市场马上返回无效市场的错误信息。

(3)单市场排序结果查询时,获取到了对应市场的PosMap信息,根据PosMap 的信息,在总结果集中查找对应位置,再将关联的行情快照信息(定时更新总结果集),打好返回包发送给客户端。

(4)多市场排序结果查询时,获取到了多个单市场的PosMap信息,取查询指令中所需的排序数量(即需要排序在前N个的数据)作为循环次数,循环遍历多个单市场的PosMap信息,由于各个单市场的PosMap信息是唯一的,所以,该查询操作能够仅循环N次操作即可选取所需数据,打包返回数据发送给客户端。

本实施例查询操作流程的示意图如图6所示。

以股票行情为例,图中显示了用户从输入行情市场到返回排序结果这一完整的前后端数据传递过程。每当用户修改请求数据参数时,重复301-308操作步骤。

步骤301:用户在客户端页面上选择需要展示的市场、筛选参数和排序规则,客户端封装请求报文;

步骤302:客户通过网络传输,将客户端的请求报文传送到服务端。

步骤303:解析客户的请求报文,获取市场组列表参数信息(即需要的哪些市场、数据相关的筛选参数和排序规则,用以获取对应市场组合的总结果集和单市场PosMap),在维护的单市场PosMap信息中,查询对应请求参数中市场的多市场数据查询位置集;

步骤304:如果请求参数中的市场没有在维护的单市场PosMap信息中,则说明此市场服务器不支持该市场,返回不支持市场的错误信息给客户端。

步骤305:如果是单市场查询时,定位该市场维护的单市场PosMap信息,循环遍历该单市场PosMap信息,获取每个产品代码在总结果集中的位置,以及对应的数据;

步骤306:如果是多市场查询时,定位所需在维护的多个单市场PosMap信息,取查询指令中所需的排序数量(即需要排序在前N个的数据)作为循环次数,遍历多个单市场PosMap信息,由于单市场PosMap信息都是有序数据,同步操作后,即可直接按位置进行获取关联的快照信息;

步骤307:服务端将返回的结果封装成响应报文,通过网络传输给客户端。

步骤308:客户端根据返回数据,展示在客户端页面上,用户能友好地查看界面展示。

上述实施例进行的优化查询操作,可以独立成新的服务或是在原有的服务上进行改造实现,本申请不进行限定。

由于已经在后端行情服务已经进行了市场与查询结果集的关联,因此,客户端再查询的时候,不需要进行复杂的遍历查询运算,不仅可以实现精确的市场查找,而且节省了服务器的计算压力。

本方案比现有的全市场查询方案更灵活智能,通过构建各个单市场的 PosMap信息,可以减少循环遍历次数。如果是不支持的市场能马上返回,而不需要在所有数据中进行查询,从O(M*N)降成O(0);如果是支持的市场,通过单市场PosMap信息,能够快速找到在总结果集的位置,从O(M*N)降成O(N);从而提高了查询效率。

实施例2

如图7所示,一种多市场数据查询系统,所述系统包括:

数据获取模块,用于从目标数据源中,获取第一数据集;

数据构建模块,用于根据第一数据集,提前构建与查询条件匹配的多市场数据查询位置集;

数据输出模块,用于获取查询指令,并按照查询指令从已匹配的多市场数据查询位置集中选取输出数据,输出查询结果;

所述目标数据源,为最初的数据来源,即多市场数据查询的数据来源,其中的数据包括但不限于:市场代码及市场代码的关联数据、市场中的产品代码及产品代码的关联数据,以及关联数据的存储位置;

所述市场代码,包含该市场的代码,以及属于该市场的所有产品的代码;所述市场代码的关联数据,包含该市场代码的关联数据,以及属于该市场的所有产品代码的关联数据;

所述产品代码、产品代码的关联数据,以及关联数据的存储位置,为互相关联对应的数据,且共同组成为一组数据;

具体来说,获取某一产品代码之后,即可获取该产品代码的关联数据,以及关联数据的存储位置;

所述市场,为产品交易市场,包括但不限于:证券或期货交易所;如上海证券交易所、上海期货交易所、深圳证券交易所、中国香港证券交易所、美股证券交易所等;所述市场代码,为对该市场在数据处理层面所具有的识别代码;所述市场代码的关联数据,为数据处理层面,与该市场有关的所有数据;

所述产品,为所述市场包含的具体产品,包括但不限于:证券或期货;所述产品代码,为该产品在数据处理层面所具有的识别代码;所述产品代码的关联数据,为数据处理层面,与该产品有关的所有数据;

具体来说,所述市场代码,及市场代码的关联数据,在数据处理层面上,对该市场及其包含的数据均标注了同一识别代码,或者将市场代码与市场包含的数据进行关联;同理,所述产品代码,及产品代码的关联数据,在数据处理层面上,对该产品及其包含的数据均标注了同一识别代码,或者将产品代码与产品包含的数据进行关联;这样就使得在整个数据处理的全过程中,所述市场和产品,以及所述市场和产品包含的具体数据,在数据的完整性和数据处理的效率方面均有较大的提升。

所述第一数据集,为目标数据源的快照信息,即目标数据源某一时刻的数据复制;同样包括市场代码及市场代码的关联数据、市场中的产品代码及产品代码的关联数据,以及以上具体数据的存储位置;

具体来说,所述目标数据源的快照信息,就是所有市场的行情快照信息,具体就是目标数据源中,所有市场中的所有产品的最新的行情信息;所述的行情信息也是关联数据的一部分,比如所有产品的最新价、最高价、最低价、开盘价、成交量、成交额、买卖档位、涨跌额、涨跌幅等信息;

所述查询条件,为预设的查询相关的筛选参数和排序规则;

所述多市场数据查询位置集,为根据第一数据集,构建的所有市场和各个单独市场的数据排序结果;

所述查询指令,为查询时指定的筛选参数和排序规则;

所述查询结果,为根据查询指令的具体要求所获得的返回数据;

本申请从目标数据源中,获取第一数据集,并根据第一数据集,提前构建与查询条件匹配的多市场数据查询位置集,这样能够在查询之前,提前构建所有市场和各个单独市场的数据排序结果,不仅为后续的查询操作,提供更加准确的查询结果,而且查询操作的响应时间大大缩短,提高了查询的效率。

进一步的,所述根据第一数据集,提前构建与查询条件匹配的多市场数据查询位置集,包括:

获取第一查询条件;

从所述第一数据集中,抽取与第一查询条件相关的所有的市场代码,市场代码的关联数据,以及具体数据的存储位置,组成第二数据集;

从第二数据集中,依据第一查询条件中的不同的筛选参数,分别提取与筛选参数对应的第一列表数据,并按照该筛选参数对应的排序规则,对所提取的第一列表数据进行排序,并按照该排序结果对所述第一列表数据标注排序位置信息,然后,将该排序位置信息,组成第一列表;

将所述第一列表,以市场为单位进行数据提取,分别组成各个单市场的第二列表,再按照与第一列表相同的排序规则进行单独排序,然后,将该排序位置信息与其在第一列表中对应的排序位置信息,组成第二列表;所述第二列表的数量即市场的个数;

将满足相同筛选参数的第一列表和其对应的多个市场内部的第二列表,组成多市场数据查询位置集;

所述第一查询条件,为预设的查询相关的筛选参数和排序规则,即查询终端所设置的各种筛选参数,及其对应的排序规则;

具体来说,所述第一查询条件,是随着查询终端所预设的查询筛选规则和参数的变化,而对应改变第一查询条件的具体内容的,即第一查询条件是与查询终端能够查询的内容所一一对应的。所述第二数据集,与第一数据集的区别在于,第一数据集是某一时刻目标数据源的直接复制,而第二数据集是根据第一查询条件,从第一数据集中抽取出的部分数据,即与第一查询条件相关的数据。比如:第一数据集中包含某一市场中某个产品代码,及该产品代码的关联数据,则第二数据集抽取的数据为该产品代码,及该产品代码的关联数据之中,与第一查询条件相关的部分数据。

由于获取某一产品代码之后,即可获取该产品代码的关联数据,以及关联数据的存储位置,所以,后续从第二数据集中对所有市场的所有产品进行抽取、筛选、排序之后,获得的第一列表和第二列表,都只需存储产品代码及其对应排序位置信息即可实现对产品代码的关联数据的操作,不仅处理的数据量很小,而且处理效率也进一步提高,当后续查询时,响应速度大幅提高。

所述第一列表数据,为第二数据集中与某一筛选参数相关的具体数据和对应的所有市场内的全部产品代码;

所述第二列表数据,为将第一列表数据按照单独的市场进行划分,划分成各市场的第二列表数据,所有市场对应一个第一列表数据,每个市场对应一个第二列表数据;

具体来说,按照该筛选参数对应的排序规则,对所提取的第一列表数据进行排序,仅仅是针对每个产品代码的关联数据中与该筛选参数一致的数据,进行的排序,所获取的第一列表,也是与该筛选参数一致的数据所对应的排序结果集;也就是说,不同的筛选参数,分别对应不同的第一列表数据,也就会生成不同的第一列表,筛选参数的数量决定了生成第一列表的数量;

所述第二列表,与第一列表的筛选参数和排序规则一致,即相同筛选参数下,一个包含所有市场代码的第一列表与多个包含单市场代码的第二列表,共同组成了一个多市场数据查询位置集;一个筛选参数对应一个多市场数据查询位置集;

本申请采用提前构建多市场数据查询位置集的方式,从第一数据集中,逐步缩小数据范围,首先抽取与第一查询条件匹配的第二数据集,再根据筛选参数和排序规则,从第二数据集中生成了第一列表和其对应的多个第二列表,共同组成了多市场数据查询位置集,这样将原始数据经过层层抽取后,不仅能够使最后获得的多市场数据查询位置集的数据更加准确,而且由于多市场数据查询位置集中的第一列表和第二列表中仅包含产品代码和其对应的排序位置信息,进一步将数据量减小,后续查询时处理数据的效率进一步提高,进而能够显著提高查询操作的响应速度;因此,本申请不仅能够提高多市场数据查询的效率,而且使得查询结果的准确性也进一步提高。

进一步的,所述获取查询指令,并按照查询指令从已匹配的多市场数据查询位置集中选取输出数据,输出查询结果,包括:

从查询指令中获取第二查询条件;

根据第二查询条件,匹配相同筛选参数的多市场数据查询位置集;

在已匹配的多市场数据查询位置集中,按照第二查询条件,抽取相关数据并排序,组成返回数据输出查询结果;

所述查询指令,为查询操作时发出的指令和相关信息;所述第二查询条件,为与匹配相同筛选参数的多市场数据查询位置集相关的参数;

进一步的,所述从查询指令中获取第二查询条件,包括:

从所述查询指令中,确定查询范围,即查询的市场代码及市场数量,并抽取与第一查询条件相关的关键词,并解析出具体的筛选参数和排序规则。

具体来说,由于前期已构建完成各个筛选参数对应的多市场数据查询位置集,所以,在后续查询时,只需要将查询指令中的筛选参数和排序规则,以及查询范围确定后,直接匹配相同筛选参数的多市场数据查询位置集,在已匹配的相同筛选参数的多市场数据查询位置集中,按照查询范围进行针对性地选取第一列表或第二列表,然后对选取的第一列表或第二列表,进行简单地操作,即可立即得到返回数据,输出查询结果,这样整个查询过程,仅需在预先构建的多市场数据查询位置集中,根据具体需求调取第一列表或第二列表,即可获取所需的数据,而无需采用现有的查询方式,直接查询目标数据源,再从目标数据源开始,逐层识别筛选数据;因此,本申请查询时,与现有的查询方式相比,不仅极大地压缩了实际的数据处理量,而且获取查询指令后,需要的数据操作也较为简单,使得查询操作时响应极为快速,尤其是在查询操作频繁,或者查询人数较多时,响应速度的优势更加明显,同时由于多市场数据查询位置集是对多市场数据进行的构建,因而查询时,市场数量的多少对查询响应时间的影响较小,即随着后期市场数量的增加,查询响应时间几乎不变;

综上,本申请的能够在查询操作较为频繁,查询人数较多,且查询的市场数量较多时,均能够保证较低的响应时间,查询处理数据量小,处理时间短,返回查询结果快速。

进一步的,所述在已匹配的多市场数据查询位置集中,按照第二查询条件,抽取相关数据并排序,组成返回数据输出查询结果,包括:

按照第二查询条件中的查询范围,抽取已匹配的多市场数据查询位置集中的第一列表或者第二列表中的相关数据,具体如下:

(1)当查询范围为单市场时,先获取已匹配的多市场数据查询位置集中对应市场的第二列表,将其进行同步操作后,再选取输出数据,组成返回数据,并输出查询结果;

所述同步操作,为确定第二列表中的排序规则是否与所述第二查询条件中的排序规则相同,若相同,则无操作,直接返回输出数据,若相反,则将第二列表倒序处理后,再返回处理后的输出数据;

所述返回数据,为选取的第二列表经过同步处理,再选取输出数据后的最终数据,即按照第二查询条件所需的排序规则进行排列的产品代码和其对应数据,以及其他需要输出的关联数据;

(2)当查询范围为多市场时,分情况:

a.若查询范围为全部市场,先获取已匹配的多市场数据查询位置集中的第一列表,将其进行同步操作后,再选取输出数据,组成返回数据,并输出查询结果;

b.若查询范围为部分市场,先确定查询范围的市场代码,并获取已匹配的多市场数据查询位置集中的对应多个市场的第二列表,将其进行同步操作后,再选取输出数据,生成所需的返回数据,并输出查询结果;

进一步的,所述选取输出数据,包括:

设总共有S个市场,查询范围为X个市场,查询结果需输出前Y个产品代码和其对应数据,即需要输出的查询结果为:某一筛选参数下,在X个市场中,按照某排序规则的前Y个的产品代码和其对应数据;则选取输出数据的方法如下:

(1)若X=1,表示查询范围为单市场,则选取输出数据时,直接选所需第二列表中排序前Y个的产品代码和其对应数据;

(2)若X=S,表示查询范围为全部市场,则选取输出数据时,直接选取所需第一列表中排序前Y个的产品代码和其对应数据;

(3)若1

将查询范围的X市场的第二列表,依次标为1-X号第二列表;

抽取1-X号第二列表中排序最前面的产品代码和其对应数据,即抽取出共X 组数据;

将抽取的X组数据,按照所需排序规则进行比较,选取最符合排序规则的一组数据;

将该组数据,作为返回数据中排序为1的输出数据,并在之后抽取数据时,跳过该排序为1的输出数据;

重复以上抽取输出数据的过程,直到选取出返回数据中排序为Y的输出数据为止;

将选取的Y个输出数据,组成所需的返回数据;

所述重复以上选取输出数据的过程,其抽取输出数据的操作次数,等于所需输出数据的数量,即需要Y个输出数据时,则只需循环Y次抽取输出数据的过程,即可完成。

具体来说,如果按照现有查询方式,必须遍历目标数据源,不仅处理的数据负荷较大,而且由于需要将X个市场的数据全部比较排序后才能确定所需的前Y 个产品代码和其对应数据,所以每次查询的运算量都比较大,这样必然会造成每次查询时,响应速度大幅下降,且随着查询次数的增加,数据处理的负荷将会极大地增加,对查询操作的稳定性和交互体验均有较大的负面影响;而本申请在实现查询操作时,在已提前构建多市场数据查询位置集的基础上,只需要在在X 个市场的数据抽取中,循环Y次即可获得所需的Y个输出数据(即前Y个产品代码和其对应数据),换句话说,以现有查询方式来说,在实施查询操作时,按照最理想的无需排序的情况下,抽取输出数据至少也需要X*Y次循环才可得到所需的Y个输出数据,如果需要排序的话,循环次数将成倍增加,且如果查询的市场数量增加,循环次数也将成倍增加;而以本申请的查询方式来说,在实施查询操作时,不受查询市场数量的限制,均只需需循环Y次抽取输出数据的过程,即可得到输出数据;因此,本申请不仅缩小了数据处理量,降低了数据处理负荷,增加了查询处理的效率,提高了查询响应的速度,在查询操作的稳定性和交互体验上有显著的优化。

进一步的,所述将选取的Y个输出数据,组成所需的返回数据,还包括:

在选取Y个输出数据时,同时将每个输出数据的数据变化程度,作为一项参考指标标注于对应的输出数据,再加入返回数据中,组成所需的返回数据;

所述输出数据的数据变化程度,为在数据处理层面,预设时间段内,构建的多市场数据查询位置集中与输出数据对应的具体数据的变化率;

具体来说,由于查询结果的返回数据,是在与所需筛选参数一致的多市场数据查询位置集之中,按照所需排序规则选取的,所以输出的结果为,同一筛选参数下,输出产品的对应数据及其排序,而排序所包含的信息仅为某产品在列表中的位置,虽然从排序的变化只能获知该产品的对应数据是增加还是减少,却无法得知其增加或减少的程度,尤其是无法衡量其在筛选范围内,与其他同向变化的数据相比时具体的变化程度;本申请将在选取Y个输出数据时,同时将每个输出数据的数据变化程度,在查询结果输出后,不仅可以获得每个输出数据的排序结果,而且,将对应输出数据的变化程度,作为一项参考指标进行标注,使得查询结果所呈现的信息,在数据变化方面,不仅有定性的排序结果,而且也有定量的程度指标,查询结果直观、准确、可参考性强。

进一步的,所述输出数据的数据变化程度,采用数据波动指数表征,具体的数据波动指数模型,如下:

其中,Z

n

n

n为查询范围内,数据在预设时间段内变化方向为增加和减小的产品数量之和,即n=n

c

c

c

c

c

c

所述第二数据,为预设时间段内,当前时刻的数据;所述第二数据,为预设时间段内,前一时刻的数据;所述当前时刻和前一时刻之间为预设时间段;

以上参数,均为查询范围内,同一筛选参数的产品的对应数据;

具体来说,输出数据中,排序为k的产品的数据波动指数表征的意义分情况如下:

(1)若c

(2)若c

(3)若c

由于本申请的数据波动指数模型,以预设时间段内变化方向为划分依据,将查询范围内的所有数据分为变化方向为增加和减小的数据集,再计算出各个输出数据在相同变化方向的数据中的变化程度,最后在整个查询范围内加权后,得到输出数据中,排序为k的产品的数据波动指数,这样就准确地将数据变化的程度进行量化,尤其是得到一种能够准确衡量数据在其变化方向上的具体指标,不仅进一步丰富了查询结果的输出参数,而且在排序的基础上将数据变化进行具体量化,提高了输出结果的准确性和全面性。

实施例3

如图8所示,本发明提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上述实施例1所述的方法。

实施例4

如图9所示,本发明提供一种计算机装置,其特征在于,包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序时,实现如上述实施例1所述的方法。

综上所述,本申请通过构建与筛选参数对应的多市场数据查询位置集,使得查询操作受数据量的影响较小,降低了数据处理量,提高了查询处理效率,不仅缩短了查询响应时间,而且提高了查询结果的准确性。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、介质、装置、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或单元可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块或单元可以是或者也可以不是物理上分开的,作为模块或单元显示的部件可以是或者也可以不是物理模块或单元,即可以位于一个地方,或者也可以分布到多个网络模块或单元上。可以根据实际的需要选择其中的部分或者全部模块或单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块或单元可以集成在一个处理模块或单元中,也可以是各个模块或单元单独物理存在,也可以两个或两个以上模块或单元集成在一个模块或单元中。上述集成的模块或单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的系统、模块、单元等,如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

技术分类

06120115635682