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

数据处理方法、装置、设备及存储介质

文献发布时间:2023-06-19 11:22:42


数据处理方法、装置、设备及存储介质

技术领域

本发明是涉及通信技术领域,尤其涉及一种数据处理方法、装置、设备及存储介质。

背景技术

在用户利用结构化查询语言(Structured Query Language,SQL)语句进行数据查询时,可以通过迭代器模型进行数据查询。在迭代器模型中,表达式以一个抽象的迭代器为输入,通过迭代器逐行地获取数据库中每个数据表的数据,从而计算每一行的结果,并将多行的结果输出作为输出,以获取对应的数据。

但是,这种抽象的迭代器会带来性能上的损耗,因为在迭代器进行迭代的过程中,每一行数据的获取都会引发多层的函数调用,同时,逐行地获取数据会带来过多的写入和输出,消耗较多的资源,导致计算量过大,从而降低数据处理效率,并降低SQL语句的数据查询速度。

发明内容

本发明一个或多个实施例描述了一种数据处理方法、装置、设备及存储介质,用以解决相关技术中,数据处理效率过低,影响SQL语句的数据查询速度慢的问题。

为了解决上述技术问题,本发明是这样实现的:

根据第一方面,提供了一种数据处理方法,该方法可以包括:

获取与数据查询请求中表达式对应的目标模型,表达式包含约束条件;

将表达式和列式数据库中的目标数据输入到目标模型中,得到与约束条件对应的执行结果;其中,目标数据包括至少一列的全部数据以及至少一列中的部分数据;

输出执行结果。

根据第二方面,提供了一种数据处理装置,该装置可以包括:

获取模块,用于获取与数据查询请求中表达式对应的目标模型,表达式包含约束条件;

处理模块,用于将表达式和列式数据库中的目标数据输入到目标模型中,得到与约束条件对应的执行结果;其中,目标数据包括至少一列的全部数据以及至少一列中的部分数据;

输出模块,用于输出执行结果。

根据第三方面,提供了一种计算设备,设备包括至少一个处理器和存储器,存储器用于存储有计算机程序指令,处理器用于执行存储器的程序,以控制计算设备实现如第一方面所示的数据处理方法。

根据第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,若计算机程序在计算机中执行,则令计算机执行如第一方面所示的数据处理方法。

本发明实施例中,通过获取与数据查询请求中表达式对应的目标模型,其中,表达式包含约束条件;将表达式和列式数据库中的目标数据输入到目标模型中,得到与约束条件对应的执行结果。这里,本发明实施例充分利用了列式数据库可以快速获取某一列数据的特性,在表达式运算中减少了写入或者输出的次数,使得获取数据的时间大大减少,减少计算量,提高数据处理效率,以提高SQL语句的数据查询速度。

附图说明

从下面结合附图对本发明的具体实施方式的描述中可以更好地理解本发明其中,相同或相似的附图标记表示相同或相似的特征。

图1示出根据一个实施例的数据处理方法的架构示意图;

图2示出根据一个实施例的一种数据处理方法的流程图;

图3示出根据一个实施例的一种第一目标模型实现数据处理方法的流程图;

图4示出根据一个实施例的一种第二目标模型实现数据处理方法的流程图;

图5示出根据一个实施例的一种第一目标模型和第二目标模型实现数据处理方法的流程图;

图6示出根据一个实施例的一种第三目标模型实现数据处理方法的流程图;

图7示出根据一个实施例的一种第四目标模型实现数据处理方法的流程图;

图8示出根据一个实施例的一种第五目标模型实现数据处理方法的流程图;

图9示出根据一个实施例的另一种第五目标模型实现数据处理方法的流程图;

图10示出根据一个实施例的数据处理装置的结构框图;

图11示出根据一个实施例的计算设备的结构示意图。

具体实施方式

下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。

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

目前,在迭代器模型中,表达式以一个抽象的迭代器为输入,以计算结果作为输出。在使用迭代器进行表达式计算的过程中,行式数据库中数据表的数据是逐行地被处理的。对于表中的每一行,可以使用迭代器获取这一行的数据,进行计算,然后写回结果。处理完一行数据后,迭代器会被移动到下一行,进行同样的计算。这种操作往往会形成一个循环,直到迭代器扫过了所有行,此时循环终止,表达式计算跳到下一个模型,然后在这个模型上进行类似的循环。由于迭代器对整张数据表进行了抽象,导致抽象的迭代器在获取数据的时候会进行多层的函数调用,降低整体的处理性能。另外,迭代器的每次移动都会涉及一次取数据的操作,这种操作往往涉及过多的写入和输出,带来非常大的开销,计算量过大,从而降低数据处理效率,并降低SQL语句的数据查询速度。

为了解决上述技术问题,本发明实施例提供了一种数据处理方法装置、设备及存储介质,具体如下所示。

首先,对本发明实施例提供的一种数据处理架构进行说明。

如图1所示,该架构可以包括目标节点和列式数据库。在目标节点接收到数据查询请求时,确定该数据查询请求中表达式对应的目标模型,表达式包含约束条件;接着,将表达式和列式数据库中的目标数据输入到目标模型中,得到与约束条件对应的执行结果;其中,目标数据包括至少一列的全部数据以及至少一列中的部分数据;输出执行结果。

其中,在本发明实施例中的列式数据库可以包括Histore列式数据库。Histore列式数据库是基于开源数据库演进而来的列式数据库,该数据库中每个数据表的数据是按照列存储的,由此,在表达式计算的时候可以快速地获取某一列的所有行的数据。这使得其天然地具有对数据进行批(batch)处理的特性。因此,本发明实施例中新的基于批(batch)处理的目标模型利用这一特性,将数据表中的数据分成不同的批次,每一个表达式以批(batch)为单位处理数据,加快整个表达式的处理速度。

另外,上述架构可以应用于用户利用SQL语句进行数据查询的应用场景中。或者,可以基于上述目标模型进行表达式计算的场景中。

由此,通过获取与数据查询请求中表达式对应的目标模型;将表达式和列式数据库中的目标数据输入到目标模型中,得到与表达式的约束条件对应的执行结果。这里,本发明实施例充分利用了列式数据库可以快速获取某一列数据的特性,在表达式运算中减少了写入或者输出的次数,使得获取数据的时间大大减少,减少计算量,以提高数据处理效率。

这里,基于上述架构和应用场景,本发明实施例结合图2-图9对本发明实施例提供的数据处理方法作出进一步说明。

图2示出根据一个实施例的一种数据处理方法的流程图。

如图2所示,该方法可以包括步骤210至步骤230:首先,步骤210,获取与数据查询请求中表达式对应的目标模型,表达式包含约束条件;其次,步骤220,将表达式和列式数据库中的目标数据输入到目标模型中,得到与约束条件对应的执行结果;然后,步骤230,输出执行结果。

下面分别对上述步骤进行详细说明:

首先,涉及步骤210,目标节点接收到数据查询请求;

其中,该数据查询请求包括表达式,该表达式可以表示为“统计某个商品的点击量”、“查询某个平台的访问量”等。该表达式可以包括至少一个约束条件,由此,上述表达式“统计某个商品的点击量”可以包括的如下约束条件“统计某个商品在1月到6月的点击量”、“统计某个商品的点击量在1-1000之内的数据”等。

在接收到数据查询请求之后,本发明实施例提供的方法还可以包括:根据数据查询请求,确定与数据查询请求中表达式对应的目标模型。

这里,每个表达式都有其对应的目标模型,在本发明实施例中提供了6种目标模型,下面结合步骤220进行详细描述。

其次,涉及步骤220,本发明实施例中的目标数据包括至少一列的全部数据以及至少一列中的部分数据。另外,列式数据库中的数据为按列存储,每一列单独存放至少一种属性的数据。

基于此,在一种可能的实施例中,该步骤具体可以包括:将表达式和目标数据输入到目标模型中;

基于目标模型,利用单指令多数据流(Single Instruction Multiple Data,SIMD)指令集,对表达式以及目标数据进行并行化处理,得到与约束条件对应的执行结果。

由此,通过按批计算的方式,可以充分利用了SIMD指令集进行表达式运算,加快了运算速度。

在另一种可能的实施例中,该步骤具体可以包括将第一位图数据、表达式和目标数据输入到目标模型中;

利用第一位图数据过滤目标数据,得到满足约束条件的数据;

基于目标模型和第一位图数据,对满足约束条件的数据进行处理,得到与约束条件对应的执行结果。

由此,通过在处理的过程中使用传入的过滤第一位图数据(mask),即优先过滤掉一些未满足约束条件的数据,可以减少表达式运算的数量。

需要提示的是,上述第二种可能的实施例,可以基于第一种可能的实施例实现,即将第一位图数据、表达式和目标数据输入到目标模型中;

利用第一位图数据过滤目标数据,得到满足约束条件的数据;

基于目标模型和第一位图数据,利用单指令多数据流(Single InstructionMultiple Data,SIMD)指令集,对表达式以及目标数据进行并行化处理,得到与约束条件对应的执行结果。

这样,可以通过对目标数据进行分批处理,充分利用了列式数据库可以快速获取某一列数据的特性,在表达式运算中减少了写入和输出的次数,使得查询数据结果的时间大大减少,同时对缓存友好。这些优化都可以为整个表达式带来整体的性能提升。另外,通过在处理的过程中使用传入的过滤mask即优先过滤掉一些未满足约束条件的数据,可以加快大量减少表达式运算的数量。同时,通过按批计算的方式,可以充分利用SIMD指令集进行表达式运算,加快了运算速度。

基于上述内容,本发明实施例结合下述至少一个目标模型,对上述步骤“基于目标模型和第一位图数据,对满足约束条件的数据进行处理,得到与约束条件对应的执行结果”进行详细说明。

(1)在目标模型为第一目标模型,目标数据包括第一列数据和第二列数据,第一列数据和第二列数据具有相同行数时,该步骤具体可以包括:

基于第一目标模型,将具有相同行的第一列数据和第二列数据进行相加,得到第三列数据;其中,第三列数据与第一列数据具有相同行数;

将第一位图数据和第三列数据确定为与约束条件对应的执行结果。

其中,该第一目标模型的输入可以包括第一位图数据、表达式、第一列数据和第二列数据。通过上述数据处理方式,第一目标模型的输出可以包括第一位图数据和第三列数据。

举例说明,在第一目标模型为求和模型时,如图3所示,展示了一个表达式为a+b的树形结构及其实现模型。其中,a和b是目标数据中任意两个列即第一列数据和第二列数据。基于此,将表达式“+”、mask、a和b作为输入,对每一行的a和b的数据做加法,然后将结果输出。在基于批处理的第一目标模型中,第一目标模型中的表达式接收一个用于过滤的mask、列a的一批数据,列b的一批数据。mask的作用是过滤掉已经被过滤的行(即可以理解为未满足约束条件的行;和/或,满足已被标记的预设条件的行),然后对其余的行批量地进行加法,最后输出一个mask和这一批数据的结果a+b。在这个表达式中,由于不改动输入的mask(即没有对mask进行标记隐藏0,该mask仅包括可见行即标记1),因此输入的mask可以直接作为输出。

(2)在目标模型为第二目标模型,目标数据包括第四列数据和常量数据,第四列数据和常量数据具有相同行数时,该步骤具体可以包括:

在约束条件为选取第四列数据中大于常量数据的数据时,基于第二目标模型,将具有相同行数的第四列数据和常量数据进行比较,得到与约束条件对应的执行结果;

其中,执行结果包括第二位图数据,第二位图数据包括在第一位图数据上标记具有相同行数的第四列数据大于常量数据的数据所在行对应的可见行,第二位图数据与第四列数据具有相同的行数。

其中,该第二目标模型的输入可以包括第一位图数据、表达式、第四列数据和常量数据。通过上述数据处理方式,第二目标模型的输出可以包括第二位图数据。

举例说明,如图4所示,展示了表达式第四列数据a>常量数据3的树形结构及其实现模型。基于此,在基于批处理的第二目标模型中,第二目标模型中的表达式接收一个mask、列a的一批数据,一批数据量等同于a的常量3的一批数据作为输入。结果输出的mask以输入的mask为基础。使用mask过滤掉一些行后(即未满足约束条件的行),批量地比较a>3,如果这个某一行小于等于3则在结果mask中重置这些行(即将未满足约束条件的行标记为隐藏行0,将满足约束条件且满足比较结果的行标记为可见行1),最终输出一个结果mask(包括满足约束条件且满足比较结果的可见行1)。

(3)在目标模型为第一目标模型和第二目标模型,目标数据包括第一列数据和第二列数据,目标模型包括第一模型和第二模型;目标数据包括第一目标数据和第二目标数据,第一目标数据包括第五列数据和第六列数据,第五列数据和第六列数据具有相同行数时,该步骤具体可以包括:

基于第一模型,将具有相同行的第五列数据和第六列数据进行相加,得到第七列数据;其中,第七列数据与第五列数据具有相同行数;

将第一位图数据、第七列数据和第二目标数据输入到第二模型中;其中,第二目标数据包括第八列数据,第八列数据和七列数据具有相同行数;

在约束条件为选取第七列数据中大于第八列数据的数据时,基于第二模型,将具有相同行数的第七列数据和第八列数据进行比较,得到与约束条件对应的执行结果;

其中,执行结果包括第三位图数据,第三位图数据包括在第一位图数据上标记具有相同行数的第七列数据大于第八列数据的数据所在行对应的可见行,第三位图数据与第七列数据具有相同的行数。

举例说明,如图5所示,展示了一个组合表达式(a+b)>第二目标数据c。这个表达式是由(1)和(2)组合而成。(1)中输出的mask和(a+b)结果可以作为表达式(a+b)>c的输入,另外从c中取同等数据量的一批数据作为输入,最终批量地进行(a+b)>c运算,得到一个结果mask。

由此,基于第一目标模型和第二目标模型,通过在处理的过程中使用传入的过滤第一位图数据(mask)并将结果mask输入到下一个节点(该节点可以指代第二目标模型和/或其他的目标节点),可以加快大量减少表达式运算的数量。

(4)在目标模型为第三目标模型,目标数据包括第九列数据,第一位图数据包括隐藏行和可见行,第一位图数据和第九列数据具有相同行数时,该步骤具体可以包括:

基于目标模型,利用隐藏行过滤第九列数据中的隐藏行,得到第九列数据中与可见行具有相同行的数据;

在表达式为数据求和时,将可见行具有相同行的数据进行累加,得到累加数据;

将累加数据和第一位图数据确定为与约束条件对应的执行结果。

其中,该第三目标模型的输入可以包括第一位图数据、表达式和第九列数据。通过上述数据处理方式,第三目标模型的输出可以包括累加数据和第一位图数据。

举例说明,如图6所示,展示了一个聚合查询(Aggregation)表达式SUM的树形结构及其实现模型。这个表达式以一个用于过滤的mask以及第九列数据a作为输入,在使用mask中标记为0的行过滤掉第九列数据中与0行对应的行数据之后,对剩余的数据(即可见行1对应的行)求和,最终输出一个mask和这批数据的和(sum(a))。

(5)在目标模型为第四目标模型,目标数据包括第十列数据,第一位图数据包括隐藏行和可见行,第一位图数据和第十列数据具有相同行数时,该步骤具体可以包括:

基于目标模型,利用隐藏行过滤第十列数据中的隐藏行,得到第十列数据中与可见行具有相同行的数据;

根据目标模型中的第一预设条件,对第十列数据中与可见行具有相同行的数据进行标记,得到被标记后的第十一列数据;

将第一位图数据和第十一列数据确定为约束条件对应的执行结果。

进一步地,在目标模型中包括第一预设条件和第二预设条件时;可见行包括第一可见行和第二可见行;

根据目标模型中的第一预设条件,对第十列数据中与可见行具有相同行的数据进行标记,得到被标记后的第十一列数据,包括:

根据第一预设条件,对第十列数据中与第一可见行具有相同行的数据进行标记,且将第一可见行调整为隐藏行;

根据第二预设条件,对第十列数据中与第二可见行具有相同行的数据进行标记,直至满足第三预设条件,结束标记,得到被标记后的第十一列数据。

其中,该第四目标模型的输入可以包括第一位图数据(在这个例子中,该第一位图数据包括隐藏行0和可见行1)、表达式(携带有3条约束条件)和第十列数据。通过上述数据处理方式,第四目标模型的输出可以包括第一位图数据和第十一列数据。

举例说明,如图7所示,展示了条件函数(CASE WHEN)表达式的树形结构及其实现模型。这个表达式包含3个跳转分支即条件判断。在初始情况下,使用mask过滤掉一部分数据(黑色方格所示的行即隐藏行0)。在第一个条件判断(when a)的结果中,灰色方格所在的行满足条件,因此那些行被置上条件结果5,同时这些行被过滤掉(即被标记成隐藏行0),在下一个条件判断中不予考虑。在第二个条件判断(when b)中,黑色方格所在的行被首先过滤掉,然后运算发现灰色方格所在的行满足第二个条件判断,因此那些行被置上条件结果6,同时这些行被过滤掉(即被标记成隐藏行0),在下一个条件过滤中不予考虑。在最后一个条件判断中,默认考虑剩下的所有行(白色方格所在的行),这些行被置上条件结果7。最终这个表达式输出一个mask和所有满足约束条件的条件结果。

(6)在目标模型为第五目标模型时,该步骤具体可以包括:

根据第一位图数据、表达式和目标数据,确定第一表达式对应的第四位图数据和第二表达式对应的第五位图数据;其中,第一表达式或者第二表达式与目标数据中的任意一列数据相关;

基于目标模型,对第四位图数据和第五位图数据进行逻辑运算,得到第六位图数据;

将第六位图数据确定为与约束条件对应的执行结果。

其中,逻辑运算包括下述中的至少一种:与门、或门、非门。

这里,需要提示的是,该第五目标模型中的输入可以包括第一表达式对应的第四位图数据和第二表达式对应的第五位图数据,其中,确定第四位图数据和第五位图数据的方式可以基于上述(2)中输出的一个针对输入a的结果mask即可理解为第一表达式a对应的第四位图数据mask;同理,若通过上述(2)输入的是b,则输出的一个针对输入b结果mask即可理解为第二表达式a对应的第五位图数据mask。

基于此,在逻辑运算为与门时,如图8所示,展示了包含AND的表达式的树形结构及其实现模型。第五目标模型中的表达式接收两个子表达式的结果mask作为输入(表达式a的mask输出和表达式b的mask输出),对两个输入的mask作与操作,得到结果mask并最后输出。

在逻辑运算为或门时,如图9所示,展示了包含OR的表达式的树形结构及其实现模型。第五目标模型中的表达式接收两个子表达式的结果mask作为输入(表达式a的mask输出和表达式b的mask输出),对两个输入的mask做或操作,得到结果mask最后输出。

由此,基于第二目标模型和第五目标模型,通过在处理的过程中使用传入的过滤第一位图数据(mask)并将结果mask输入到下一个节点,可以加快大量减少表达式运算的数量。

综上,本发明实施例中,通过获取与数据查询请求中表达式对应的目标模型,其中,表达式包含约束条件;将表达式和列式数据库中的目标数据输入到目标模型中,得到与约束条件对应的执行结果。这里,本发明实施例充分利用了列式数据库可以快速获取某一列数据的特性,在表达式运算中减少了写入或者输出的次数,使得获取数据的时间大大减少,减少计算量,提高数据处理效率,以提高SQL语句的数据查询速度。

另外,通过在处理的过程中使用传入的过滤mask即优先过滤掉一些未满足约束条件的数据,可以加快大量减少表达式运算的数量。同时,通过按批计算的方式,可以充分利用SIMD指令集进行表达式运算,加快了运算速度。

基于上述数据处理的方法,本发明实施例提供了一种数据处理装置。图10示出根据一个实施例的数据处理装置的结构框图。

如图10所示,该装置1000具体可以包括:

获取模块1001,用于获取与数据查询请求中表达式对应的目标模型,表达式包含约束条件;

处理模块1002,用于将表达式和列式数据库中的目标数据输入到目标模型中,得到与约束条件对应的执行结果;其中,目标数据包括至少一列的全部数据以及至少一列中的部分数据;

输出模块1003,用于输出执行结果。

在一种可能的实施例中,处理模块1002具体可以用于,将第一位图数据、表达式和目标数据输入到目标模型中;

利用第一位图数据过滤目标数据,得到满足约束条件的数据;

基于目标模型和第一位图数据,对满足约束条件的数据进行处理,得到与约束条件对应的执行结果。

进一步地,本发明实施例提供了6种可能的目标模型进行详细说明。

(1)在目标数据包括第一列数据和第二列数据,第一列数据和第二列数据具有相同行数时,处理模块1002具体可以用于,基于目标模型,将具有相同行的第一列数据和第二列数据进行相加,得到第三列数据;其中,第三列数据与第一列数据具有相同行数;将第一位图数据和第三列数据确定为与约束条件对应的执行结果。

(2)在目标数据包括第四列数据和常量数据,第四列数据和常量数据具有相同行数时,处理模块1002具体可以用于,在约束条件为选取第四列数据中大于常量数据的数据时,基于目标模型,将具有相同行数的第四列数据和常量数据进行比较,得到与约束条件对应的执行结果;

其中,执行结果包括第二位图数据,第二位图数据包括在第一位图数据上标记具有相同行数的第四列数据大于常量数据的数据所在行对应的可见行,第二位图数据与第四列数据具有相同的行数。

(3)在目标模型包括第一模型和第二模型;目标数据包括第一目标数据和第二目标数据,第一目标数据包括第五列数据和第六列数据,第五列数据和第六列数据具有相同行数时,处理模块1002具体可以用于,基于第一模型,将具有相同行的第五列数据和第六列数据进行相加,得到第七列数据;其中,第七列数据与第五列数据具有相同行数;

将第一位图数据、第七列数据和第二目标数据输入到第二模型中;其中,第二目标数据包括第八列数据,第八列数据和七列数据具有相同行数;

在约束条件为选取第七列数据中大于第八列数据的数据时,基于第二模型,将具有相同行数的第七列数据和第八列数据进行比较,得到与约束条件对应的执行结果;

其中,执行结果包括第三位图数据,第三位图数据包括在第一位图数据上标记具有相同行数的第七列数据大于第八列数据的数据所在行对应的可见行,第三位图数据与第七列数据具有相同的行数。

(4)在目标数据包括第九列数据,第一位图数据包括隐藏行和可见行,第一位图数据和第九列数据具有相同行数时,处理模块1002具体可以用于,基于目标模型,利用隐藏行过滤第九列数据中的隐藏行,得到第九列数据中与可见行具有相同行的数据;在表达式为数据求和时,将可见行具有相同行的数据进行累加,得到累加数据;将累加数据和第一位图数据确定为与约束条件对应的执行结果。

(5)在目标数据包括第十列数据,第一位图数据包括隐藏行和可见行,第一位图数据和第十列数据具有相同行数时,处理模块1002具体可以用于,基于目标模型,利用隐藏行过滤第十列数据中的隐藏行,得到第十列数据中与可见行具有相同行的数据;根据目标模型中的第一预设条件,对第十列数据中与可见行具有相同行的数据进行标记,得到被标记后的第十一列数据;将第一位图数据和第十一列数据确定为约束条件对应的执行结果。

进一步地,在目标模型中包括第一预设条件和第二预设条件时;可见行包括第一可见行和第二可见行时,处理模块1002具体可以用于,根据第一预设条件,对第十列数据中与第一可见行具有相同行的数据进行标记,且将第一可见行调整为隐藏行;

根据第二预设条件,对第十列数据中与第二可见行具有相同行的数据进行标记,直至满足第三预设条件,结束标记,得到被标记后的第十一列数据。

(6)处理模块1002具体可以用于,根据第一位图数据、表达式和目标数据,确定第一表达式对应的第四位图数据和第二表达式对应的第五位图数据;其中,第一表达式或者第二表达式与目标数据中的任意一列数据相关;基于目标模型,对第四位图数据和第五位图数据进行逻辑运算,得到第六位图数据;将第六位图数据确定为与约束条件对应的执行结果。

其中,本发明实施例中的逻辑运算包括下述中的至少一种:与门、或门、非门。

另外,在另一种可能的实施例中,处理模块1002具体可以用于,将表达式和目标数据输入到目标模型中;

基于目标模型,利用单指令多数据流指令集,对表达式以及目标数据进行并行化处理,得到与约束条件对应的执行结果。

需要提示的是,本发明实施例中涉及的列式数据库中的数据为按列存储,每一列单独存放至少一种属性的数据。

综上,本发明实施例中,通过获取与数据查询请求中表达式对应的目标模型,其中,表达式包含约束条件;将表达式和列式数据库中的目标数据输入到目标模型中,得到与约束条件对应的执行结果。这里,本发明实施例充分利用了列式数据库可以快速获取某一列数据的特性,在表达式运算中减少了写入或者输出的次数,使得获取数据的时间大大减少,减少计算量,提高数据处理效率,以提高SQL语句的数据查询速度。

另外,通过在处理的过程中使用传入的过滤mask即优先过滤掉一些未满足约束条件的数据,可以加快大量减少表达式运算的数量。同时,通过按批计算的方式,可以充分利用SIMD指令集进行表达式运算,加快了运算速度。

图11示出根据一个实施例的计算设备的结构示意图。

如图11所示,能够实现根据本发明实施例数据处理方法以及数据处理装置的计算设备的示例性硬件架构的结构图。

该设备可以包括处理器1101以及存储有计算机程序指令的存储器1102。

具体地,上述处理器1101可以包括中央处理器(CPU),或者特定集成电路(application specific integrated circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。

存储器1102可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器1102可包括硬盘驱动器(hard disk drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,USB)驱动器或者两个及其以上这些的组合。在合适的情况下,存储器1102可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器1102可在综合网关设备的内部或外部。在特定实施例中,存储器1102是非易失性固态存储器。在特定实施例中,存储器1102包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存,或者两个或及其以上这些的组合。

处理器1101通过读取并执行存储器1102中存储的计算机程序指令,以实现上述实施例中的任意一种数据处理方法。

收发器1103,主要用于实现本发明实施例中各装置或者与其他设备中的通信。

在一个示例中,该设备还可包括总线1104。其中,如图11所示,处理器1101、存储器1102和收发器1103通过总线1104连接并完成相互间的通信。

总线1104包括硬件、软件或两者。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围控件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线1103可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。

另外,本发明实施例还提供了与上述数据处理方法对应的计算机可读存储介质。在一种可能的实施例中,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,当计算机程序在计算机中执行时,令计算机执行本发明实施例中涉及的数据处理方法。

需要明确的是,本发明并不局限于上文实施例中所描述并在图中示出的特定配置和处理。为了描述的方便和简洁,这里省略了对已知方法的详细描述,并且上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域的技术人员可以清楚地了解到,本发明的方法过程并不限于所描述和示出的具体步骤,任何熟悉本技术领域的技术人员在领会本发明的精神后,在本发明揭露的技术范围内作出各种改变、修改和添加,或者等效替换以及改变步骤之间的顺序,这些修改或替换都应涵盖在本发明的保护范围之内。

相关技术
  • 移动设备的数据处理方法、装置、存储介质和移动设备
  • 行驶设备的数据处理方法、装置、设备及存储介质
技术分类

06120112901201