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

一种数据向量化聚集方法、装置、设备及存储介质

文献发布时间:2023-06-19 19:27:02


一种数据向量化聚集方法、装置、设备及存储介质

技术领域

本发明涉及数据库技术领域,特别涉及一种数据向量化聚集方法、装置、设备及存储介质。

背景技术

随着摩尔定律的逐渐失效以及数据库数据的爆发式增长,传统的纯CPU(CentralProcessing Unit,即中央处理器)计算平台已经不能满足当前的数据库计算需求。在传统计算平台中嵌入FPGA(Field Programmable Gate Array,即现场可编程逻辑门阵列)、GPU(graphics processing unit,即图形处理器)、AISC(Application-Specific IntegratedCircuit,即应用型专用集成电路)等可编程硬件加速器,将特定的查询操作卸载到硬件处理器,由硬件处理器完成,以此来提升数据库的性能,是现在的热门研究方式。

但是,由于在CPU和硬件加速平台之间进行数据传输时,存在一定量的时延开销,硬件加速平台在进行低数据量的数据查询加速操作时,其加速效果很差,甚至劣于CPU的查询计算。

发明内容

有鉴于此,本发明的目的在于提供一种数据向量化聚集方法、装置、设备及存储介质,能够通过向量化的形式将大量数据合并为一个数据,并通过预设平台实现聚集加速从而降低时间开销。其具体方案如下:

第一方面,本申请公开了一种数据向量化聚集方法,应用于中央处理器,包括:

获取若干包含相应数据处理操作的数据查询指令,并对若干所述数据查询指令进行向量化处理以生成向量化指令;所述数据处理操作中包含数据聚集操作;

基于所述向量化指令对预设数据库进行扫描操作,以读取与每一所述数据查询指令对应的若干待处理数据并存储至本地的预设内存;所述待处理数据为向量块形式;

将与所述数据聚集操作对应的所述向量化指令发送至预设的FPGA硬件加速平台中,以便所述FPGA硬件加速平台基于所述向量化指令从所述预设内存中获取相应的所述待处理数据以进行数据聚集操作,并将相应的数据处理结果返回至所述中央处理器。

可选的,所述基于所述向量化指令对预设数据库进行扫描操作,以读取与每一所述数据查询指令对应的若干待处理数据并存储至本地的预设内存,包括:

基于所述向量化指令对预设数据库进行扫描操作,以读取与每一所述数据查询指令对应的若干待处理数据,并将每一所述待处理数据封装为一个待处理数据向量块存储至预设内存;

相应的,所述基于所述向量化指令从所述预设内存中获取相应的所述待处理数据以进行数据聚集操作,包括:

基于所述向量化指令从所述预设内存获取相应的所述待处理数据向量块以进行数据聚集操作。

可选的,所述基于所述向量化指令从所述预设内存中获取相应的所述待处理数据以进行数据聚集操作,包括:

基于所述向量化指令从所述预设内存中获取相应的所述待处理数据,并将每一所述待处理数据封装为一个待处理数据向量块以对若干所述待处理数据向量块进行数据聚集操作。

可选的,所述基于所述向量化指令从所述预设内存中获取相应的所述待处理数据以进行数据聚集操作之后,还包括:

判断所述向量化指令中是否还存在通过所述FPGA硬件加速平台执行的与其他数据处理操作对应的指令;

若是,则将经过数据聚集操作得到的所述数据处理结果保存至所述FPGA硬件加速平台中的预设数据缓存中,并通过所述FPGA硬件加速平台对与其他数据处理操作对应的所述向量化指令进行相应的数据处理操作,直至所有通过所述FPGA硬件加速平台执行的数据处理操作全部执行完成。

第二方面,本申请公开了一种数据向量化聚集方法,应用于FPGA硬件加速平台,包括:

获取中央处理器对若干包含相应数据处理操作的数据查询指令进行向量化处理后生成的包含数据聚集操作的向量化指令;所述数据处理操作中包含数据聚集操作;

基于与所述数据聚集操作对应的所述向量化指令从所述中央处理器的预设内存中获取相应的待处理数据以进行数据聚集操作,并将相应的数据处理结果返回至所述中央处理器;所述待处理数据为向量块形式并与每一所述数据查询指令对应,由所述中央处理器基于所述向量化指令对预设数据库进行扫描操作读取并存储至所述预设内存。

可选的,所述数据向量化聚集方法还包括:

从所述预设内存中读取到相应的所述待处理数据后,将所述待处理数据缓存至所述FPGA硬件加速平台的第一存储器中;

对所述待处理数据的数据聚集操作完成后,将相应的所述数据处理结果缓存至所述FPGA硬件加速平台的第二存储器中。

第三方面,本申请公开了一种数据向量化聚集装置,应用于中央处理器,包括:

向量化处理模块,用于获取若干包含相应数据处理操作的数据查询指令,并对若干所述数据查询指令进行向量化处理以生成向量化指令;所述数据处理操作中包含数据聚集操作;

数据库扫描模块,用于基于所述向量化指令对预设数据库进行扫描操作,以读取与每一所述数据查询指令对应的若干待处理数据并存储至本地的预设内存;所述待处理数据为向量块形式;

指令发送模块,用于将与所述数据聚集操作对应的所述向量化指令发送至预设的FPGA硬件加速平台中,以便所述FPGA硬件加速平台基于所述向量化指令从所述预设内存中获取相应的所述待处理数据以进行数据聚集操作,并将相应的数据处理结果返回至所述中央处理器。

第四方面,本申请公开了一种数据向量化聚集装置,应用于FPGA硬件加速平台,包括:

指令获取模块,用于获取中央处理器对若干包含相应数据处理操作的数据查询指令进行向量化处理后生成的包含数据聚集操作的向量化指令;所述数据处理操作中包含数据聚集操作;

数据聚类模块,用于基于与所述数据聚集操作对应的所述向量化指令从所述中央处理器的预设内存中获取相应的待处理数据以进行数据聚集操作,并将相应的数据处理结果返回至所述中央处理器;所述待处理数据为向量块形式并与每一所述数据查询指令对应,由所述中央处理器基于所述向量化指令对预设数据库进行扫描操作读取并存储至所述预设内存。

第五方面,本申请公开了一种电子设备,包括:

存储器,用于保存计算机程序;

处理器,用于执行所述计算机程序以实现前述的数据向量化聚集方法。

第六方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的数据向量化聚集方法。

可见,本申请首先获取若干包含相应数据处理操作的数据查询指令,并对若干所述数据查询指令进行向量化处理以生成向量化指令;所述数据处理操作中包含数据聚集操作;接着基于所述向量化指令对预设数据库进行扫描操作,以读取与每一所述数据查询指令对应的若干待处理数据并存储至本地的预设内存;所述待处理数据为向量块形式;然后将与所述数据聚集操作对应的所述向量化指令发送至预设的FPGA硬件加速平台中,以便所述FPGA硬件加速平台基于所述向量化指令从所述预设内存中获取相应的所述待处理数据以进行数据聚集操作,并将相应的数据处理结果返回至所述中央处理器。由此可知,本申请通过将指令进行向量化处理,可以将大量低数据量得聚集查询操作合并为一个高数据量的查询操作,从而实现高并发小批量数据的加速聚集操作,避免逐一将大量的低数据量的数据查询指令输入至硬件加速平台导致加速效果差等问题出现,有效减少了时间开销,提高了数据查询速度。

附图说明

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

图1为本申请公开的一种数据向量化聚集方法流程图;

图2为本申请公开的一种具体的数据向量化聚集方法流程图;

图3为本申请公开的一种数据向量化聚集流程示意图;

图4为本申请公开的一种具体的数据向量化聚集方法流程图;

图5为本申请同开的一种FPGA硬件加速平台的结构示意图;

图6为本申请公开的一种数据向量化聚集装置结构示意图;

图7为本申请公开的一种数据向量化聚集装置结构示意图;

图8为本申请公开的一种电子设备结构图。

具体实施方式

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

随着摩尔定律的逐渐失效以及数据库数据的爆发式增长,传统的纯CPU计算平台已经不能满足当前的数据库计算需求。将特定的查询操作卸载到硬件处理器,由硬件处理器完成,以此来提升数据库的性能,是现在的热门研究方式。但是,由于在CPU和硬件加速平台之间进行数据传输时,存在一定量的时延开销,硬件加速平台在进行低数据量的数据查询加速操作时,其加速效果很差,甚至劣于CPU的查询计算。为解决上述问题,本申请公开了一种数据向量化聚集方法以通过向量化的形式将大量数据合并为一个数据,并通过预设平台实现聚集加速,从而降低时间开销。

参见图1所示,本申请实施例公开了一种数据向量化聚集方法,应用于中央处理器,包括:

步骤S11:获取若干包含相应数据处理操作的数据查询指令,并对若干所述数据查询指令进行向量化处理以生成向量化指令;所述数据处理操作中包含数据聚集操作。

本实施例中,首先本地的中央处理器获取用户通过显示设备输入的若干包含相应数据处理操作的数据查询指令,并对若干所述数据查询指令进行向量化处理以将若干所述数据查询指令进行合并得到一条向量化指令。需要指出的是,所述数据查询指令中可能包含数据扫描操作、数据聚集操作以及其他数据处理操作,本申请主要针对数据聚集操作进行具体说明。这样一来,将大量的低数据量数据查询指令合并为一个高数据量的向量化指令,避免逐一对大量低数据量的数据查询指令进行相应处理,导致加速效果不明显和数据传输通道占用等情况出现。

步骤S12:基于所述向量化指令对预设数据库进行扫描操作,以读取与每一所述数据查询指令对应的若干待处理数据并存储至本地的预设内存;所述待处理数据为向量块形式。

本实施例中,在得到所述向量化指令后,所述中央处理器基于所述向量化指令通过LOAD指令对预设数据库进行遍历扫描操作,以读取每一与所述数据查询指令对应的若干待处理数据,并将所述待处理数据存储至本地的预设内存中。需要指出的是,所述待处理数据为向量块形式。

步骤S13:将与所述数据聚集操作对应的所述向量化指令发送至预设的FPGA硬件加速平台中,以便所述FPGA硬件加速平台基于所述向量化指令从所述预设内存中获取相应的所述待处理数据以进行数据聚集操作,并将相应的数据处理结果返回至所述中央处理器。

本实施例中,所述中央处理器从向量化指令中确定出与所述数据聚集操作对应的所述向量化指令,并发送至预设的FPGA硬件加速平台中,所述FPGA硬件加速平台获取到所述向量化指令后,基于所述向量化指令中携带的数据读取地址信息,通过DMA(DirectMemory Access,即直接内存访问)模块从所述预设内存中获取相应的所述待处理数据,并通过所述FPGA硬件加速平台内部的总线结构,将所述待处理数据下发到具体的聚集算子模块中以通过任务调度的方式对所述待处理数据进行数据聚集操作,最后将相应的数据处理结果返回至所述中央处理器的存储资源中即预设内存。需要指出的是,所述FPGA硬件加速平台可以为市面上现有的平台,也可以根据自身需求开发的个性化平台,在此不做具体限制;所述FPGA硬件加速平台中可以设置多个聚集算子模块,并且所述聚集算子模块中包括但不限于求和算子、均值算子、最大值算子等。

本实施例中,所述基于所述向量化指令从所述预设内存中获取相应的所述待处理数据以进行数据聚集操作,可以包括:基于所述向量化指令从所述预设内存中获取相应的所述待处理数据,并将每一所述待处理数据封装为一个待处理数据向量块以对若干所述待处理数据向量块进行数据聚集操作。由于所述待处理数据为向量块形式,所以需要对待处理数据封装为一个向量块,本实施例中在所述FPGA硬件加速平台基于所述向量化指令从所述预设内存中获取到相应的待处理数据后,将每一所述待处理数据封装为一个待处理数据向量块,并对若干所述待处理数据向量块进行相应的数据聚集操作。需要指出的是,除了所述FPGA硬件加速平台可以将所述待处理数据封装为一个向量块数据,所述中央处理器也可以将所述待处理数据封装为向量块数据。这样一来,通过将标量形式的数据转换为向量化的形式以便进行数据存储和数据传输,有效提高数据传输和存储效率。

可见,本申请首先获取若干包含相应数据处理操作的数据查询指令,并对若干所述数据查询指令进行向量化处理以生成向量化指令;所述数据处理操作中包含数据聚集操作;接着基于所述向量化指令对预设数据库进行扫描操作,以读取与每一所述数据查询指令对应的若干待处理数据并存储至本地的预设内存;所述待处理数据为向量块形式;然后将与所述数据聚集操作对应的所述向量化指令发送至预设的FPGA硬件加速平台中,以便所述FPGA硬件加速平台基于所述向量化指令从所述预设内存中获取相应的所述待处理数据以进行数据聚集操作,并将相应的数据处理结果返回至所述中央处理器。由此可知,本申请通过将指令进行向量化处理,可以将大量低数据量得聚集查询操作合并为一个高数据量的查询操作,从而实现高并发小批量数据的加速聚集操作,避免逐一将大量的低数据量的数据查询指令输入至硬件加速平台导致加速效果差等问题出现,有效减少了时间开销,提高了数据查询速度。

基于上述实施例可知,本申请可以将数据查询指令和相应的待处理数据向量化以将大量的数据量数据合并为高数据量数据,并且所述FPGA硬件加速平台可以将所述待处理数据向量化。除了所述FPGA硬件加速平台之外,所述中央处理器也可以将所述待处理数据向量化,接下来,将对数据向量化聚集方法进行具体的描述。参见图2所示,本申请实施例公开了一种具体的数据向量化聚集方法,应用于中央处理器,包括:

步骤S21:获取若干包含相应数据处理操作的数据查询指令,并对若干所述数据查询指令进行向量化处理以生成向量化指令;所述数据处理操作中包含数据聚集操作。

步骤S22:基于所述向量化指令对预设数据库进行扫描操作,以读取与每一所述数据查询指令对应的若干待处理数据,并将每一所述待处理数据封装为一个待处理数据向量块存储至预设内存。

本实施例中,所述中央处理器基于所述向量化指令对预设数据库进行扫描操作,以读取与每一所述数据查询指令对应的若干待处理数据,并将每一所述待处理数据封装为一个待处理数据向量块存储至本地的预设内存中,以便所述FPGA硬件加速平台可以直接从所述预设内存中获取到待处理数据向量块。

步骤S23:将与所述数据聚集操作对应的所述向量化指令发送至预设的FPGA硬件加速平台中,以便所述FPGA硬件加速平台基于所述向量化指令从所述预设内存获取相应的所述待处理数据向量块以进行数据聚集操作,并将经过数据聚集操作得到的所述数据处理结果保存至所述FPGA硬件加速平台中的预设数据缓存中。

本实施例中,所述中央处理器将于所述数据聚集操作对应的所述向量化指令发送至预设的FPGA硬件加速平台中,以便所述FPGA硬件加速平台基于所述向量化指令中的数据读取地址信息从所述预设内存中获取相应的所述待处理数据向量块,直接进行数据聚集操作,并将经过数据聚集操作得到的所述数据处理结果保存至所述FPGA硬件加速平台中的预设数据缓存中。其中所述预设数据缓存为DDR模块(Double Data Rate SynchronousDynamic Random Access Memory,即双倍速率同步动态随机存储器),用于存储所述FPGA硬件加速平台进行数据处理操作后产生的相应的数据处理结果。

步骤S24:判断所述向量化指令中是否还存在通过所述FPGA硬件加速平台执行的与其他数据处理操作对应的指令。

本实施例中,数据聚集操作完成后,所述FPGA硬件加速平台还可以判断所述向量化指令中是否还存在需要自身执行的与其他数据处理操作对应的指令。其中所述向量化指令可以为所述中央处理器发送的所有需要所述FPGA硬件加速平台执行相应数据处理操作的指令。

步骤S25:若是,则通过所述FPGA硬件加速平台对与其他数据处理操作对应的所述向量化指令进行相应的数据处理操作,直至所有通过所述FPGA硬件加速平台执行的数据处理操作全部执行完成,然后将相应的数据处理结果返回至所述中央处理器。

本实施例中,若所述向量化指令中还存在通过所述FPGA硬件加速平台执行的与其他数据处理操作对应的指令,则通过所述FPGA硬件加速平台对于其他数据处理操作对应的所述向量化指令进行相应的数据处理操作,直至所有通过所述FPGA硬件加速平台执行的数据处理操作全部执行完成,然后将得到的全部数据处理结果返回至所述中央处理器,以便所述中央处理器进行其他的数据处理操作后将结果写入本地的所述预设内存中。这样一来,所述中央处理器和所述FPGA硬件加速平台可以在一次数据向量化聚集的过程中只进行一次数据传输过程,避免通过所述FPGA硬件加速平台需要执行的操作未全部完成导致需要重新发送相关数据产生的通道拥堵和资源占用等问题出现,提高数据的传输和处理效率,从而提高聚集速度降低时间开销。

参见图3所示,为本申请公开的一种数据向量化聚集流程示意图。首先所述中央处理器中的向量化执行引擎对获取到的若干条数据查询执行进行向量化处理生成相应的向量化指令,并通过所述向量化指令控制列式存储引擎对存储资源中的数据进行扫描计算操作,以读取相应的待处理数据并封装为若干向量块,图中所示的一个小矩形即为一个待处理数据向量块,将扫描后得到的待处理数据向量块通过DMA模块发送至所述FPGA硬件加速平台中以进行聚集计算操作,将结果返回至所述中央处理器,中央处理器对数据进行其他的数据处理操作后,将相应的数据处理结果最终返回至所述存储资源中进行存储。其中所述列式存储引擎可以通过不同的数据库索引结构,以列的形式实现对内存中数据的存储和提取;所述存储资源中包括但不限于前述实施例中提到的所述预设数据库和预设内存。

其中,关于上述步骤S21的具体过程可以参考前述实施例公开的相应内容,在此不再进行赘述。

可见,本实施例中,可以通过所述中央处理器将待处理数据封装成向量块,以便所述FPGA硬件加速平台直接从预设内存中获取到相应的待处理数据向量块,避免影响所述FPGA硬件加速平台进行其他数据处理操作的进程,并且,在数据聚集操作完成后,还可以判断是否存在其他的数据处理操作对应的指令,以将所有需要所述FPGA硬件加速平台执行的操作一并执行完毕后,向所述中央处理器返回数据处理结果,避免重复传输数据导致通道拥堵和资源占用等问题,提高数据的传输和处理效率,从而提高聚集速度降低时间开销。

基于上述实施例可知,本申请由本地中央处理器将相应指令和数据传输至FPGA硬件加速平台进行数据处理,前述实施例中均基于中央处理器的角度对本方案进行描述,接下来,将基于FPGA硬件加速平台对本方案进行描述。参见图4所示,本申请实施例公开了一种具体的数据向量化聚集方法,应用于FPGA硬件加速平台,包括:

步骤S31:获取中央处理器对若干包含相应数据处理操作的数据查询指令进行向量化处理后生成的包含数据聚集操作的向量化指令;所述数据处理操作中包含数据聚集操作。

本实施例中,所述FPGA硬件加速平台首先获取本地中央处理器对若干包含相应数据处理操作的数据查询指令进行向量化处理后生成的包含数据聚集操作的向量化指令,其中所述数据处理操作中包含数据聚集操作,所述中央处理器可以确定出包含数据聚集操作的所述向量化指令。

步骤S32:基于与所述数据聚集操作对应的所述向量化指令从所述中央处理器的预设内存中获取相应的待处理数据以进行数据聚集操作,并将相应的数据处理结果返回至所述中央处理器;所述待处理数据为向量块形式并与每一所述数据查询指令对应,由所述中央处理器基于所述向量化指令对预设数据库进行扫描操作读取并存储至所述预设内存。

本实施例中,所述FPGA硬件加速平台基于与所述数据聚集操作对应的所述向量化指令从所述中央处理器的预设内存中获取相应的待处理数据以进行数据聚集操作,可以理解的是,从所述预设内存中获取的所述待处理数据可能为标量数据也可能为封装为向量块的数据,但进行数据聚集操作时运用的数据为封装为向量快的数据,聚集操作完成后,将相应的数据处理结果返回至所述中央处理器中,其中每个待处理数据与每一所述数据查询指令对应,是由所述中央处理器基于所述向量化指令对预设数据库进行扫描操作读取并存储至本地的所述预设内存中。

本实施例中,所述数据向量化聚集方法还可以包括:从所述预设内存中读取到相应的所述待处理数据后,将所述待处理数据缓存至所述FPGA硬件加速平台的第一存储器中;对所述待处理数据的数据聚集操作完成后,将相应的所述数据处理结果缓存至所述FPGA硬件加速平台的第二存储器中。参见图5所示,所述FPGA硬件加速平台中设置两个DDR存储器和相应的DDR控制器,输入至所述FPGA硬件加速平台的数据通过DDR控制器1写入DDR1模块即所述第一存储器中进行数据缓存,所述FPGA硬件加速平台将DDR1模块中的数据写入片上缓存并通过聚集算子模块进行相应的计算,并将计算得到的数据处理结果输出至DDR2模块即所述第二存储器中进行缓存,然后再通过DMA模块写入所述中央处理器的所述预设内存中。进一步的,当所述片上缓存处于空闲状态时,将输入至所述FPGA硬件加速平台的数据写入DDR1模块的同时可以将所述数据同步写入所述片上缓存中,这样一来,通过两个存储器分别存储写入数据和读出数据,可以消除部分数据读写冲突,降低数据读写延迟总量。

可见,本申请首先获取中央处理器对若干包含相应数据处理操作的数据查询指令进行向量化处理后生成的包含数据聚集操作的向量化指令;所述数据处理操作中包含数据聚集操作;接着基于与所述数据聚集操作对应的所述向量化指令从所述中央处理器的预设内存中获取相应的待处理数据以进行数据聚集操作,并将相应的数据处理结果返回至所述中央处理器;所述待处理数据为向量块形式并与每一所述数据查询指令对应,由所述中央处理器基于所述向量化指令对预设数据库进行扫描操作读取并存储至所述预设内存。由此可知,本申请通过将指令进行向量化处理,可以将大量低数据量得聚集查询操作合并为一个高数据量的查询操作,从而实现高并发小批量数据的加速聚集操作,避免逐一将大量的低数据量的数据查询指令输入至硬件加速平台导致加速效果差等问题出现,有效减少了时间开销,提高了数据查询速度。

参考图6所述,本申请实施例还相应公开了一种数据向量化聚集装置,应用于中央处理器,包括:

向量化处理模块11,用于获取若干包含相应数据处理操作的数据查询指令,并对若干所述数据查询指令进行向量化处理以生成向量化指令;所述数据处理操作中包含数据聚集操作;

数据库扫描模块12,用于基于所述向量化指令对预设数据库进行扫描操作,以读取与每一所述数据查询指令对应的若干待处理数据并存储至本地的预设内存;所述待处理数据为向量块形式;

指令发送模块13,用于将与所述数据聚集操作对应的所述向量化指令发送至预设的FPGA硬件加速平台中,以便所述FPGA硬件加速平台基于所述向量化指令从所述预设内存中获取相应的所述待处理数据以进行数据聚集操作,并将相应的数据处理结果返回至所述中央处理器。

可见,本申请首先获取若干包含相应数据处理操作的数据查询指令,并对若干所述数据查询指令进行向量化处理以生成向量化指令;所述数据处理操作中包含数据聚集操作;接着基于所述向量化指令对预设数据库进行扫描操作,以读取与每一所述数据查询指令对应的若干待处理数据并存储至本地的预设内存;所述待处理数据为向量块形式;然后将与所述数据聚集操作对应的所述向量化指令发送至预设的FPGA硬件加速平台中,以便所述FPGA硬件加速平台基于所述向量化指令从所述预设内存中获取相应的所述待处理数据以进行数据聚集操作,并将相应的数据处理结果返回至所述中央处理器。由此可知,本申请通过将指令进行向量化处理,可以将大量低数据量得聚集查询操作合并为一个高数据量的查询操作,从而实现高并发小批量数据的加速聚集操作,避免逐一将大量的低数据量的数据查询指令输入至硬件加速平台导致加速效果差等问题出现,有效减少了时间开销,提高了数据查询速度。

在一些具体的实施例中,所述数据库扫描模块12,具体可以用于基于所述向量化指令对预设数据库进行扫描操作,以读取与每一所述数据查询指令对应的若干待处理数据,并将每一所述待处理数据封装为一个待处理数据向量块存储至预设内存;

相应的,所述指令发送模块13,具体可以用于基于所述向量化指令从所述预设内存获取相应的所述待处理数据向量块以进行数据聚集操作。

在一些具体的实施例中,所述指令发送模块13,具体可以用于基于所述向量化指令从所述预设内存中获取相应的所述待处理数据,并将每一所述待处理数据封装为一个待处理数据向量块以对若干所述待处理数据向量块进行数据聚集操作。

在一些具体的实施例中,所述数据向量化聚集装置,还可以包括:

指令判断模块,用于判断所述向量化指令中是否还存在通过所述FPGA硬件加速平台执行的与其他数据处理操作对应的指令;

操作执行模块,用于当所述向量化指令中还存在通过所述FPGA硬件加速平台执行的与其他数据处理操作对应的指令时,则将经过数据聚集操作得到的所述数据处理结果保存至所述FPGA硬件加速平台中的预设数据缓存中,并通过所述FPGA硬件加速平台对与其他数据处理操作对应的所述向量化指令进行相应的数据处理操作,直至所有通过所述FPGA硬件加速平台执行的数据处理操作全部执行完成。

参考图7所述,本申请实施例还相应公开了一种数据向量化聚集装置,应用于FPGA硬件加速平台,包括:

指令获取模块21,用于获取中央处理器对若干包含相应数据处理操作的数据查询指令进行向量化处理后生成的包含数据聚集操作的向量化指令;所述数据处理操作中包含数据聚集操作;

数据聚类模块22,用于基于与所述数据聚集操作对应的所述向量化指令从所述中央处理器的预设内存中获取相应的待处理数据以进行数据聚集操作,并将相应的数据处理结果返回至所述中央处理器;所述待处理数据为向量块形式并与每一所述数据查询指令对应,由所述中央处理器基于所述向量化指令对预设数据库进行扫描操作读取并存储至所述预设内存。

可见,本申请首先获取中央处理器对若干包含相应数据处理操作的数据查询指令进行向量化处理后生成的包含数据聚集操作的向量化指令;所述数据处理操作中包含数据聚集操作;接着基于与所述数据聚集操作对应的所述向量化指令从所述中央处理器的预设内存中获取相应的待处理数据以进行数据聚集操作,并将相应的数据处理结果返回至所述中央处理器;所述待处理数据为向量块形式并与每一所述数据查询指令对应,由所述中央处理器基于所述向量化指令对预设数据库进行扫描操作读取并存储至所述预设内存。由此可知,本申请通过将指令进行向量化处理,可以将大量低数据量得聚集查询操作合并为一个高数据量的查询操作,从而实现高并发小批量数据的加速聚集操作,避免逐一将大量的低数据量的数据查询指令输入至硬件加速平台导致加速效果差等问题出现,有效减少了时间开销,提高了数据查询速度。

在一些具体的实施例中,所述数据向量化聚集装置,还可以包括:

第一数据存储模块,用于从所述预设内存中读取到相应的所述待处理数据后,将所述待处理数据缓存至所述FPGA硬件加速平台的第一存储器中;

第二数据存储模块,用于对所述待处理数据的数据聚集操作完成后,将相应的所述数据处理结果缓存至所述FPGA硬件加速平台的第二存储器中。

进一步的,本申请实施例还公开了一种电子设备,图8是根据一示例性实施例示出的电子设备30结构图,图中的内容不能认为是对本申请的使用范围的任何限制。

图8为本申请实施例提供的一种电子设备30的结构示意图。该电子设备 30,具体可以包括:至少一个处理器31、至少一个存储器32、电源33、通信接口34、输入输出接口35和通信总线36。其中,所述存储器32用于存储计算机程序,所述计算机程序由所述处理器31加载并执行,以实现前述任一实施例公开的数据向量化聚集方法中的相关步骤。另外,本实施例中的电子设备30具体可以为电子计算机。

本实施例中,电源33用于为电子设备30上的各硬件设备提供工作电压;通信接口34能够为电子设备30创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口35,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。

另外,存储器32作为资源存储的载体,可以是只读存储器、随机存储器、 磁盘或者光盘等,其上所存储的资源可以包括操作系统321、计算机程序322 等,存储方式可以是短暂存储或者永久存储。

其中,操作系统321用于管理与控制电子设备30上的各硬件设备以及计算机程序322,其可以是Windows Server、Netware、Unix、Linux等。计算机程序322除了包括能够用于完成前述任一实施例公开的由电子设备30执行的数据向量化聚集方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。

进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的数据向量化聚集方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 一种数据存储方法及装置、一种计算设备及存储介质
  • 一种数据存储方法及装置、一种计算设备及存储介质
  • 一种数据存储方法、调度装置、系统、设备及存储介质
  • 一种元数据存储方法、装置、设备及计算机可读存储介质
  • 一种数据存储方法、装置、设备及计算机可读存储介质
  • 一种路径的向量化表征方法、装置、计算设备及存储介质
  • 一种目标聚集程度的监测方法、装置、电子设备和存储介质
技术分类

06120115916902