面向海量规格化数据的并行比较模型及方法与流程

文档序号:14835991发布日期:2018-06-30 12:25阅读:187来源:国知局
面向海量规格化数据的并行比较模型及方法与流程

本发明属于机器数级数据比较方法技术领域,特别是涉及一种面向海量规格化数据的并行比较模型及方法。



背景技术:

互联网、移动通信、社交网络、电子商务等技术的发展已将人类社会带入了以“ZB”为量级的大数据时代。大数据具有数据体量巨大(Volume)、数据类型繁多(Variety)、价值密度低(Value)、处理速度快(Velocity)的4V特点,对数据信息的管理查询要求与难度越来越高。数据库系统是管理信息系统的核心查询操作是大数据应用的核心操作。

从大多数系统的使用实例来看,查询操作在各种数据库操作中所占据的比重较大,而查询操作所付出的时间代价往往又是最大,尤其是对于海量的数据而言,查询所需时间更是急剧上升。

传统数据库在进行复杂查询条件的查询时,查询条件中含有多个字段,数据库无法一次比较所有查询字段,而是逐个字段依次比较,查询条件中含有的字段越多,查询速度越慢。如果能设计出一种并行比较的模型,将数据输入模型后,可以实现对查询条件多个字段的并行比较,能大大增加查询的数据与查询条件的比较效率。



技术实现要素:

为了克服现有技术中存在的缺陷,本发明的目的是提供一种面向海量规格化数据的并行比较模型,对海量规格化数据实现查询条件多字段的并行比较,提高查询效率,缩短查询时间;本发明的另一目的是提供一种面向海量规格化数据的并行比较方法。

为了实现上述目的,本发明采用以下的技术方案:

本发明提供一种面向海量规格化数据的并行比较模型,包括存储模板寄存器、当前记录寄存器、字段标志寄存器、掩码寄存器、字段类型寄存器、结果标识寄存器和字段要求寄存器。

进一步地,所述存储模板寄存器用于存储查询比较时的比较模板;所述当前记录寄存器用于写入查询数据。

进一步地,所述字段标志寄存器用于标志存储模板寄存器和当前记录寄存器中各个字段的长度;所述掩码寄存器用于设置当前记录寄存器中参与比较的查询字段。

进一步地,所述字段类型寄存器用于表示查询字段是定点数或者浮点数。

进一步地,所述结果标识寄存器用于存入查询数据与比较模板的每个字段的比较结果;所述字段要求寄存器用于与存储模板寄存器相配合表示查询条件,字段要求寄存器中写入查询条件的比较关系。

本发明还提供一种面向海量规格化数据的并行比较方法,包含以下步骤:

将数据库的查询数据加载到当前记录寄存器;

在查询时,首先将查询条件写入存储模板寄存器和字段要求寄存器中,然后通过设置掩码寄存器选择参与查询的字段,设置字段标志寄存器确定各个查询字段的长度,设置字段类型寄存器表示各个查询字段的数据类型;

在机器数级,将查询数据与比较模板的各个字段的二进制数值进行比较,将比较结果保存在结果标识寄存器中。

进一步地,当一个字段包含多个单元,在字段内通过字段内归并,将不同单元的比较结果归并,得到一个字段的比较结果。

进一步地,所述字段内归并的具体实现过程如下:

首先以8位为一个单元,若查询字段为8位,在机器数级,直接对二进制数值进行比较,比较结果存放至结果标识寄存器,结果标识寄存器也是8位为一个单元,包括A、B、C、D、E、F、G、H位,其中A标志位为高电平表示无符号等于,B标志位为高电平表示无符号大于,C标志位为高电平表示无符号小于,D标志位为高电平表示有符号等于,E标志位为高电平表示有符号大于,F标志位为高电平表示有符号小于,G位和H位无意义,置零;

若查询字段为16位,将两个8位字段合并,两个单元归并逻辑关系为:

无符号等于:A1A2=1

无符号大于:A1B2+B1=1

无符号小于:A1C2+C1=1

有符号等于:D1D2=1

有符号大于:D1E2+E1=1

有符号小于:D1F2+F1=1

其中A1、B1、C1、D1、E1、F1表示查询字段的第一个单元的比较结果,A2、B2、C2、D2、E2、F2表示查询字段的第二个单元的比较结果;

若查询字段为32位,看成2个16位的逻辑大小比较,由上述方法得到2个16位字段的大小关系,再用两个单元归并逻辑关系,得到32位字段的大小比较;

字段内的归并由多个两个单元归并的操作组成,将比较结果保存在查询字段第一个单元对应的结果标识寄存器中。

进一步地,当查询条件包含多个字段,将字段间的结果归并,得到整个查询条件的比较结果。

进一步地,查询字段的第一个单元对应的结果标识寄存器存储的是该字段的比较结果,多个字段归并时,将比较结果与对应的字段要求寄存器进行比较,符合要求说明该字段满足查询条件该字段的要求,若所有字段都满足要求,即为所查询的数据;设结果标识寄存器的位为A、B、C、D、E、F、G、H,字段要求寄存器的位为A'、B'、C'、D'、E'、F'、G'、H',该字段符合要求的逻辑关系为:

满足以上逻辑关系则说明比较关系符合字段比较要求的关系。

与现有技术相比,本发明具有以下优点:

本发明提供的一种面向海量规格化数据的并行比较模型,该模型通过对多个寄存器的配置,实现对多字段规格化的长数据进行并行比较,多个查询条件同时写入寄存器进行比较,大大提高了查询效率;相较于现在的mysql,oracle等数据库对多字段只能逐条比较,提高了查询过程中数据与查询条件比较的效率,实现查询性能的提升。

上述一种面向海量规格化数据的并行比较方法的有益效果与一种面向海量规格化数据的并行比较模型的有益效果类似,此处不再赘述。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的一种面向海量规格化数据的并行比较模型的结构示意图;

图2是字段内归并和字段间归并的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有实施例,都属于本发明保护的范围。

如图1所示,本实施例提供一种面向海量规格化数据的并行比较模型,包括存储模板寄存器、当前记录寄存器、字段标志寄存器、掩码寄存器、字段类型寄存器、结果标识寄存器和字段要求寄存器。

存储模板寄存器,用作存储查询比较时的比较模板,比较模板与每一条查询数据进行比较。

当前记录寄存器,用于写入查询数据。

字段标志寄存器,用于标志存储模板寄存器和当前记录寄存器中各个字段的长度,用全0或全1表示,不同字段对应的字段标志寄存器按0和1相间的方式设置。

掩码寄存器,用于设置当前记录寄存器中参与比较的查询字段,不参与比较的查询字段对应的掩码寄存器设置为全0,参与比较的查询字段对应的掩码寄存器设置为全1。

字段类型寄存器,用于表示查询字段是定点数或者浮点数,1代表定点数,0代表浮点数。

结果标识寄存器,用于将查询数据与比较模板的每个字段的比较结果存入对应的结果标识寄存器。以8bit为一个单元,每个单元包括A、B、C、D、E、F、G、H位,其中,A标志位为高电平表示无符号等于,B标志位为高电平表示无符号大于,C标志位为高电平表示无符号小于,D标志位为高电平表示有符号等于,E标志位为高电平表示有符号大于,F标志位为高电平表示有符号小于,G位和H位无意义,置零。

字段要求寄存器,用于与存储模板寄存器相配合表示查询条件,只保存在查询字段对应的第一个单元内,其他单元置0。比如查询所有大于300的数据,300保存在存储模板寄存器中,大于符号保存在字段要求寄存器中。具体表示方法为:字段要求寄存器只表示查询条件的比较关系。字段要求寄存器,以8bit为一个单元,每个单元也包括A、B、C、D、E、F、G、H位,A标志位为高电平表示无符号等于,B标志位为高电平表示无符号大于,C标志位为高电平表示无符号小于,D标志位为高电平表示有符号等于,E标志位为高电平表示有符号大于,F标志位为高电平表示有符号小于,G位和H位无意义,置零。通过A、B、C位的配置,可以表示无符号查询比较条件,100表示无符号等于,010表示无符号大于,001表示无符号小于,110表示无符号大于等于,101表示无符号小于等于,011表示不等于。同理,通过D、E、F位的配置,表示有符号查询比较条件。

对于查询条件的不同字段而言,数据类型有许多种,当无论代表何种含义,无论是数值、字符、逻辑、日期还是别的数据类型,对于硬件设备而言都是机器数,都是二进制的形式表示,在数据机器数级比较方法的基础上,将查询条件的各个字段与数据作比较,并将各个字段的比较结果存入相应的结果标志寄存器。并且实现对多个字段比较结果的归并,最终得到整个查询条件与数据的比较结果,从而筛选出所要查询的数据。

该模型通过对多个寄存器的配置,实现对多字段规格化的长数据进行并行比较,多个查询条件同时写入寄存器进行比较,大大提高了查询效率。

与上述模型实施例相对应地,本发明还提供一种面向海量规格化数据的并行比较方法,该方法包含以下步骤:

将数据库的查询数据加载到当前记录寄存器,可在单个运算周期完成一条记录的筛选;

在查询时,首先将查询条件写入存储模板寄存器和字段要求寄存器中,然后通过设置掩码寄存器选择参与查询的字段,设置字段标志寄存器确定各个查询字段的具体长度,设置字段类型寄存器表示各个查询字段的数据类型,该模型采用字段类型寄存器和字段标注寄存器相互配合完成数据类型的表示。

在比较时,以8bit为一个单元,对于数据长度为2048bit的记录而言,最多可以分为256个字段(全部存储的是字节型数据),每个单元内进行8bit的机器数级比较,将查询数据与比较模板的各个字段的二进制数值同时进行每8位的比较,结果标识寄存器对应当前记录寄存器,每个单元也是8bit,将比较结果保存在结果标识寄存器的不同位上,实现多字段查询。

如图2所示,由于字段标志寄存器可知,一个字段长度包含多个单元,在字段内通过字段内归并,将不同单元的比较结果归并起来,得到一个字段的比较结果。

字段内归并的整体思路是:首先,由于查询字段按每8位划分,得到的各个8位字段按照机器数级比较方式,得到每个8位与模板上对应位的大小关系,而后,将各个8位的比较结果进行逻辑组合,得到查询字段与模板数据的大小关系,符合条件的数据取入,不符合条件的数据丢弃。

字段内归并的具体实现过程如下:

若查询字段为8位,在机器数级,直接对二进制数值进行比较,比较结果存放至结果标识寄存器,结果结存器总是存放每8位的比较结果,所以结果标识寄存器也是8位为一个单元,包括A、B、C、D、E、F、G、H位,其中A标志位为高电平表示无符号等于,B标志位为高电平表示无符号大于,C标志位为高电平表示无符号小于,D标志位为高电平表示有符号等于,E标志位为高电平表示有符号大于,F标志位为高电平表示有符号小于,G位和H位无意义,置零。

若查询字段为16位,则将两个8位字段合并,用下标代表这是第几个单元的比较,比如B1代表查询字段的第一个单元第2位上是高电平(表示查询字段的第一个单元的比较结果,比较模板无符号大于查询数据),两个单元归并逻辑关系为:

无符号等于:A1A2=1

无符号大于:A1B2+B1=1

无符号小于:A1C2+C1=1

有符号等于:D1D2=1

有符号大于:D1E2+E1=1

有符号小于:D1F2+F1=1

如此,便可以得到16位查询字段的比较逻辑关系,按8位为一个单元划分,分为两个单元,对每个单元的二进制8位机器数进行比较,得到的逻辑大小结果存到结果标识寄存器;然后,再进行2个8位的逻辑大小比较,比较规则上文已经给出,得到的比较结果写入第一个单元对应的结果标识寄存器。

依次类推,32位字段的大小比较,可以看成是2个16位的逻辑大小比较,由上述方法得到2个16位字段的大小关系,再用两个单元归并逻辑关系,从而得到32位字段的大小比较。

64位字段的大小比较,可以看成是2个32位的逻辑大小比较。

所以,字段内的归并可以由许多两个单元归并的操作组成,并且将比较结果保存在查询字段第一个单元对应的结果标识寄存器中。

如图2所示,除了字段内归并,由于查询条件可能含有多个字段,还涉及到不同字段间的结果归并。字段间的结果归并,最终得到整个查询条件的比较结果,完成对一条数据比较,如果满足条件,筛选出数据,如果不满足条件,将下一条数据写入当前记录寄存器。

字段间归并的具体实现过程如下:

字段间归并与字段内归并类似,查询字段的第一个单元对应的结果标识寄存器存储的是该字段的比较结果,多个字段归并时,将比较结果与对应的字段要求寄存器进行比较,符合要求说明该字段满足查询条件该字段的要求,若所有字段都满足要求,即为所查询的数据;设结果标识寄存器的位为A、B、C、D、E、F、G、H,字段要求寄存器的位为A'、B'、C'、D'、E'、F'、G'、H',该字段符合要求的逻辑关系为:

满足以上逻辑关系则说明比较关系符合字段比较要求的关系。

需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来讲是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1