CN113468169B - 硬件数据库查询方法、数据库系统查询方法及装置 - Google Patents
硬件数据库查询方法、数据库系统查询方法及装置 Download PDFInfo
- Publication number
- CN113468169B CN113468169B CN202110615939.9A CN202110615939A CN113468169B CN 113468169 B CN113468169 B CN 113468169B CN 202110615939 A CN202110615939 A CN 202110615939A CN 113468169 B CN113468169 B CN 113468169B
- Authority
- CN
- China
- Prior art keywords
- data
- sequence
- data sequence
- instruction
- data table
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Abstract
本发明提供了一种硬件数据库查询方法、数据库系统查询方法及装置,其中,该硬件数据库查询方法包括:接收查询请求信息;根据所述查询请求信息,执行硬件数据库处理器指令集中的一个或多个指令,得到查询执行结果;输出所述查询执行结果。其中,所述查询请求信息包括执行所述一个或多个指令需要传入的信息;所述硬件数据库处理器指令集包括数据序列选取指令、数据元素条件选取指令、数据元素参考选取指令、数据序列合并连接指令、数据表划分指令、数据序列聚合指令、同构数据表拼接指令、及数据表排序指令。通过上述方案能够提高数据库查询处理速度。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种硬件数据库查询方法、数据库系统查询方法及装置。
背景技术
随着数据量的增加,数据库访问延时越来越大,许多曾经在小数据上用传统方法很容易完成的任务,如今在大数据上就变得非常困难。目前最快的SSD存储可以达到12GB/s的读取速度,但即便这样的速度,如果数据库有15TB大小,想要用完整检索的方式完成一次查询仍然需要33小时。为了加快数据库查询速度,可以考虑采用设计专用处理器(硬件数据库)的方法来提高数据库的性能。然而,传统数据库的指令无法适用于专用处理器,而且即使部分适用,也难以使得专用处理器提高数据库的处理速度。
发明内容
有鉴于此,本发明提供了一种硬件数据库查询方法、数据库系统查询方法及装置,以提高数据库查询处理速度。
为了达到上述目的,本发明采用以下方案实现:
根据本发明实施例的一个方面,提供了一种硬件数据库查询方法,包括:
接收查询请求信息;
根据所述查询请求信息,执行硬件数据库处理器指令集中的一个或多个指令,得到查询执行结果;其中,所述查询请求信息包括执行所述一个或多个指令需要传入的信息;所述硬件数据库处理器指令集包括数据序列选取指令、数据元素条件选取指令、数据元素参考选取指令、数据序列合并连接指令、数据表划分指令、数据序列聚合指令、同构数据表拼接指令、及数据表排序指令;
输出所述查询执行结果;
其中:
所述数据序列选取指令被执行时用于实现传入待选取数据序列ID和待选取数据表ID,并从待选取数据表ID对应的数据表中选取待选取数据序列ID对应的数据序列;
所述数据元素条件选取指令被执行时用于实现传入待选取数据序列ID、选取条件操作、及所述选取条件操作的参数值,并从待选取数据序列ID对应的数据序列中选取满足包含所述选取条件操作及其参数值的选取条件的数据元素生成相应的布尔序列;
所述数据元素参考选取指令被执行时用于实现传入待选取数据序列ID和参考布尔序列ID,并依据参考布尔序列ID对应的布尔序列从待选取数据序列ID对应的数据序列中选取数据元素形成数据序列;
所述数据序列合并连接指令被执行时用于实现传入第一待合并数据序列ID和第二待合并数据序列ID,并将第一待合并数据序列ID对应的数据序列和第二待合并数据序列ID对应的数据序列,按数据元素位置顺序合并成一个数据表;
所述数据表划分指令被执行时用于实现传入待划分数据表ID和参考数据序列ID,并根据参考数据序列ID对应的数据序列中的数据元素分类对待划分数据表ID对应的数据表划分成一个或多个子数据表;
所述数据序列聚合指令被执行时用于实现传入待聚合数据序列ID、聚合操作、及参考数据序列ID,并对参考数据序列ID对应的数据序列中的数据元素进行同类合并,相应地根据所述聚合操作对待聚合数据序列ID对应的数据序列中的元素进行聚合,以及根据同类合并后的数据序列和聚合后的数据序列形成数据表;
所述同构数据表拼接指令被执行时用于实现传入第一待拼接数据表ID和第二待拼接数据表ID,并将相互同构的第一待拼接数据表ID对应的数据表和第二待拼接数据表ID对应的数据表拼接成一个数据表;
所述数据表排序指令被执行时用于实现传入待排序数据表ID、参考数据序列ID、及排序方式,并依据参考数据序列ID对应的数据序列以所述排序方式对待排序数据表ID对应的数据表中的数据元素进行排序。
在一些实施例中,生成的布尔序列包括1和/或0,其中,1是在待选取数据序列ID对应的数据序列中的数据元素满足包含所述选取条件操作及其参数值的选取条件的情况下输出,0是在待选取数据序列ID对应的数据序列中的数据元素不满足包含所述选取条件操作及其参数值的选取条件的情况下输出。
在一些实施例中,所述数据序列选取指令表示为:ColSel(Table ID,Col ID),其中,ColSel表示数据序列选取指令的操作码,Table ID表示用于传入待选取数据表ID的第一操作数,Col ID表示用于传入待选取数据序列ID的第二操作数;和/或,
所述数据元素条件选取指令表示为:BoolGen(Col ID,Condition,Constant),其中,BoolGen表示数据元素条件选取指令的操作码,Col ID表示用于传入待选取数据序列ID的第一操作数,Condition表示用于传入选取条件操作的第二操作数,Constant表示用于传入选取条件操作的参数值的第三操作数;和/或,
所述数据元素参考选取指令表示为:RowExt(Col ID,Bool ID),其中,RowExt表示数据元素参考选取指令的操作码,Col ID表示用于传入待选取数据序列ID的第一操作数,Bool ID表示用于传入参考布尔序列ID的第二操作数;和/或,
所述数据序列合并连接指令表示为:ColStitch(Col ID0,Col ID1),其中,ColStitch表示数据序列合并连接指令的操作码,Col ID0表示用于传入第一待合并数据序列ID的第一操作数,Col ID1表示用于传入第二待合并数据序列ID的第二操作数;和/或,
所述数据表划分指令表示为:TablePart(Table ID,Col ID),其中,TablePart表示数据表划分指令的操作码,Table ID表示用于传入待划分数据表ID的第一操作数,ColID表示用于传入参考数据序列ID的第二操作数;和/或,
所述数据序列聚合指令表示为:Agg(Col ID0,Condition,Col ID1),其中,Agg表示数据序列聚合指令的操作码,Col ID0表示用于传入待聚合数据序列ID的第一操作数,Condition表示用于传入聚合操作的第二操作数,Col ID1表示用于传入参考数据序列ID的第三操作数;和/或,
所述同构数据表拼接指令表示为:TabAppend(Table ID0,Table ID1),其中,TabAppend表示同构数据表拼接指令的操作码,Table ID0表示用于传入第一待拼接数据表ID的第一操作数,Table ID1表示用于传入第二待拼接数据表ID的第二操作数;和/或,
所述数据表排序指令表示为:TableSort(Table ID,Col ID,Condition),其中,TableSort表示数据表排序指令的操作码,Table ID表示用于传入待排序数据表ID的第一操作数,Col ID表示用于传入参考数据序列ID的第二操作数,Condition表示用于传入排序方式的第三操作数。
在一些实施例中,所述数据元素条件选取指令被执行时所传入的选取条件操作为大于、等于、小于、大于或等于、小于或等于、约等于、或字符串匹配操作。
在一些实施例中,所述数据序列聚合指令被执行时所传入的聚合操作为求和、求平均、求最大、求最小或计数。
在一些实施例中,所述数据表排序指令被执行时所传入的排序方式为升序或降序。
在一些实施例中,所述数据序列选取指令被执行时还用于实现:
传入待选取数据序列ID和待选取数据表ID;
根据待选取数据表ID确定待选取数据表ID对应的数据表的存储位置;
从待选取数据表ID对应的数据表的存储位置依次读取数据元素;
依据待选取数据序列ID对读取的数据元素进行数据过滤,得到待选取数据序列ID对应的数据元素;
按读取顺序将得到的待选取数据序列ID对应的数据元素存储为对应于待选取数据序列ID的数据序列。
在一些实施例中,所述数据元素条件选取指令被执行时还用于实现:
传入待选取数据序列ID、选取条件操作、及所述选取条件操作的参数值;
根据待选取数据序列ID确定待选取数据序列ID对应的数据序列的存储位置;
从待选取数据序列ID对应的数据序列的存储位置依次读取数据元素;
判断读取的数据元素是否满足选取条件操作及其参数值对应的条件;
在读取的数据元素满足选取条件操作及其参数值对应的条件的情况下,输出满足条件的标识;在读取的数据元素不满足选取条件操作及其参数值对应的条件的情况下,输出不满足条件的标识;
按数据元素的读取顺序存储输出的满足条件的标识或不满足条件的标识形成布尔序列,并为形成的布尔序列设置布尔序列ID。
在一些实施例中,所述数据元素参考选取指令被执行时还用于实现:
传入待选取数据序列ID和参考布尔序列ID;
根据待选取数据序列ID确定待选取数据序列ID对应的数据序列的存储位置,以及根据参考布尔序列ID确定参考布尔序列ID对应的布尔序列的存储位置;
从待选取数据序列ID对应的数据序列的存储位置依次读取数据序列的数据元素,以及从参考布尔序列ID对应的布尔序列的存储位置依次读取布尔序列的数据元素;
若读取的布尔序列的数据元素为满足条件的标识,则保留相应读取次序的读取的数据序列的数据元素;
按读取顺序存储保留的数据序列的数据元素为一个数据序列,并为该数据序列设置数据序列ID。
在一些实施例中,所述数据序列合并连接指令被执行时还用于实现:
传入第一待合并数据序列ID和第二待合并数据序列ID;
根据第一待合并数据序列ID确定第一待合并数据序列ID对应的数据序列的存储位置,以及根据第二待合并数据序列ID确定第二待合并数据序列ID对应的数据序列的存储位置;
从第一待合并数据序列ID对应的数据序列的存储位置依次读取第一待合并数据序列的数据元素,以及从第二待合并数据序列ID对应的数据序列的存储位置依次读取第二待合并数据序列的数据元素;
将对应同一读取次序的读取的第一待合并数据序列的数据元素和读取的第二待合并数据序列的数据元素合并为一个数据元素;
按读取顺序存储合并得到的数据元素形成一个数据表,并为形成的数据表设置数据表ID。
在一些实施例中,所述数据表划分指令被执行时还用于实现:
传入待划分数据表ID和参考数据序列ID;
根据待划分数据表ID确定待划分数据表ID对应的数据表的存储位置,以及根据参考数据序列ID确定参考数据序列ID对应的数据序列的存储位置;
从待划分数据表ID对应的数据表的存储位置依次读取数据表的数据元素,并从参考数据序列ID对应的数据序列的存储位置依次读取参考数据序列的数据元素;
对于相同的各读取的参考数据序列的数据元素,将相应读取次序的读取的数据表的数据元素按读取顺序存储为一个子数据表。
在一些实施例中,所述数据序列聚合指令被执行时还用于实现:
传入待聚合数据序列ID、聚合操作、及参考数据序列ID;
根据待聚合数据序列ID确定待聚合数据序列ID对应的数据序列的存储位置,以及根据参考数据序列ID确定参考数据序列ID对应的参考数据序列的存储位置;
从待聚合数据序列ID对应的数据序列的存储位置依次读取数据序列的数据元素,以及从参考数据序列ID对应的参考数据序列的存储位置依次读取参考数据序列的数据元素;
根据所述聚合操作对所有相同的读取的参考数据序列的数据元素所对应的同样读取次序的读取的数据序列的数据元素进行聚合,得到相应的聚合结果;
对所有相同的读取的参考数据序列的数据元素去重存储为一个数据元素,将去重存储为一个的数据元素和相应的聚合结果合并为一个数据元素;
按数据元素读取顺序存储合并得到的数据元素形成一个数据表。
在一些实施例中,所述同构数据表拼接指令被执行时还用于实现:
传入第一待拼接数据表ID和第二待拼接数据表ID;
根据第一待拼接数据表ID确定第一待拼接数据表ID对应的数据表的存储位置,以及根据第二待拼接数据表ID确定第二待拼接数据表ID对应的数据表的存储位置;第一待拼接数据表ID对应的数据表和第二待拼接数据表ID对应的数据表相互同构;
从第一待拼接数据表ID对应的数据表的存储位置依次读取第一待拼接数据表的数据元素,以及从第二待拼接数据表ID对应的数据表的存储位置依次读取第二待拼接数据表的数据元素;
将相同读取次序的读取的第一待拼接数据表的数据元素和读取的第二待拼接数据表的数据元素合并为一个数据元素;
按数据元素读取顺序存储合并得到的数据元素为一个数据表,并为得到的数据表设置数据表ID。
在一些实施例中,所述数据表排序指令被执行时还用于实现:
传入待排序数据表ID、参考数据序列ID、及排序方式;
根据待排序数据表ID确定待排序数据表ID对应的数据表的存储位置,以及根据参考数据序列ID确定参考数据序列ID对应的数据序列的存储位置;
从待排序数据表ID对应的数据表的存储位置依次读取数据表的数据元素,以及从参考数据序列ID对应的数据序列的存储位置依次读取数据序列的数据元素;
以所述排序方式对依次读取的数据序列的数据元素进行排序,以对与读取的数据序列的数据元素的读取次序相同的读取的数据表的数据元素进行排序;
存储排序后的读取的数据表的数据元素为排序后的数据表,并为排序后的数据表设置数据表ID。
在一些实施例中,所述方法满足,
所述数据序列选取指令被执行时的输入来自所述查询请求信息中的数据表ID和数据序列ID,或者,来自所述数据元素参考选取指令被执行后的输出和所述数据序列合并连接指令被执行后的输出;
或者,所述方法还满足,
所述数据元素条件选取指令被执行时的输入来自所述数据序列选取指令被执行后的输出和所述查询请求信息中的选取条件操作及其参数值;
或者,所述方法还满足,
所述数据元素参考选取指令被执行时的输入来自所述数据序列选取指令被执行后的输出和所述数据元素条件选取指令被执行后的输出;
或者,所述方法还满足,
所述数据序列合并连接指令被执行时的输入来自所述数据元素参考选取指令被后的输出;
或者,所述方法还满足,
所述数据表划分指令被执行时的输入来自所述数据序列合并连接指令被执行后的输出和所述数据元素参考选取指令被执行时的输出或数据序列选取指令被执行时的输出;
或者,所述方法还满足,
所述数据序列聚合指令被执行时的输入来自所述数据序列选取指令被执行后的输出和所述查询请求信息中的聚合操作;
或者,所述方法还满足,
所述同构数据表拼接指令被执行时的输入来自所述数据序列聚合指令被执行后的输出;
或者,所述方法还满足,
所述同构数据表拼接指令被执行时的输入来自之前所述同构数据表拼接指令被执行后的输出;
或者,
所述方法满足,
所述数据表排序指令被执行时的输入来自所述查询请求信息,或者,来自所述查询请求信息中的排序方式和执行数据序列合并连接指令、数据表划分指令、及同构数据表拼接指令中的一个指令后的输出。
根据本发明实施例的另一个方面,提供了一种数据库系统查询方法,包括:
接收查询请求,根据所述查询请求得到查询请求信息;
将查询请求信息发送至硬件数据库,以利用上述任一实施例所述的方法得到查询执行结果;
接收所述硬件数据库返回的查询执行结果,并根据所述查询执行结果输出查询结果。
根据本发明实施例的又一个方面,提供了一种电子设备,适用于上述任一实施例所述方法的步骤。
根据本发明实施例的又一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现上述任一实施例所述方法的步骤。
本发明实施例的硬件数据库查询方法、数据库系统查询方法、电子设备及计算机可读存储介质中,硬件数据库处理器指令集中的指令适用于在硬件数据库上执行,能够支持在硬件上实现复杂的查询操作,而且,硬件数据库处理器指令集中的指令比软件数据库的指令相比具有更大的粒度,所以可以提高数据库查询处理速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例的硬件数据库查询方法的流程示意图;
图2是本发明一实施例的数据库系统查询方法的流程示意图;
图3是本发明一实施例中的SQL语句示例;
图4是本发明一实施例中的数据表示例;
图5是本发明一实施例中的指令操作步骤示意图;
图6是本发明一实施例中的提取的数据序列示例;
图7是本发明一实施例中的选择的满足条件的数据元素形成的数据序列示例;
图8是本发明一实施例中的由数据序列连接成的数据表示例;
图9是本发明一实施例中的划分得到的子数据表的示例;
图10是本发明一实施例中的从子数据表中选出数据序列的示例;
图11是本发明一实施例中的对数据序列聚合并合并的示例。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
图1是本发明一实施例的硬件数据库查询方法的流程示意图。如图1所示,该些实施例的硬件数据库查询方法,可包括以下步骤S110~步骤S110。
下面将对步骤S110至步骤S130的具体实施方式进行详细说明。
步骤S110:接收查询请求信息;
步骤S120:根据所述查询请求信息,执行硬件数据库处理器指令集中的一个或多个指令,得到查询执行结果;其中,所述查询请求信息包括执行所述一个或多个指令需要传入的信息;所述硬件数据库处理器指令集包括数据序列选取指令、数据元素条件选取指令、数据元素参考选取指令、数据序列合并连接指令、数据表划分指令、数据序列聚合指令、同构数据表拼接指令、及数据表排序指令;
步骤S130:输出所述查询执行结果。
在上述步骤S110中,该查询请求信息可以包括一种或多种信息,可以包含操作信息和数据信息。操作信息可以包括聚合操作、排列方式、选取条件、选取条件的参数值等。数据信息可以包括数据序列ID、数据表ID、参考数据序列ID、布尔序列ID等。根据需要执行的硬件数据库处理器指令集中指令不同,该查询请求信息所包含的信息的种类、数目均可有所不同。
另外,硬件数据库可以是FPGA、ASIC等硬件,上述步骤S110至步骤S130可以在硬件数据库端执行。当有用户需要访问数据库时,可以通过应用程序输入查询请求(例如SQL语句),在CPU端通过软件数据库或数据库接口可以对查询请求进行解析得到查询请求信息,进而可以将查询请求信息由CPU端发送至硬件数据库端。此外,CPU端可以根据查询请求生成执行计划,查询请求信息可以携带于执行计划中。
上述步骤S120中,能够在硬件数据库端执行的硬件数据库处理器指令集中的指令,可以在硬件上电后加载至硬件。硬件数据库端得到查询请求信息后可以调用相应的指令来处理查询操作。上述步骤S130中,执行步骤S120后生成的查询执行结果可以直接输出至CPU端,并由CPU端输出显示或更新软件数据库;或者,可以在硬件数据库端继续执行其他操作后再返回结果至CPU端;或者,硬件数据库端返回至CPU端的结果可以继续在CPU端由软件数据库执行其他操作,然后再将最终结果进行输出显示或更新软件数据库。其中,软件数据库为CPU端的数据库,例如,MySQL、Oracle等。本说明书所述的数据库系统包括软件数据库和硬件数据库,还可包括各种接口。此外,本说明书的描述并不排除硬件数据库输出的结果直接输出给用户(如应用程序)的情形,例如,直接用于显示。
上述步骤S120中所述的硬件数据库处理器指令集包括能够在硬件上执行的数据库处理指令,例如,数据序列选取指令ColSel、数据元素条件选取指令BoolGen、数据元素参考选取指令RowExt、数据序列合并连接指令ColStitch、数据表划分指令TablePart、数据序列聚合指令Agg、同构数据表拼接指令TabAppend、数据表排序指令TableSort等。
在硬件数据库端,数据可以以序列的形式存储在硬件的存储块(如寄存器)中,可以称为数据序列,数据序列中的每个数据元素可以称为数据行;或者,存储在硬件的存储块中的数据序列可以称为数据表(具有表结构),该种数据表的每个数据元素(数据行)可以包含一个数据序列的数据元素(数据表包含一列数据序列),或者可以包含多个数据序列的数据元素(数据表包含多列数据序列)。行和列是相对概念,可以互换,为便于理解,对于硬件数据库上存储的数据而言,可以将数据序列对应的那列数据称为列,数据序列中一个数据元素对应的那列数据称为行。
硬件数据库处理器指令集中可涉及三种基本数据类型,如,表数据类型(Table)、布尔数据类型(Bool)、列数据类型(Column)。其中,Table数据类型可表示数据库中的数据表结构;Bool数据类型,即布尔数据类型,可仅包含0和1,通常可以一个布尔序列的形式出现;Column数据类型可表示数据库中数据表的某一列,即一个数据序列。
硬件数据库处理器指令集中的各指令可以映射至相应的原始查询操作。从而在执行某个指令时,可以执行相应的原始查询操作。硬件数据库处理器指令集中的各指令可以接收一个或多个(如两个或三个)输入,可以有一个输出。
对于上述提及的硬件数据库处理器指令集中指令,具体说明如下。
所述数据序列选取指令被执行时可用于实现传入待选取数据序列ID和待选取数据表ID,并从待选取数据表ID对应的数据表中选取待选取数据序列ID对应的数据序列。
其中,对于数据序列选取指令而言,待选取数据表ID是指需要从中取出数据序列的数据表的ID,待选取数据序列ID是指需要被选取出的数据序列的ID,二者可来自查询请求信息;或者待选取数据表ID可以来自可以输出数据表的指令的输出结果,待选取数据序列ID可以来自可以输出数据序列的指令的输出结果。
所述数据元素条件选取指令被执行时可以用于实现传入待选取数据序列ID、选取条件操作、及所述选取条件操作的参数值,并从待选取数据序列ID对应的数据序列中选取满足包含所述选取条件操作及其参数值的选取条件的数据元素生成相应的布尔序列。
其中,对于数据元素条件选取指令而言,待选取数据序列ID可以来自可以输出数据序列的指令的输出结果,例如,来自数据序列选取指令被执行后的输出结果。选取条件操作、及所述选取条件操作的参数值可来自查询请求信息。例如,所述数据元素条件选取指令被执行时所传入的选取条件操作可为大于、等于、小于、大于或等于、小于或等于、约等于、或字符串匹配操作。
在一些实施例中,数据元素条件选取指令被执行后生成的布尔序列包括1和/或0,其中,1是在待选取数据序列ID对应的数据序列中的数据元素满足包含所述选取条件操作及其参数值的选取条件的情况下输出,0是在待选取数据序列ID对应的数据序列中的数据元素不满足包含所述选取条件操作及其参数值的选取条件的情况下输出。
所述数据元素参考选取指令被执行时可用于实现传入待选取数据序列ID和参考布尔序列ID,并依据参考布尔序列ID对应的布尔序列从待选取数据序列ID对应的数据序列中选取数据元素形成数据序列。
其中,对于数据元素参考选取指令而言,待选取数据序列ID可以来自自查询请求信息,或者可以来自于可以输出数据序列的指令的输出结果,例如,数据序列选取指令被执行后的输出结果。参考布尔序列ID可以来自于可以输出布尔序列的指令的输出结果,例如,数据元素条件选取指令被执行后的输出结果。
所述数据序列合并连接指令被执行时可用于实现传入第一待合并数据序列ID和第二待合并数据序列ID,并将第一待合并数据序列ID对应的数据序列和第二待合并数据序列ID对应的数据序列,按数据元素位置顺序合并成一个数据表。
其中,对于数据序列合并连接指令而言,第一待合并数据序列ID和第二待合并数据序列ID可以为长度相同的数据序列的ID,可以来自可以输出数据序列的指令的输出结果,例如,数据元素参考选取指令被执行的输出结果。通过传入不同信息分别执行数据元素参考选取指令,可以得到不同的待合并数据序列及其ID。
所述数据表划分指令被执行时可用于实现传入待划分数据表ID和参考数据序列ID,并根据参考数据序列ID对应的数据序列中的数据元素分类对待划分数据表ID对应的数据表划分成一个或多个子数据表。
其中,对于数据表划分指令而言,待划分数据表ID可以来自查询请求信息,或来自能够输出数据表的指令的输出结果,例如,数据序列合并连接指令被执行后的输出结果。参考数据序列ID可以来自查询请求信息,或来自能够输出数据序列的指令的输出结果,例如,数据序列选取指令被执行后的输出结果。参考数据序列ID对应的数据序列中的数据元素分类可以是将相同的数据元素归为一类。
所述数据序列聚合指令被执行时用于实现传入待聚合数据序列ID、聚合操作、及参考数据序列ID,并对参考数据序列ID对应的数据序列中的数据元素进行同类合并,相应地根据所述聚合操作对待聚合数据序列ID对应的数据序列中的元素进行聚合,以及根据同类合并后的数据序列和聚合后的数据序列形成数据表。
其中,对于数据序列聚合指令而言,待聚合数据序列ID、参考数据序列ID可以来自查询请求信息,或来自能够输出数据序列的指令的输出结果,例如,数据序列选取指令被执行后的输出结果。聚合操作可以来自查询请求信息。所述数据序列聚合指令被执行时所传入的聚合操作可以为求和、求平均、求最大、求最小或计数。
所述同构数据表拼接指令被执行时用于实现传入第一待拼接数据表ID和第二待拼接数据表ID,并将相互同构的第一待拼接数据表ID对应的数据表和第二待拼接数据表ID对应的数据表拼接成一个数据表。
其中,对于同构数据表拼接指令而言,第一待拼接数据表ID和第二待拼接数据表ID可以具有相同的表头结构,可以来自同一原始数据表,可以通过分次执行能够输出数据表的指令的输出结果得到,例如,同构数据表拼接指令被执行后的输出结果。该指令可以将两个数据表在序列长度方向(即列向)上拼接。
所述数据表排序指令被执行时用于实现传入待排序数据表ID、参考数据序列ID、及排序方式,并依据参考数据序列ID对应的数据序列以所述排序方式对待排序数据表ID对应的数据表中的数据元素进行排序。
其中,对于数据表排序指令被执行而言,待排序数据表ID可以来自查询请求信息,或来自能够输出数据表的指令的输出结果,例如,数据序列合并连接指令、数据表划分指令、及同构数据表拼接指令中的一个指令后的输出。参考数据序列ID可以来自查询请求信息,或来自能够输出数据序列的指令的输出结果,例如,数据序列选取指令被执行后的输出结果。所述数据表排序指令被执行时所传入的排序方式可为升序或降序。
对于上述提及的硬件数据库处理器指令集中指令,每个指令可以据需要设置具有执行形式。
在一些实施例中,所述数据序列选取指令可表示为:ColSel(Table ID,Col ID),其中,ColSel表示数据序列选取指令的操作码,Table ID表示用于传入待选取数据表ID的第一操作数,Col ID表示用于传入待选取数据序列ID的第二操作数。
在一些实施例中,所述数据元素条件选取指令可表示为:BoolGen(Col ID,Condition,Constant),其中,BoolGen表示数据元素条件选取指令的操作码,Col ID表示用于传入待选取数据序列ID的第一操作数,Condition表示用于传入选取条件操作的第二操作数,Constant表示用于传入选取条件操作的参数值的第三操作数。
在一些实施例中,所述数据元素参考选取指令表示为:RowExt(Col ID,Bool ID),其中,RowExt表示数据元素参考选取指令的操作码,Col ID表示用于传入待选取数据序列ID的第一操作数,Bool ID表示用于传入参考布尔序列ID的第二操作数。
在一些实施例中,所述数据序列合并连接指令表示为:ColStitch(Col ID0,ColID1),其中,ColStitch表示数据序列合并连接指令的操作码,Col ID0表示用于传入第一待合并数据序列ID的第一操作数,Col ID1表示用于传入第二待合并数据序列ID的第二操作数。
在一些实施例中,所述数据表划分指令表示为:TablePart(Table ID,Col ID),其中,TablePart表示数据表划分指令的操作码,Table ID表示用于传入待划分数据表ID的第一操作数,Col ID表示用于传入参考数据序列ID的第二操作数。
在一些实施例中,所述数据序列聚合指令表示为:Agg(Col ID0,Condition,ColID1),其中,Agg表示数据序列聚合指令的操作码,Col ID0表示用于传入待聚合数据序列ID的第一操作数,Condition表示用于传入聚合操作的第二操作数,Col ID1表示用于传入参考数据序列ID的第三操作数。
在一些实施例中,所述同构数据表拼接指令表示为:TabAppend(Table ID0,TableID1),其中,TabAppend表示同构数据表拼接指令的操作码,Table ID0表示用于传入第一待拼接数据表ID的第一操作数,Table ID1表示用于传入第二待拼接数据表ID的第二操作数。
在一些实施例中,所述数据表排序指令表示为:TableSort(Table ID,Col ID,Condition),其中,TableSort表示数据表排序指令的操作码,Table ID表示用于传入待排序数据表ID的第一操作数,Col ID表示用于传入参考数据序列ID的第二操作数,Condition表示用于传入排序方式的第三操作数。
对于上述提及的硬件数据库处理器指令集中指令,可以与各自对应的原始操作进行映射,以便执行相应操作。
下面将对各指令的实现方式进行举例说明。
在一些实施例中,所述数据序列选取指令被执行时还用于(具体用于)实现:
传入待选取数据序列ID和待选取数据表ID;
根据待选取数据表ID确定待选取数据表ID对应的数据表的存储位置;
从待选取数据表ID对应的数据表的存储位置依次读取数据元素;
依据待选取数据序列ID对读取的数据元素进行数据过滤,得到待选取数据序列ID对应的数据元素;
按读取顺序将得到的待选取数据序列ID对应的数据元素存储为对应于待选取数据序列ID的数据序列。
在一些实施例中,所述数据元素条件选取指令被执行时还用于(具体用于)实现:
传入待选取数据序列ID、选取条件操作、及所述选取条件操作的参数值;
根据待选取数据序列ID确定待选取数据序列ID对应的数据序列的存储位置;
从待选取数据序列ID对应的数据序列的存储位置依次读取数据元素;
判断读取的数据元素是否满足选取条件操作及其参数值对应的条件;
在读取的数据元素满足选取条件操作及其参数值对应的条件的情况下,输出满足条件的标识;在读取的数据元素不满足选取条件操作及其参数值对应的条件的情况下,输出不满足条件的标识;
按数据元素的读取顺序存储输出的满足条件的标识或不满足条件的标识形成布尔序列,并为形成的布尔序列设置布尔序列ID。
在一些实施例中,所述数据元素参考选取指令被执行时还用于(具体用于)实现:
传入待选取数据序列ID和参考布尔序列ID;
根据待选取数据序列ID确定待选取数据序列ID对应的数据序列的存储位置,以及根据参考布尔序列ID确定参考布尔序列ID对应的布尔序列的存储位置;
从待选取数据序列ID对应的数据序列的存储位置依次读取数据序列的数据元素,以及从参考布尔序列ID对应的布尔序列的存储位置依次读取布尔序列的数据元素;
若读取的布尔序列的数据元素为满足条件的标识,则保留相应读取次序的读取的数据序列的数据元素;
按读取顺序存储保留的数据序列的数据元素为一个数据序列,并为该数据序列设置数据序列ID。
在一些实施例中,所述数据序列合并连接指令被执行时还用于(具体用于)实现:
传入第一待合并数据序列ID和第二待合并数据序列ID;
根据第一待合并数据序列ID确定第一待合并数据序列ID对应的数据序列的存储位置,以及根据第二待合并数据序列ID确定第二待合并数据序列ID对应的数据序列的存储位置;
从第一待合并数据序列ID对应的数据序列的存储位置依次读取第一待合并数据序列的数据元素,以及从第二待合并数据序列ID对应的数据序列的存储位置依次读取第二待合并数据序列的数据元素;
将对应同一读取次序的读取的第一待合并数据序列的数据元素和读取的第二待合并数据序列的数据元素合并为一个数据元素;
按读取顺序存储合并得到的数据元素形成一个数据表,并为形成的数据表设置数据表ID。
在一些实施例中,所述数据表划分指令被执行时还用于(具体用于)实现:
传入待划分数据表ID和参考数据序列ID;
根据待划分数据表ID确定待划分数据表ID对应的数据表的存储位置,以及根据参考数据序列ID确定参考数据序列ID对应的数据序列的存储位置;
从待划分数据表ID对应的数据表的存储位置依次读取数据表的数据元素,并从参考数据序列ID对应的数据序列的存储位置依次读取参考数据序列的数据元素;
对于相同的各读取的参考数据序列的数据元素,将相应读取次序的读取的数据表的数据元素按读取顺序存储为一个子数据表。
在一些实施例中,所述数据序列聚合指令被执行时还用于(具体用于)实现:
传入待聚合数据序列ID、聚合操作、及参考数据序列ID;
根据待聚合数据序列ID确定待聚合数据序列ID对应的数据序列的存储位置,以及根据参考数据序列ID确定参考数据序列ID对应的参考数据序列的存储位置;
从待聚合数据序列ID对应的数据序列的存储位置依次读取数据序列的数据元素,以及从参考数据序列ID对应的参考数据序列的存储位置依次读取参考数据序列的数据元素;
根据所述聚合操作对所有相同的读取的参考数据序列的数据元素所对应的同样读取次序的读取的数据序列的数据元素进行聚合,得到相应的聚合结果;
对所有相同的读取的参考数据序列的数据元素去重存储为一个数据元素,将去重存储为一个的数据元素和相应的聚合结果合并为一个数据元素;
按数据元素读取顺序存储合并得到的数据元素形成一个数据表。
在一些实施例中,所述同构数据表拼接指令被执行时还用于(具体用于)实现:
传入第一待拼接数据表ID和第二待拼接数据表ID;
根据第一待拼接数据表ID确定第一待拼接数据表ID对应的数据表的存储位置,以及根据第二待拼接数据表ID确定第二待拼接数据表ID对应的数据表的存储位置;第一待拼接数据表ID对应的数据表和第二待拼接数据表ID对应的数据表相互同构;
从第一待拼接数据表ID对应的数据表的存储位置依次读取第一待拼接数据表的数据元素,以及从第二待拼接数据表ID对应的数据表的存储位置依次读取第二待拼接数据表的数据元素;
将相同读取次序的读取的第一待拼接数据表的数据元素和读取的第二待拼接数据表的数据元素合并为一个数据元素;
按数据元素读取顺序存储合并得到的数据元素为一个数据表,并为得到的数据表设置数据表ID。
在一些实施例中,所述数据表排序指令被执行时还用于(具体用于)实现:
传入待排序数据表ID、参考数据序列ID、及排序方式;
根据待排序数据表ID确定待排序数据表ID对应的数据表的存储位置,以及根据参考数据序列ID确定参考数据序列ID对应的数据序列的存储位置;
从待排序数据表ID对应的数据表的存储位置依次读取数据表的数据元素,以及从参考数据序列ID对应的数据序列的存储位置依次读取数据序列的数据元素;
以所述排序方式对依次读取的数据序列的数据元素进行排序,以对与读取的数据序列的数据元素的读取次序相同的读取的数据表的数据元素进行排序;
存储排序后的读取的数据表的数据元素为排序后的数据表,并为排序后的数据表设置数据表ID。
基于硬件数据库处理器指令集中的指令,使得能够在硬件上实现较为复杂的数据库查询操作。具体查询过程可根据查询请求中的执行计划不同而有所区别。
示例性地,所述的硬件数据库查询方法满足:
要求1:所述数据序列选取指令被执行时的输入来自所述查询请求信息中的数据表ID和数据序列ID,或者,来自所述数据元素参考选取指令被执行后的输出和所述数据序列合并连接指令被执行后的输出。
其中,数据序列选取指令被执行时的输入来自所述查询请求信息时,该数据序列选取指令可以是该硬件数据库处理器指令集中第一个被执行的指令。数据序列选取指令被执行时的输入的数据序列ID和数据表ID可以分别来自数据元素参考选取指令被执行后的输出和所述数据序列合并连接指令被执行后的输出,此时,数据序列选取指令可以不是该硬件数据库处理器指令集中第一个被执行的指令,或者,该数据序列选取指令可以被执行多次。
进一步地,所述的硬件数据库查询方法除了满足上述要求1,还可以也满足:
要求2:所述数据元素条件选取指令被执行时的输入来自所述数据序列选取指令被执行后的输出和所述查询请求信息中的选取条件操作及其参数值。
该示例中,数据元素条件选取指令不是该硬件数据库处理器指令集中第一个被执行的指令。在其他示例中,若查询请求信息含有可用于该数据元素条件选取指令的数据序列ID,则数据元素条件选取指令可以是该硬件数据库处理器指令集中第一个被执行的指令。
进一步地,所述的硬件数据库查询方法除了满足上述要求1和要求2,还可以也满足:
要求3:所述数据元素参考选取指令被执行时的输入来自所述数据序列选取指令被执行后的输出和所述数据元素条件选取指令被执行后的输出。
其中,所述数据序列选取指令被执行后的输出结果可作为待选取数据序列的ID,数据元素条件选取指令被执行后的输出结果可作为参考布尔序列ID。
该示例中,数据元素参考选取指令在执行数据序列选取指令和数据元素条件选取指令后执行。在其他示例中,若待选取数据序列的ID和参考布尔序列ID以别的方式执行,则数据元素参考选取指令不需在执行数据序列选取指令和/或数据元素条件选取指令后执行。
进一步地,所述的硬件数据库查询方法除了满足上述要求1至要求3,还可以也满足:
要求4:所述数据序列合并连接指令被执行时的输入来自所述数据元素参考选取指令被后的输出。
该示例中,数据序列合并连接指令在数据元素参考选取指令之后执行。在其他示例中,待合并数据序列ID若可以其他方式获得,则数据序列合并连接指令不需在数据元素参考选取指令之后执行,也可不需在数据序列选取指令和/或数据元素条件选取指令后执行。
进一步地,所述的硬件数据库查询方法除了满足上述要求1至要求4,还可以也满足:
要求5:所述数据表划分指令被执行时的输入来自所述数据序列合并连接指令被执行后的输出和所述数据元素参考选取指令被执行时的输出或数据序列选取指令被执行时的输出。
该示例中,若数据表划分指令被执行时需要输入的数据表ID来自数据序列合并连接指令被执行后的输出的数据表的ID,则该数据表划分指令在数据序列合并连接指令之后执行。数据表划分指令被执行时需要输入的数据序列ID来自数据元素参考选取指令被执行时的输出数据序列ID,则在数据元素参考选取指令之后执行,若来自数据序列选取指令被执行时的输出数据序列ID,则在数据序列选取指令之后执行。
进一步地,所述的硬件数据库查询方法除了满足上述要求1至要求5,还可以也满足:
要求6:所述数据序列聚合指令被执行时的输入来自所述数据序列选取指令被执行后的输出和所述查询请求信息中的聚合操作。
该示例中,利用不同输入执行数据序列选取指令后可输出待聚合数据序列或参考数据序列。
进一步地,所述的硬件数据库查询方法除了满足上述要求1至要求6,还可以也满足:
要求7:所述同构数据表拼接指令被执行时的输入来自所述数据序列聚合指令被执行后的输出。
该示例中,利用不同传入数据执行数据序列聚合指令可以得到不同数据表。
进一步地,所述的硬件数据库查询方法除了满足上述要求1至要求6,还可以也满足:
要求8:所述同构数据表拼接指令被执行时的输入来自之前所述同构数据表拼接指令被执行后的输出。
该示例中,之前可以利用其他输入执行过同构数据表拼接指令,该次执行输出结果可以作为本次执行同构数据表拼接指令的输入。
在另一些实施例中,所述的硬件数据库查询方法可满足:
要求9:所述数据表排序指令被执行时的输入来自所述查询请求信息,或者,来自所述查询请求信息中的排序方式和执行数据序列合并连接指令、数据表划分指令、及同构数据表拼接指令中的一个指令后的输出。
该实施例中,要求9可能要求与前述要求1至8中的任意一个或多个要求同时满足。
在一实施例中,上述步骤S120,即,根据所述查询请求信息,执行硬件数据库处理器指令集中的一个或多个指令,得到查询结果,具体地,可包括以下步骤:
S121,将所述查询请求信息中的待选取数据序列ID及待选取数据表ID传入数据序列选取指令,执行所述数据序列选取指令,并输出从待选取数据表ID对应的数据表中选取的待选取数据序列ID对应的数据序列;
S122,将执行所述数据序列选取指令后输出的数据序列的ID、所述查询请求信息中的选取条件操作、及所述查询请求信息中的选取条件操作的参数值传入数据元素条件选取指令,执行所述数据元素条件选取指令,并输出从执行所述数据序列选取指令后输出的数据序列中选取满足包含所述选取条件操作及其参数值的选取条件的数据元素生成的相应的布尔序列;
S123,将所述查询请求信息中的待选取数据序列ID和执行所述数据元素条件选取指令后输出的布尔序列的ID传入数据元素参考选取指令,执行所述数据元素参考选取指令,并输出依据执行所述数据元素条件选取指令后输出的布尔序列从待选取数据序列ID对应的数据序列中选取数据元素形成的数据序列;
S124,将两个执行所述数据元素参考选取指令后输出的数据序列的ID传入数据序列合并连接指令,执行所述数据序列合并连接指令,并输出将两个执行所述数据元素参考选取指令后输出的数据序列按数据元素位置顺序合并成的一个数据表;
S125,将执行所述数据序列合并连接指令后输出的数据表的ID和执行所述数据元素参考选取指令后输出的数据序列的ID传入数据表划分指令,执行所述数据表划分指令,并输出根据执行所述数据元素参考选取指令后输出的数据序列中的数据元素分类对执行所述数据序列合并连接指令后输出的数据表划分成一个或多个子数据表;
S126,将执行所述数据表划分指令后输出的每个子数据表的ID和执行所述数据元素参考选取指令后输出的数据序列的ID传入所述数据序列选取指,执行所述数据序列选取指,输出从执行所述数据表划分指令后输出的每个子数据表中选取出的执行所述数据元素参考选取指令后输出的数据序列所属的数据元素形成的数据序列;
S127,将两个执行所述数据序列选取指令后输出的数据序列的ID和所述查询请求信息中的聚合操作传入数据序列聚合指令,执行所述数据序列聚合指令,并输出对一个执行所述数据序列选取指令后输出的数据序列中的数据元素进行同类合并,相应地根据所述聚合操作对另一个执行所述数据序列选取指令后输出的数据序列中的元素进行聚合,以及根据同类合并后的数据序列和聚合后的数据序列形成数据表;
S128,将两个执行所述数据序列聚合指令后输出的数据表的ID传入同构数据表拼接指令,并执行所述同构数据表拼接指令,输出将两个执行所述数据序列聚合指令后输出的数据表拼接成一个的数据表,作为查询结果。
基于与上述实施例所述的硬件数据库查询方法相同的发明构思,本发明实施例还提供了一种数据库系统查询方法,如图2所示,该实施例的数据库系统查询方法,可包括步骤:
步骤S210:接收查询请求,根据所述查询请求得到查询请求信息;
步骤S220:将查询请求信息发送至硬件数据库,以利用本发明任一实施例所述的硬件数据库查询方法得到查询执行结果;
步骤S230:接收所述硬件数据库返回的查询执行结果,并根据所述查询执行结果输出查询结果。
上述步骤S210可以在CPU端执行,可以由CPU端的软件数据库执行。该步骤S220中,可以由CPU端将查询请求信息发送至硬件数据库,之后硬件数据库可以调用硬件数据库处理器指令集中的指令执行相应查询操作,并返回查询执行结果。该步骤S230中,可以由软件数据库直接显示或存储查询执行结果,或者可以进一步进行其他处理。该实施例的数据库系统查询方法与前述实施例的硬件数据库查询方法的区别,主要在于,数据库系统查询方法相对于包括硬件数据库和软件数据库的数据库系统而言,而硬件数据库查询方法主要是对于硬件数据库而言。
另外,本发明实施例还提供了一种电子设备,适用于执行上述任一实施例所述的硬件数据库查询方法或任一实施例所述的数据库系统查询方法的步骤。硬件数据库查询方法可以是FPGA、ASIC等硬件设备,数据库系统查询方法可包括计算机、服务器等CPU端的设备,还可包括FPGA、ASIC等硬件端的设备。更具体地,该电子设备可以包括用于对应存储各种数据序列的存储块、用于对应存储各种数据表的存储块、用于对应存储指令集中各种指令的存储块或寄存器等。
此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现上述任一实施例所述的硬件数据库查询方法或任一实施例所述的数据库系统查询方法的步骤。
为使本领域技术人员更好地了解本发明,下面将以具体实施例说明本发明的实施方式。
在一具体实施例中,整个指令集包含ColSel、BoolGen、RowExt、ColStitch、TabPart、Agg、TabAppend、TabSort等8条指令。8条指令中通常包含2~3个操作数,和一个输出。其中,各指令的操作码、操作数、输出可如下表所示:
操作码 | 操作数1 | 操作数2 | 操作数3 | 输出 |
ColSel | Table ID | Col ID | Column | |
BoolGen | Col ID | Condition | Constant | Bool |
RowExt | Col ID | Bool ID | Column | |
ColStitch | Col ID0 | Col ID1 | Table | |
TabPart | Table ID | Col ID | Table | |
Agg | Col ID0 | Condition | Col ID1 | Table |
TabAppend | Table ID0 | Table ID1 | Table | |
TabSort | Table ID | Col ID | Condition | Table |
整个指令集中包含三种基本数据类型,分别为1)Table,数据库中数据表结构;2)Bool,布尔数据类型仅包含0和1,通常以一个布尔序列的形式出现;3)Column,数据库中数据表的某一列,即一个数据序列。
下面对各条指令分别进行介绍:
(1)ColSel指令
其功能是从数据库中某个数据表中选择一个数据列出来,供后续指令操作。该指令具体包含两个操作数据,操作数1为Table ID,指定选取数据表的ID,操作数2为Col ID,指定具体选取列的ID。该指令的输出为Column一列数据。
(2)BoolGen指令
其功能是从特定数据序列中(通常是ColSel指令选择出的数据序列)根据条件选择特定的数据元素,满足条件的数据元素所对应的输出为1,否则输出为0。该指令具体包括三个操作数,操作数1为Col ID,指定具体操作的数据序列ID,操作数2为Condition,指定本次选取数据元素的条件,通常包括一些数值比较操作(>,=,<,>=,<=,~=)和字符串匹配操作。操作数3为constant,指定选取条件中参考数值或字符串值。
(3)RowExt指令
其功能是从特定数据序列中,根据参考布尔序列选取出特定的数据元素,并组成新的数据序列输出。该指令具体包含两个操作数,操作数1为Col ID,指定要被选择的数据序列;操作数2为Bool ID,指定参考的布尔序列。
(4)ColStitch指令
其功能是将两列数据序列,按数据元素一一连接成表格的形式,输出最终表格。该指令具体包含两个操作数,操作数1为Col ID0,指定被合并的第一个数据序列;操作数2为Col ID1,指定被合并的第二个数据序列。
(5)TablePart指令
其功能是将一个数据表格,根据参考数据序列,对数据表格进行划分,划分成几个子表格。该指令具体包含两个操作数,操作数1为Table ID,指定被划分的数据表格;操作数2为Col ID,指定参考数据序列。
(6)Agg指令
其功能是将一个数据序列,根据特定的条件和参考数据序列,对该序列进行聚合操作。该指令具体包含三个操作数,操作数1为Col ID0,指定要被聚合的数据序列;操作数2为Condition,指定具体的聚合操作类型,一般包含求和SUM、求平均AVG、求最大/最小值MAX/MIN、计数COUNT等;操作数3C为Col ID1,指定参考数据序列。
(7)TabAppend指令
其功能是将两个同构的数据表,拼接起来,形成一个完成的数据表格。该指令具体包含两个操作数,操作数1为Table ID0,指定要被拼接的第一个数据表格;操作数2为TableID1,指定要被拼接的第二个数据表格。
(8)TableSort指令
其功能是将一个数据表格中各数据行,根据一个参考的数据序列进行排序,排序方式通过Condition确定。该指令具体包含三个操作数,操作数1为Table ID,指定被排序的数据表格;操作数2为Col ID,指定参考的数据序列;操作3为Condition,指令排序的方式,包含升序和降序两类。
接下来以下图中的所示查询示例进行说明。图3是本发明一实施例中的SQL语句示例,图4是本发明一实施例中的数据表示例,结合图3至图4所示,该示例主要针对数据表SALES进行操作。
图5是本发明一实施例中的指令操作步骤示意图。所提及的指令集,可以将原始查询操作映射如图5所示指令的形式,具体如下。
如图5所示,具体通过19个步骤实现,首先通过1~3个步骤从SALES数据表格中提取S_SEASON、S_QUANTITY、S_SHIPDATE三个数据序列,记为Col 1、Col 2和Col 3,具体数据如图6所示。
通过步骤4,根据条件从Col 3中选择出满足条件的数据行,并得到布尔序列Bool1。通过步骤5和6,根据布尔序列Bool 1,从数据序列Col 1和Col 2中选择出满足条件的数据元素,记为数据序列Col 4和Col 5,如图7所示。
通过步骤7,将数据序列Col 4和Col 5链接为一个数据表格,如图8所示。
通过步骤8,根据数据序列Col 4对数据表格Table 1进行划分,得到数据子表格Table 2、Table 3、Table 4和Table 5,如图9所示。
通过步骤9-16,从Table 2-Table 5中选择出各个数据序列,分别记为Col 6-Col13,如图10所示。
通过步骤17和18,对相应的数据序列进行求和聚合操作,同时合并成为不同的数据表格Table 6和Table 7。最后,再通过表格拼接操作得出最终答案,如图11所示。
本实施例中,提出了一种适用于数据库复杂查询的专用指令集架构。指令集是设计数据库加速器的基础,是软硬之间的接口,指令也是应用程序高效调度底层加速器硬件的有效抓手。
综上所述,本发明实施例的硬件数据库查询方法、数据库系统查询方法、电子设备及计算机可读存储介质中,硬件数据库处理器指令集中的指令适用于在硬件数据库上执行,能够支持在硬件上实现复杂的查询操作,而且,硬件数据库处理器指令集中的指令比软件数据库的指令相比具有更大的粒度,所以可以提高数据库查询处理速度。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本发明的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (18)
1.一种硬件数据库查询方法,其特征在于,包括:
接收查询请求信息;
根据所述查询请求信息,执行硬件数据库处理器指令集中的一个或多个指令,得到查询执行结果;其中,所述查询请求信息包括执行所述一个或多个指令需要传入的信息;所述硬件数据库处理器指令集包括数据序列选取指令、数据元素条件选取指令、数据元素参考选取指令、数据序列合并连接指令、数据表划分指令、数据序列聚合指令、同构数据表拼接指令、及数据表排序指令;
输出所述查询执行结果;
其中:
所述数据序列选取指令被执行时用于实现传入待选取数据序列ID和待选取数据表ID,并从待选取数据表ID对应的数据表中选取待选取数据序列ID对应的数据序列;
所述数据元素条件选取指令被执行时用于实现传入待选取数据序列ID、选取条件操作、及所述选取条件操作的参数值,并从待选取数据序列ID对应的数据序列中选取满足包含所述选取条件操作及其参数值的选取条件的数据元素生成相应的布尔序列;
所述数据元素参考选取指令被执行时用于实现传入待选取数据序列ID和参考布尔序列ID,并依据参考布尔序列ID对应的布尔序列从待选取数据序列ID对应的数据序列中选取数据元素形成数据序列;
所述数据序列合并连接指令被执行时用于实现传入第一待合并数据序列ID和第二待合并数据序列ID,并将第一待合并数据序列ID对应的数据序列和第二待合并数据序列ID对应的数据序列,按数据元素位置顺序合并成一个数据表;
所述数据表划分指令被执行时用于实现传入待划分数据表ID和参考数据序列ID,并根据参考数据序列ID对应的数据序列中的数据元素分类对待划分数据表ID对应的数据表划分成一个或多个子数据表;
所述数据序列聚合指令被执行时用于实现传入待聚合数据序列ID、聚合操作、及参考数据序列ID,并对参考数据序列ID对应的数据序列中的数据元素进行同类合并,相应地根据所述聚合操作对待聚合数据序列ID对应的数据序列中的元素进行聚合,以及根据同类合并后的数据序列和聚合后的数据序列形成数据表;
所述同构数据表拼接指令被执行时用于实现传入第一待拼接数据表ID和第二待拼接数据表ID,并将相互同构的第一待拼接数据表ID对应的数据表和第二待拼接数据表ID对应的数据表拼接成一个数据表;
所述数据表排序指令被执行时用于实现传入待排序数据表ID、参考数据序列ID、及排序方式,并依据参考数据序列ID对应的数据序列以所述排序方式对待排序数据表ID对应的数据表中的数据元素进行排序。
2.如权利要求1所述的硬件数据库查询方法,其特征在于,生成的布尔序列包括1和/或0,其中,1是在待选取数据序列ID对应的数据序列中的数据元素满足包含所述选取条件操作及其参数值的选取条件的情况下输出,0是在待选取数据序列ID对应的数据序列中的数据元素不满足包含所述选取条件操作及其参数值的选取条件的情况下输出。
3.如权利要求1所述的硬件数据库查询方法,其特征在于,
所述数据序列选取指令表示为:ColSel(Table ID,Col ID),其中,ColSel表示数据序列选取指令的操作码,Table ID表示用于传入待选取数据表ID的第一操作数,Col ID表示用于传入待选取数据序列ID的第二操作数;和/或,
所述数据元素条件选取指令表示为:BoolGen(Col ID,Condition,Constant),其中,BoolGen表示数据元素条件选取指令的操作码,Col ID表示用于传入待选取数据序列ID的第一操作数,Condition表示用于传入选取条件操作的第二操作数,Constant表示用于传入选取条件操作的参数值的第三操作数;和/或,
所述数据元素参考选取指令表示为:RowExt(Col ID,Bool ID),其中,RowExt表示数据元素参考选取指令的操作码,Col ID表示用于传入待选取数据序列ID的第一操作数,BoolID表示用于传入参考布尔序列ID的第二操作数;和/或,
所述数据序列合并连接指令表示为:ColStitch(Col ID0,Col ID1),其中,ColStitch表示数据序列合并连接指令的操作码,Col ID0表示用于传入第一待合并数据序列ID的第一操作数,Col ID1表示用于传入第二待合并数据序列ID的第二操作数;和/或,
所述数据表划分指令表示为:TablePart(Table ID,Col ID),其中,TablePart表示数据表划分指令的操作码,Table ID表示用于传入待划分数据表ID的第一操作数,Col ID表示用于传入参考数据序列ID的第二操作数;和/或,
所述数据序列聚合指令表示为:Agg(Col ID0,Condition,Col ID1),其中,Agg表示数据序列聚合指令的操作码,Col ID0表示用于传入待聚合数据序列ID的第一操作数,Condition表示用于传入聚合操作的第二操作数,Col ID1表示用于传入参考数据序列ID的第三操作数;和/或,
所述同构数据表拼接指令表示为:TabAppend(Table ID0,Table ID1),其中,TabAppend表示同构数据表拼接指令的操作码,Table ID0表示用于传入第一待拼接数据表ID的第一操作数,Table ID1表示用于传入第二待拼接数据表ID的第二操作数;和/或,
所述数据表排序指令表示为:TableSort(Table ID,Col ID,Condition),其中,TableSort表示数据表排序指令的操作码,Table ID表示用于传入待排序数据表ID的第一操作数,Col ID表示用于传入参考数据序列ID的第二操作数,Condition表示用于传入排序方式的第三操作数。
4.如权利要求1所述的硬件数据库查询方法,其特征在于,所述数据元素条件选取指令被执行时所传入的选取条件操作为大于、等于、小于、大于或等于、小于或等于、约等于、或字符串匹配操作。
5.如权利要求1所述的硬件数据库查询方法,其特征在于,所述数据序列聚合指令被执行时所传入的聚合操作为求和、求平均、求最大、求最小或计数。
6.如权利要求1所述的硬件数据库查询方法,其特征在于,所述数据表排序指令被执行时所传入的排序方式为升序或降序。
7.如权利要求1所述的硬件数据库查询方法,其特征在于,所述数据序列选取指令被执行时还用于实现:
传入待选取数据序列ID和待选取数据表ID;
根据待选取数据表ID确定待选取数据表ID对应的数据表的存储位置;
从待选取数据表ID对应的数据表的存储位置依次读取数据元素;
依据待选取数据序列ID对读取的数据元素进行数据过滤,得到待选取数据序列ID对应的数据元素;
按读取顺序将得到的待选取数据序列ID对应的数据元素存储为对应于待选取数据序列ID的数据序列。
8.如权利要求1所述的硬件数据库查询方法,其特征在于,所述数据元素条件选取指令被执行时还用于实现:
传入待选取数据序列ID、选取条件操作、及所述选取条件操作的参数值;
根据待选取数据序列ID确定待选取数据序列ID对应的数据序列的存储位置;
从待选取数据序列ID对应的数据序列的存储位置依次读取数据元素;
判断读取的数据元素是否满足选取条件操作及其参数值对应的条件;
在读取的数据元素满足选取条件操作及其参数值对应的条件的情况下,输出满足条件的标识;在读取的数据元素不满足选取条件操作及其参数值对应的条件的情况下,输出不满足条件的标识;
按数据元素的读取顺序存储输出的满足条件的标识或不满足条件的标识形成布尔序列,并为形成的布尔序列设置布尔序列ID。
9.如权利要求1所述的硬件数据库查询方法,其特征在于,所述数据元素参考选取指令被执行时还用于实现:
传入待选取数据序列ID和参考布尔序列ID;
根据待选取数据序列ID确定待选取数据序列ID对应的数据序列的存储位置,以及根据参考布尔序列ID确定参考布尔序列ID对应的布尔序列的存储位置;
从待选取数据序列ID对应的数据序列的存储位置依次读取数据序列的数据元素,以及从参考布尔序列ID对应的布尔序列的存储位置依次读取布尔序列的数据元素;
若读取的布尔序列的数据元素为满足条件的标识,则保留相应读取次序的读取的数据序列的数据元素;
按读取顺序存储保留的数据序列的数据元素为一个数据序列,并为该数据序列设置数据序列ID。
10.如权利要求1所述的硬件数据库查询方法,其特征在于,所述数据序列合并连接指令被执行时还用于实现:
传入第一待合并数据序列ID和第二待合并数据序列ID;
根据第一待合并数据序列ID确定第一待合并数据序列ID对应的数据序列的存储位置,以及根据第二待合并数据序列ID确定第二待合并数据序列ID对应的数据序列的存储位置;
从第一待合并数据序列ID对应的数据序列的存储位置依次读取第一待合并数据序列的数据元素,以及从第二待合并数据序列ID对应的数据序列的存储位置依次读取第二待合并数据序列的数据元素;
将对应同一读取次序的读取的第一待合并数据序列的数据元素和读取的第二待合并数据序列的数据元素合并为一个数据元素;
按读取顺序存储合并得到的数据元素形成一个数据表,并为形成的数据表设置数据表ID。
11.如权利要求1所述的硬件数据库查询方法,其特征在于,所述数据表划分指令被执行时还用于实现:
传入待划分数据表ID和参考数据序列ID;
根据待划分数据表ID确定待划分数据表ID对应的数据表的存储位置,以及根据参考数据序列ID确定参考数据序列ID对应的数据序列的存储位置;
从待划分数据表ID对应的数据表的存储位置依次读取数据表的数据元素,并从参考数据序列ID对应的数据序列的存储位置依次读取参考数据序列的数据元素;
对于相同的各读取的参考数据序列的数据元素,将相应读取次序的读取的数据表的数据元素按读取顺序存储为一个子数据表。
12.如权利要求1所述的硬件数据库查询方法,其特征在于,所述数据序列聚合指令被执行时还用于实现:
传入待聚合数据序列ID、聚合操作、及参考数据序列ID;
根据待聚合数据序列ID确定待聚合数据序列ID对应的数据序列的存储位置,以及根据参考数据序列ID确定参考数据序列ID对应的参考数据序列的存储位置;
从待聚合数据序列ID对应的数据序列的存储位置依次读取数据序列的数据元素,以及从参考数据序列ID对应的参考数据序列的存储位置依次读取参考数据序列的数据元素;
根据所述聚合操作对所有相同的读取的参考数据序列的数据元素所对应的同样读取次序的读取的数据序列的数据元素进行聚合,得到相应的聚合结果;
对所有相同的读取的参考数据序列的数据元素去重存储为一个数据元素,将去重存储为一个的数据元素和相应的聚合结果合并为一个数据元素;
按数据元素读取顺序存储合并得到的数据元素形成一个数据表。
13.如权利要求1所述的硬件数据库查询方法,其特征在于,所述同构数据表拼接指令被执行时还用于实现:
传入第一待拼接数据表ID和第二待拼接数据表ID;
根据第一待拼接数据表ID确定第一待拼接数据表ID对应的数据表的存储位置,以及根据第二待拼接数据表ID确定第二待拼接数据表ID对应的数据表的存储位置;第一待拼接数据表ID对应的数据表和第二待拼接数据表ID对应的数据表相互同构;
从第一待拼接数据表ID对应的数据表的存储位置依次读取第一待拼接数据表的数据元素,以及从第二待拼接数据表ID对应的数据表的存储位置依次读取第二待拼接数据表的数据元素;
将相同读取次序的读取的第一待拼接数据表的数据元素和读取的第二待拼接数据表的数据元素合并为一个数据元素;
按数据元素读取顺序存储合并得到的数据元素为一个数据表,并为得到的数据表设置数据表ID。
14.如权利要求1所述的硬件数据库查询方法,其特征在于,所述数据表排序指令被执行时还用于实现:
传入待排序数据表ID、参考数据序列ID、及排序方式;
根据待排序数据表ID确定待排序数据表ID对应的数据表的存储位置,以及根据参考数据序列ID确定参考数据序列ID对应的数据序列的存储位置;
从待排序数据表ID对应的数据表的存储位置依次读取数据表的数据元素,以及从参考数据序列ID对应的数据序列的存储位置依次读取数据序列的数据元素;
以所述排序方式对依次读取的数据序列的数据元素进行排序,以对与读取的数据序列的数据元素的读取次序相同的读取的数据表的数据元素进行排序;
存储排序后的读取的数据表的数据元素为排序后的数据表,并为排序后的数据表设置数据表ID。
15.如权利要求1所述的硬件数据库查询方法,其特征在于,
所述方法满足,
所述数据序列选取指令被执行时的输入来自所述查询请求信息中的数据表ID和数据序列ID,或者,来自所述数据元素参考选取指令被执行后的输出和所述数据序列合并连接指令被执行后的输出;
或者,所述方法还满足,
所述数据元素条件选取指令被执行时的输入来自所述数据序列选取指令被执行后的输出和所述查询请求信息中的选取条件操作及其参数值;
或者,所述方法还满足,
所述数据元素参考选取指令被执行时的输入来自所述数据序列选取指令被执行后的输出和所述数据元素条件选取指令被执行后的输出;
或者,所述方法还满足,
所述数据序列合并连接指令被执行时的输入来自所述数据元素参考选取指令被后的输出;
或者,所述方法还满足,
所述数据表划分指令被执行时的输入来自所述数据序列合并连接指令被执行后的输出和所述数据元素参考选取指令被执行时的输出或数据序列选取指令被执行时的输出;
或者,所述方法还满足,
所述数据序列聚合指令被执行时的输入来自所述数据序列选取指令被执行后的输出和所述查询请求信息中的聚合操作;
或者,所述方法还满足,
所述同构数据表拼接指令被执行时的输入来自所述数据序列聚合指令被执行后的输出;
或者,所述方法还满足,
所述同构数据表拼接指令被执行时的输入来自之前所述同构数据表拼接指令被执行后的输出;
或者,
所述方法满足,
所述数据表排序指令被执行时的输入来自所述查询请求信息,或者,来自所述查询请求信息中的排序方式和执行数据序列合并连接指令、数据表划分指令、及同构数据表拼接指令中的一个指令后的输出。
16.一种数据库系统查询方法,其特征在于,包括:
接收查询请求,根据所述查询请求得到查询请求信息;
将查询请求信息发送至硬件数据库,以利用如权利要求1至15任一项所述的方法得到查询执行结果;
接收所述硬件数据库返回的查询执行结果,并根据所述查询执行结果输出查询结果。
17.一种电子设备,其特征在于,适用于执行如权利要求1至16任一项所述方法的步骤。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被执行时实现如权利要求1至16任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110615939.9A CN113468169B (zh) | 2021-06-02 | 2021-06-02 | 硬件数据库查询方法、数据库系统查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110615939.9A CN113468169B (zh) | 2021-06-02 | 2021-06-02 | 硬件数据库查询方法、数据库系统查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113468169A CN113468169A (zh) | 2021-10-01 |
CN113468169B true CN113468169B (zh) | 2022-09-09 |
Family
ID=77872188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110615939.9A Active CN113468169B (zh) | 2021-06-02 | 2021-06-02 | 硬件数据库查询方法、数据库系统查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113468169B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116361319B (zh) * | 2023-05-17 | 2023-08-29 | 山东浪潮科学研究院有限公司 | 一种数据库查询方法、装置、设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477473A (zh) * | 2009-01-22 | 2009-07-08 | 浙江大学 | 硬件支持的数据库指令解释执行方法 |
CN101515295A (zh) * | 2009-03-23 | 2009-08-26 | 浙江大学 | 片上硬件数据库的高速缓冲器支持实现方法 |
US8762366B1 (en) * | 2013-02-08 | 2014-06-24 | Mellmo Inc. | Executing database queries using multiple processors |
CN107077495A (zh) * | 2014-10-19 | 2017-08-18 | 微软技术许可有限责任公司 | 数据库管理系统中的高性能事务 |
CN109241093A (zh) * | 2017-06-30 | 2019-01-18 | 华为技术有限公司 | 一种数据查询的方法、相关装置及数据库系统 |
CN110389968A (zh) * | 2019-07-31 | 2019-10-29 | 中国工商银行股份有限公司 | 聚合查询方法、聚合查询装置、设备及介质 |
CN110502586A (zh) * | 2019-09-06 | 2019-11-26 | 苏州浪潮智能科技有限公司 | 一种数据库软硬件一体机 |
CN110990425A (zh) * | 2019-11-28 | 2020-04-10 | 中科驭数(北京)科技有限公司 | 硬件数据库的jdbc驱动方法及装置 |
CN111221912A (zh) * | 2020-01-06 | 2020-06-02 | 中科驭数(北京)科技有限公司 | 数据库和硬件之间的数据同步方法及装置 |
CN111897522A (zh) * | 2020-06-16 | 2020-11-06 | 中科驭数(北京)科技有限公司 | 面向硬件数据库的开发展示系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7966343B2 (en) * | 2008-04-07 | 2011-06-21 | Teradata Us, Inc. | Accessing data in a column store database based on hardware compatible data structures |
-
2021
- 2021-06-02 CN CN202110615939.9A patent/CN113468169B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477473A (zh) * | 2009-01-22 | 2009-07-08 | 浙江大学 | 硬件支持的数据库指令解释执行方法 |
CN101515295A (zh) * | 2009-03-23 | 2009-08-26 | 浙江大学 | 片上硬件数据库的高速缓冲器支持实现方法 |
US8762366B1 (en) * | 2013-02-08 | 2014-06-24 | Mellmo Inc. | Executing database queries using multiple processors |
CN107077495A (zh) * | 2014-10-19 | 2017-08-18 | 微软技术许可有限责任公司 | 数据库管理系统中的高性能事务 |
CN109241093A (zh) * | 2017-06-30 | 2019-01-18 | 华为技术有限公司 | 一种数据查询的方法、相关装置及数据库系统 |
CN110389968A (zh) * | 2019-07-31 | 2019-10-29 | 中国工商银行股份有限公司 | 聚合查询方法、聚合查询装置、设备及介质 |
CN110502586A (zh) * | 2019-09-06 | 2019-11-26 | 苏州浪潮智能科技有限公司 | 一种数据库软硬件一体机 |
CN110990425A (zh) * | 2019-11-28 | 2020-04-10 | 中科驭数(北京)科技有限公司 | 硬件数据库的jdbc驱动方法及装置 |
CN111221912A (zh) * | 2020-01-06 | 2020-06-02 | 中科驭数(北京)科技有限公司 | 数据库和硬件之间的数据同步方法及装置 |
CN111897522A (zh) * | 2020-06-16 | 2020-11-06 | 中科驭数(北京)科技有限公司 | 面向硬件数据库的开发展示系统及方法 |
Non-Patent Citations (7)
Title |
---|
"ShuttleNoC: Power-Adaptable Communication Infrastructure for Many-Core Processors";Hang Lu;《IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems》;20191231;第1438-1451页 * |
"Towards a Combined Grouping and Aggregation Algorithm for Fast Query Processing in Columnar Databases with GPUs";Sina Meraji;《2015 IEEE International Parallel and Distributed Processing Symposium Workshop》;20151231;第594-603页 * |
"并行数据库技术分析与展望";林荣智;《信息通信》;20161231;第200-201页 * |
"硬件组合技术在数据库查询优化中的应用";伊丽莎白;《计算机工程与应用》;20021231;第197-198、244页 * |
Kaspar Mätas."Transparent Integration of a Dynamic FPGA Database Acceleration System".《2020 30th International Conference on Field-Programmable Logic and Applications (FPL)》.2020,第365-366页. * |
关系数据库机查询处理技术;常会友;《电机与控制学报》;19891230(第04期);第63-70页 * |
基于CAM的数据库查询硬件加速方法;苏童等;《信息工程大学学报》;20190415(第02期);第93-97+103页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113468169A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9990362B2 (en) | Profiling data with location information | |
CN1842764B (zh) | 用于计算图的计算机辅助并行化的方法及其系统 | |
US9870382B2 (en) | Data encoding and corresponding data structure | |
US20150331918A1 (en) | Business Intelligence Document | |
US7698312B2 (en) | Performing recursive database operations | |
CN113468169B (zh) | 硬件数据库查询方法、数据库系统查询方法及装置 | |
CN110175202A (zh) | 用于数据库的表的外连接的方法和系统 | |
CN108874297A (zh) | 合并文件的方法、存储装置、存储设备和存储介质 | |
CN110297858B (zh) | 执行计划的优化方法、装置、计算机设备和存储介质 | |
KR101609915B1 (ko) | 다차원 시간차 분석 방법 및 장치 | |
CN107391728B (zh) | 数据挖掘方法以及数据挖掘装置 | |
US11734282B1 (en) | Methods and systems for performing a vectorized delete in a distributed database system | |
CN109710635B (zh) | 用于数据库的处理方法、处理系统以及服务器组 | |
CN107085571A (zh) | 一种校验规则的执行方法和装置 | |
CN114817308A (zh) | 数据库中优化多个percentile_cont分析函数执行的方法 | |
CN117313681A (zh) | 一种在线表格的迷你图minichart计算方式 | |
CN111177103A (zh) | 基于Hadoop的MapReduce框架的数据关联方法 | |
CN117009343A (zh) | 数据表一致性检测的方法和装置 | |
CN115309776A (zh) | 一种数据库查询方法及装置 | |
CN114201487A (zh) | 智能合约的存储装置和方法 | |
CN115374157A (zh) | 数据查询方法、装置、电子设备以及存储介质 | |
CN115658966A (zh) | 泛化智能驾驶场景的生成方法和生成装置 | |
CN117851454A (zh) | 数据查询和配置方法、装置、计算机设备和存储介质 | |
CN116881289A (zh) | 集合数据处理方法、装置、计算机设备和存储介质 | |
CN112506944A (zh) | 业务系统间的数据标准转换取数方法、装置、设备和介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |