数据库查询系统和方法与流程

文档序号:14860855发布日期:2018-07-04 07:18阅读:304来源:国知局
数据库查询系统和方法与流程

本公开涉及一种数据库查询系统和一种数据库查询方法。



背景技术:

随着科学技术的快速发展,人工智能被越来越多地应用于金融、电商、安防、医疗、教育、自动驾驶和日常生活等诸多领域。人工智能平台上通常需要对大量的数据进行分析处理,例如,对数据库进行查询等,这对现有的通用处理器的性能、负载等各方面都提出了极大的挑战。因此,亟需提供一种能够快速处理数据/信号的方法。



技术实现要素:

本公开的一个方面提供了一种数据库查询系统,所述数据库包括至少一个记录行以及至少一个属性列,所述查询包括通过条件表达式查询,所述系统包括:多个第一计算单元,用于并行处理所述条件表达式中的至少一个单一属性列的计算,以及至少一个第二计算单元,用于基于所述多个第一计算单元输出的计算结果,计算所述条件表达式。

可选地,上述系统还包括:至少一个存储单元,与所述至少一个第一计算单元对应,所述至少一个存储单元中的每个存储单元用于接收所述至少一个记录行中的一行数据中的相应属性列的数据,并将所述相应属性列的数据输出至对应的第一计算单元。

可选地,上述存储单元包括移位寄存器,所述至少一个移位寄存器串行连接。

可选地,上述单一属性列计算至少包括大于计算、小于计算、等于计算或者不等于计算。

可选地,上述第二计算单元包括查找表。上述基于所述多个第一计算单元输出的计算结果,计算所述条件表达式,包括:将所述多个第一计算单元输出的计算结果输入至配置好的查找表,以获得所述条件表达式的计算结果。

可选地,上述至少一个第二计算单元包括多个第二计算单元,所述多个第二计算单元分别用于计算所述条件表达式的一部分。

可选地,上述系统还包括:输出单元,基于所述第二计算单元输出的计算结果,输出满足查询条件的记录行的相应数据。

可选地,上述数据库查询系统能够通过现场可编程门阵列fpga实现。

本公开的另一个方面提供了一种数据库查询方法,所述数据库包括至少一个记录行以及至少一个属性列,所述查询包括通过条件表达式查询,所述方法包括:通过多个第一计算单元并行处理所述条件表达式中的至少一个单一属性列的计算,以及通过至少一个第二计算单元基于所述多个第一计算单元输出的计算结果,计算所述条件表达式。

可选地,上述方法还包括:通过至少一个存储单元中的每个存储单元接收所述至少一个记录行中的一行数据中的相应属性列的数据,并将所述相应属性列的数据输出至对应的第一计算单元,其中,所述至少一个存储单元与所述至少一个第一计算单元对应。

可选地,上述存储单元包括移位寄存器,所述至少一个移位寄存器串行连接。

可选地,上述单一属性列计算至少包括大于计算、小于计算、等于计算或者不等于计算。

可选地,上述第二计算单元包括查找表。上述基于所述多个第一计算单元输出的计算结果,计算所述条件表达式,包括:将所述多个第一计算单元输出的计算结果输入至配置好的查找表,以获得所述条件表达式的计算结果。

可选地,上述至少一个第二计算单元包括多个第二计算单元,所述多个第二计算单元分别用于计算所述条件表达式的一部分。

可选地,上述方法还包括:通过输出单元基于所述第二计算单元输出的计算结果,输出满足查询条件的记录行的相应数据。

可选地,上述数据库查询方法能够通过现场可编程门阵列fpga实现。

本公开的另一方面提供了一种非易失性存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

附图说明

为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了根据本公开实施例的数据库查询系统和方法的应用场景;

图2示意性示出了根据本公开实施例的数据库查询系统的框图;

图3示意性示出了根据本公开另一实施例的数据库查询系统的框图;

图4示意性示出了根据本公开实施例的数据库查询方法的流程图;以及

图5示意性示出了根据本公开另一实施例的数据库查询方法的流程图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“a或b”应当被理解为包括“a”或“b”、或“a和b”的可能性。

附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。

因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。

本公开的实施例提供了一种数据库查询系统以及基于该系统的数据库查询方法,其中,数据库包括至少一个记录行以及至少一个属性列,查询包括通过条件表达式查询。该系统包括:多个第一计算单元,用于并行处理条件表达式中的至少一个单一属性列的计算,以及至少一个第二计算单元,用于基于多个第一计算单元输出的计算结果,计算条件表达式。

图1示意性示出了根据本公开实施例的数据库查询系统和方法的应用场景100。

如图1所示,该应用场景100包括电子设备110和硬件电路120。

电子设备110可以是具有显示装置且能够实现数据传输的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

硬件电路120例如可以是可编程电路,例如,现场可编程门阵列(field-programmablegatearray,fpga),等等,但不限于此。

在本公开实施例中,电子设备110与硬件电路120能够建立通信连接,例如,电子设备110与硬件电路120可以实现彼此之间的数据传输。

例如,在电子设备110需要进行数据库查询时,可以将相关的数据库内容以及相应的查询条件表达式发送至硬件电路120,由硬件电路120根据条件表达式对数据库内容进行查询。可以理解,通过硬件电路实现数据库的查询可以使得处理速度加快。

需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

图2示意性示出了根据本公开实施例的数据库查询系统200的框图。

根据本公开实施例,进行查询的数据库可以包括至少一个记录行以及至少一个属性列,例如可以sql数据库。

在本公开实施例中,可以使用sql查询语句(structuredquerylanguage)对数据库进行查询。例如,可以通过条件表达式对数据库进行查询,条件表达式例如可以是布尔逻辑表达式,条件表达式可以由至少一个sql查询语句组成。

如图2所示,该系统200包括多个第一计算单元210以及至少一个第二计算单元220。

多个第一计算单元210用于并行处理条件表达式中的至少一个单一属性列的计算。

至少一个第二计算单元220用于基于多个第一计算单元210输出的计算结果,计算上述条件表达式。

根据本公开实施例,多个第一计算单元210可以并行工作,例如并行处理相应的条件表达式中的不同的单一属性列的计算。

在本公开实施例中,单一属性列的计算例如至少可以包括大于、小于、等于、或者不等于计算。

可以理解,通常对数据库进行过滤查询的条件表达式非常复杂,其中,单一属性列的计算在条件表达式中可能会被多次使用,并且单一属性列计算只是针对该列对应的属性数据进行计算,如果按照现有技术根据条件表达式一层一层地计算,每一层计算都需要耗费一个周期,总执行周期过长,处理速度较慢。

因此,本公开实施例通过多个第一计算单元210并行的对条件表达式中的单一属性列进行计算,可以减少处理时间,提高处理效率。

根据本公开实施例,第二计算单元220可以根据第一计算单元输出的单一属性列的计算结果,对条件表达式的其他部分进行计算。

在本公开实施例中,可以包括多个第二计算单元,每个第二计算单元可以分别处理条件表达式的一部分,然后再由其他第二计算单元根据多个第二计算单元的输出结果计算该条件表达式。

例如,多个第一计算单元210可以并行处理条件表达式中的第一层内容,例如,单一属性列的计算(例如,大于,小于等)。多个第二计算单元220可以并行计算条件表达式中的第二层内容,例如,乘、除或者括号(仅为示例)。第二计算单元还可以计算条件表达式中的第三层内容,例如,加或者减(仅为示例)。

根据本公开实施例,第二计算单元可以是查找表单元,例如,可以根据条件表达式对查找表进行配置,然后,可以将多个第一计算单元210输出的计算结果输入至配置好的查找表,从而获得相应的计算结果。

例如,可以是4输入的可编程查找表,可以将多个查找表的组合使用,从而可以支持6输入的任意布尔逻辑表达式。通过配置查找表的输入个数和组合个数,可以进一步扩展其能够支持的总输入数。

本公开实施例提供的数据库查询系统200例如可以通过现场可编程门阵列fpga实现。例如,可以将fpga的部分算子配置为第一计算单元,将fpga的部分算子配置为第二计算单元,从而实现本公开实施例的数据库查询系统200。

本公开实施例通过多个第一计算单元并行处理条件表达式中的单一属性列的计算,可以减少处理时间,提高处理效率。并且本公开实施例通过使用配置好的查找表实现条件表达式的计算可以进一步节省处理时间,提高处理效率。

图3示意性示出了根据本公开另一实施例的数据库查询系统300的框图。

如图3所示,数据库查询系统300包括第一存储单元310、第一计算单元320、第二存储单元330、第二计算单元340、第二计算单元350以及输出单元360。

可以理解,图3中的第一存储单元、第一计算单元、第二存储单元、第二计算单元以及输出单元的数据仅仅是示意性的。根据实际需求,可以具有任意数目的第一存储单元、第一计算单元、第二存储单元、第二计算单元以及输出单元。

在本公开实施例中,至少一个存储单元310可以与第一计算单元320对应,存储单元310可以用于接收数据库中的至少一个记录行中的一行数据中的相应属性列的数据,并将该相应属性列的数据输出至对应的第一计算单元320。

根据本公开实施例,第一存储单元310可以是移位寄存器,多个第一存储单元310可以串行连接。

例如,数据库中的数据可以一行一行的进入本公开实施例的数据库查询系统300。当有一行数据进入第一存储单元时,第一个第一存储单元可以获取该行数据的第一属性列的数据,然后该行数据传输到串行连接的第二个第一存储单元,二个第一存储单元可以获取该行数据的第二属性列的数据,以此类推。可以理解,移位寄存器可以根据条件表达式的具体内容通过设置确定获取第几列的数据。

在本公开实施例中,一行数据可以在多个第一存储单元中循环传输,例如,第四个第一存储单元获取该行数据的第四属性列的数据后,该行数据还可以再次传输至第一个第一存储单元,从而第一存储单元可以获取该行数据的第五属性列的数据。

根据本公开实施例,一个第一计算单元320可以接收来自第一存储单元310输出的一个属性列的数据,从而第一计算单元可以实现对单一属性列的计算。

本公开实施例的多个第一计算单元可以并且处理单一属性列的计算。具体可以参考上述参考图2描述的第一计算单元210,在此不再赘述。

第二存储单元330可以接收多个第一计算单元输出的单一属性列的计算结果。

根据本公开实施例,第二存储单元330可以用于存储多个第一计算单元输出的多个单一属性列的计算结果,当需要处理的单一属性列的计算结果都输入到第二存储单元330后,第二存储单元330可以将计算结果输入到第二计算单元340。

第二计算单元用于根据多个单一属性列的计算结果,计算条件表达式。

根据本公开实施例,可以包括多个第二计算单元,每个第二计算单元可以用于计算条件表达式的一部分。

例如,如图所示,可以先使用4个(仅为示例)第二计算单元340计算条件表达式的4个部分,然后再通过第二计算单元350根据4个部分的计算结果继续计算该条件表达式。

可以理解,第二计算单元可以是任意多层的组合,可以如图3所示的二层结构,也可以是更多或者更少的层结构,具体的第二计算单元的数量以及数据传输顺序本领域技术人员可以根据实际的条件表达式进行设定。

本公开实施例的第二计算单元可以是查找表单元,例如,可编程查找表,可以根据条件表达式对查找表进行配置。具体地,可以参考上述参考图2描述的第二计算单元220,在此不再赘述。

输出单元360可以基于第二计算单元输出的计算结果,输出满足查询条件的记录行的相应数据。

根据本公开实施例,第二计算单元对于条件表达式的最终计算结果可以为1或0,例如,如果第二计算单元输出1,则可以表示当前记录行满足条件表达式,如果第二计算单元输出0,则可以表示当期记录行不满足条件表达式。

在本公开实施例中,如果第二计算单元输出的计算结果为当前记录行满足条件表达式,则输出单元将当前记录行的整行数据输出,如果第二计算单元输出的计算结果为当前记录行不满足条件表达式,则不输出当前记录行。

本公开实施例提供的数据库查询系统300例如可以通过现场可编程门阵列fpga实现。例如,可以将fpga的部分算子配置为第一计算单元,将fpga的部分算子配置为第二计算单元,从而实现本公开实施例的数据库查询系统300。

本公开实施例通过采用移位寄存器搭建数据缓冲存储阵列,每一级缓冲存储阵列对应一个或多个第一计算单元,当数据流经缓冲存储阵列时,可以根据设定提取相应的列数据,从而使得该数据可以进入到第一计算单元完成计算,从而可以实现多个计算单元对于不同属性列的并行处理,同时还可以使得计算过程可以以流水线的方式实现,数据可以连续输入输出,节省了处理时间,提高了处理效果。

本公开实施例还可以提供多个第二计算单元,根据条件表达式的复杂程度,可以将条件表达式拆分为多个部分并行处理,进一步节省了处理时间,提高了处理效果。

图4示意性示出了根据本公开实施例的数据库查询方法的流程图。

根据本公开实施例,进行查询的数据库可以包括至少一个记录行以及至少一个属性列,例如可以sql数据库。

在本公开实施例中,可以使用sql查询语句(structuredquerylanguage)对数据库进行查询。例如,可以通过条件表达式对数据库进行查询,条件表达式例如可以是布尔逻辑表达式,条件表达式可以由至少一个sql查询语句组成。

如图4所示,该方法包括操作s401~s402。

在操作s401通过多个第一计算单元并行处理条件表达式中的至少一个单一属性列的计算。

在操作s402通过至少一个第二计算单元基于多个第一计算单元输出的计算结果,计算条件表达式。

下面,参考图2所示的数据库查询系统200描述该方法。

根据本公开实施例,多个第一计算单元210可以并行工作,例如并行处理相应的条件表达式中的不同的单一属性列的计算。

在本公开实施例中,单一属性列的计算例如至少可以包括大于、小于、等于、或者不等于计算。

可以理解,通常对数据库进行过滤查询的条件表达式非常复杂,其中,单一属性列的计算在条件表达式中可能会被多次使用,并且单一属性列计算只是针对该列对应的属性数据进行计算,如果按照现有技术根据条件表达式一层一层地计算,每一层计算都需要耗费一个周期,总执行周期过长,处理速度较慢。

因此,本公开实施例通过多个第一计算单元210并行的对条件表达式中的单一属性列进行计算,可以减少处理时间,提高处理效率。

根据本公开实施例,第二计算单元220可以根据第一计算单元输出的单一属性列的计算结果,对条件表达式的其他部分进行计算。

在本公开实施例中,可以包括多个第二计算单元,每个第二计算单元可以分别处理条件表达式的一部分,然后再由其他第二计算单元根据多个第二计算单元的输出结果计算该条件表达式。

例如,多个第一计算单元210可以并行处理条件表达式中的第一层内容,例如,单一属性列的计算(例如,大于,小于等)。多个第二计算单元220可以并行计算条件表达式中的第二层内容,例如,乘、除或者括号(仅为示例)。第二计算单元还可以计算条件表达式中的第三层内容,例如,加或者减(仅为示例)。

根据本公开实施例,第二计算单元可以是查找表单元,例如,可以根据条件表达式对查找表进行配置,然后,可以将多个第一计算单元210输出的计算结果输入至配置好的查找表,从而获得相应的计算结果。

例如,可以是4输入的可编程查找表,可以将多个查找表的组合使用,从而可以支持6输入的任意布尔逻辑表达式。通过配置查找表的输入个数和组合个数,可以进一步扩展其能够支持的总输入数。

本公开实施例提供的数据库查询方法例如可以通过现场可编程门阵列fpga实现。例如,可以将fpga的部分算子配置为第一计算单元,将fpga的部分算子配置为第二计算单元,从而实现本公开实施例的数据库查询方法。

本公开实施例通过多个第一计算单元并行处理条件表达式中的单一属性列的计算,可以减少处理时间,提高处理效率。并且本公开实施例通过使用配置好的查找表实现条件表达式的计算可以进一步节省处理时间,提高处理效率。

图5示意性示出了根据本公开另一实施例的数据库查询方法的流程图。

如图5所示,该方法包括操作s501~s502,以及操作s401~s402。其中,操作s401~s402与上述参考图4描述的方法相同或类似,在此不再赘述。

在操作s501,通过至少一个存储单元中的每个存储单元接收至少一个记录行中的一行数据中的相应属性列的数据,并将相应属性列的数据输出至对应的第一计算单元,其中,至少一个存储单元与至少一个第一计算单元对应。

在操作s502,通过输出单元基于第二计算单元输出的计算结果,输出满足查询条件的记录行的相应数据。

下面,参考图3所示的数据库查询系统300描述该方法。

在本公开实施例中,至少一个存储单元310可以与第一计算单元320对应,存储单元310可以用于接收数据库中的至少一个记录行中的一行数据中的相应属性列的数据,并将该相应属性列的数据输出至对应的第一计算单元320。

根据本公开实施例,第一存储单元310可以是移位寄存器,多个第一存储单元310可以串行连接。

例如,数据库中的数据可以一行一行的进入本公开实施例的数据库查询系统300。当有一行数据进入第一存储单元时,第一个第一存储单元可以获取该行数据的第一属性列的数据,然后该行数据传输到串行连接的第二个第一存储单元,二个第一存储单元可以获取该行数据的第二属性列的数据,以此类推。可以理解,移位寄存器可以根据条件表达式的具体内容通过设置确定获取第几列的数据。

在本公开实施例中,一行数据可以在多个第一存储单元中循环传输,例如,第四个第一存储单元获取该行数据的第四属性列的数据后,该行数据还可以再次传输至第一个第一存储单元,从而第一存储单元可以获取该行数据的第五属性列的数据。

根据本公开实施例,一个第一计算单元320可以接收来自第一存储单元310输出的一个属性列的数据,从而第一计算单元可以实现对单一属性列的计算。

本公开实施例的多个第一计算单元可以并且处理单一属性列的计算。具体可以参考上述参考图2描述的第一计算单元210,在此不再赘述。

第二存储单元330可以接收多个第一计算单元输出的单一属性列的计算结果。

根据本公开实施例,第二存储单元330可以用于存储多个第一计算单元输出的多个单一属性列的计算结果,当需要处理的单一属性列的计算结果都输入到第二存储单元330后,第二存储单元330可以将计算结果输入到第二计算单元340。

第二计算单元用于根据多个单一属性列的计算结果,计算条件表达式。

根据本公开实施例,可以包括多个第二计算单元,每个第二计算单元可以用于计算条件表达式的一部分。

例如,如图所示,可以先使用4个(仅为示例)第二计算单元340计算条件表达式的4个部分,然后再通过第二计算单元350根据4个部分的计算结果继续计算该条件表达式。

可以理解,第二计算单元可以是任意多层的组合,可以如图3所示的二层结构,也可以是更多或者更少的层结构,具体的第二计算单元的数量以及数据传输顺序本领域技术人员可以根据实际的条件表达式进行设定。

本公开实施例的第二计算单元可以是查找表单元,例如,可编程查找表,可以根据条件表达式对查找表进行配置。具体地,可以参考上述参考图2描述的第二计算单元220,在此不再赘述。

输出单元360可以基于第二计算单元输出的计算结果,输出满足查询条件的记录行的相应数据。

根据本公开实施例,第二计算单元对于条件表达式的最终计算结果可以为1或0,例如,如果第二计算单元输出1,则可以表示当前记录行满足条件表达式,如果第二计算单元输出0,则可以表示当期记录行不满足条件表达式。

在本公开实施例中,如果第二计算单元输出的计算结果为当前记录行满足条件表达式,则输出单元将当前记录行的整行数据输出,如果第二计算单元输出的计算结果为当前记录行不满足条件表达式,则不输出当前记录行。

本公开实施例提供的数据库查询系统300例如可以通过现场可编程门阵列fpga实现。例如,可以将fpga的部分算子配置为第一计算单元,将fpga的部分算子配置为第二计算单元,从而实现本公开实施例的数据库查询系统300。

本公开实施例通过采用移位寄存器搭建数据缓冲存储阵列,每一级缓冲存储阵列对应一个或多个第一计算单元,当数据流经缓冲存储阵列时,可以根据设定提取相应的列数据,从而使得该数据可以进入到第一计算单元完成计算,从而可以实现多个计算单元对于不同属性列的并行处理,同时还可以使得计算过程可以以流水线的方式实现,数据可以连续输入输出,节省了处理时间,提高了处理效果。

本公开实施例还可以提供多个第二计算单元,根据条件表达式的复杂程度,可以将条件表达式拆分为多个部分并行处理,进一步节省了处理时间,提高了处理效果。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

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