一种数据查询方法、装置、设备及存储介质与流程

文档序号:30955518发布日期:2022-07-30 09:43阅读:68来源:国知局
一种数据查询方法、装置、设备及存储介质与流程

1.本技术实施例涉及数据处理技术领域,尤其涉及一种数据查询方法、装置、设备及存 储介质。


背景技术:

2.在大数据时代,随着数据收集方法的拓展,数据收集的成本越来越低,相应的,数据 源中存储的数据量也越来越大。在针对海量数据进行查询分析时,数据查询效率以及查询 开销成为数据处理领域中的核心问题。
3.目前,数据处理系统在基于用户输入的查询语句进行数据查询时,通常是通过生成过 滤条件(dynamic filter,df)来减少从数据源中读取的数据量,以此提高数据查询效率并降 低数据查询开销。但是,实际应用时数据处理系统生成的过滤条件,可能无法达到较好的 数据过滤效果,即过滤前后的数据量相差不大,此时,数据查询效率以及数据查询开销并 没有得到明显优化,反而可能会因为过滤条件所参与的生成、计算以及传输等过程会降低 数据处理系统的数据查询效率、增加查询开销。


技术实现要素:

4.本技术实施例提供一种数据查询方法、装置、设备、存储介质以及计算机程序产品, 以使得数据处理系统的数据查询效率保持在较高水平,查询开销保持在较低水平。
5.第一方面,本技术实施例提供一种数据查询方法,该方法可以应用于数据处理系统, 并且该数据处理系统中包括协调节点以及工作节点。其中,协调节点可以向工作节点发送 针对第一文件以及第二文件进行查询操作的任务,所发送的任务中包括针对第一文件以及 第二文件的查询条件,并且,该第一文件的数据量大于第二文件的数据量。示例性的,协 调节点发送的任务,例如可以是协调节点生成的逻辑计划树等。工作节点根据接收到的任 务中的查询条件以及第一文件和第二文件分别对应的数据信息,预估第一文件中符合该查 询条件的数据在第一文件中的占比,并当该占比大于预设阈值时,读取第一文件以及第二 文件至工作节点,并对读取的第一文件以及第二文件执行查询操作。
6.由于符合查询条件的数据在第一文件中的占比较大时,说明待生成的过滤条件的过滤 效果较差,此时,数据处理系统通过直接读取第一文件以及第二文件并查询出符合查询条 件的数据,而可以不生成过滤条件对第一文件中的数据进行过滤,如此,可以避免生成过 滤条件所带来的数据查询效率变低、查询开销不减反增的问题,从而可以实现数据处理系 统的数据查询开销也能保持在较低水平。
7.在一种可能的实施方式中,当预估得到的第一文件中符合查询条件的数据在第一文件 中的占比,小于等于预设阈值时,工作节点可以读取第二文件,并查询该第二文件中满足 查询条件的第一数据;然后,工作节点可以根据第一数据生成过滤条件,并将该过滤条件 发送至第一文件所在数据源,该过滤条件可以用于指示数据源从第一文件中查询与该第一 数据匹配的第二数据,从而工作节点可以接收数据源发送的第二数据,并对该第一
数据以 及第二数据执行查询操作。
8.在该实施方式中,当查询条件的数据在第一文件中的占比较小时,说明待生成的过滤 条件的过滤效果较优,此时,数据处理系统可以通过生成过滤条件的方式来减少工作节点 从数据源中读取的第一文件的数据量,从而可以使得数据处理系统的数据查询效率能够达 到较高水平,并且工作节点在查询符合查询条件的数据时,无需将第一文件中不符合该查 询条件的大量数据从数据源读取出来,从而可以有效减少数据处理系统的数据查询开销。
9.在一种可能的实施方式中,第一文件与第二文件分别对应的数据信息,具体可以是第 一文件中的采样数据以及第二文件中的采样数据,则工作节点在预估第一文件中符合查询 条件的数据在第一文件中的占比时,具体可以是分别对第一文件中的数据以及第二文件中 的数据进行采样,得到该第一文件中的采样数据以及第二文件中的采样数据,然后,工作 节点可以确定该第二文件的采样数据中符合查询条件的目标采样数据的标识,并计算该第 一文件的采样数据中具有该标识的采样数据在第一文件的采样数据中的占比。如此,通过 对第一文件以及第二文件中少量数据的采样,可以预估出待生成的过滤条件是否具有较好 的数据过滤效果,这使得数据处理系统能够以较小的开销对过滤条件的过滤效果进行评估, 提高方案实施的可行性。
10.在一种可能的实施方式中,第一文件与第二文件分别对应的数据信息,具体可以是第 一文件与第二文件分别对应的数据统计信息,则工作节点在预估第一文件中符合查询条件 的数据在第一文件中的占比时,具体可以是根据第二文件对应的数据统计信息,确定第二 文件中符合该查询条件的数据的标识,并进一步根据该第一文件对应的数据统计信息,计 算出第一文件中具有该标识的数据在第一文件中的占比。如此,可以利用每个文件对应的 数据统计信息得到能够用于评估过滤条件的过滤效果高低的占比,以便基于该占比进一步 判定是否生成过滤条件。
11.其中,各个文件的数据统计信息,可以是由工作节点与协调节点预先协同生成,比如, 工作节点可以预先将第一文件以及第二文件从数据源读取至工作节点,并交由协调节点对 读取的第一文件以及第二文件进行数据统计,得到并保存第一文件与第二文件分别对应的 数据统计信息,从而后续在进行数据查询时,工作节点每次可以根据本地保存的数据统计 信息确定是否为此次查询过程生成过滤条件。或者,在其他示例中,第一文件以及第二文 件在数据源中存储的过程中,数据源可以为各个文件生成相应的数据统计信息,并将其保 持至数据源本地。当工作节点在判定是否生成过滤条件时,可以从数据源中获取该第一文 件以及第二文件对应的数据统计信息,以便于预估出用于预估过滤条件高低的数据占比。
12.在一种可能的实施方式中,第一文件对应的数据统计信息,具体可以是第一文件的数 据范围、数据分布区间、重复数据中的任意一种或多种,当然,也可以是其它可能的实施 方式。如此,可以工作节点可以根据上述数据范围、数据分布区间以及重复数据等信息确 定是否生成过滤条件。
13.在一种可能的实施方式中,当工作节点确定生成过滤条件并利用该过滤条件从第一文 件中查询数据的过程中,工作节点可以计算符合查询条件的数据中的已查询到数据在该第 一文件的已遍历数据中的占比,并且,当该占比大于过滤阈值时,表明该过滤条件
在实际 的数据查询过程中并不具有较优的数据过滤效果,此时,工作节点可以停止使用该过滤条 件查询剩余数据,而可以根据查询条件,从第一文件的未遍历数据中查询符合查询条件的 数据中的剩余数据。如此,可以在过滤条件不具有预期的数据过滤效果时,及时停止该过 滤条件查询剩余数据,从而尽可能避免该过滤条件的应用所带来的额外的开销。
14.第二方面,基于与第一方面的方法实施例同样的发明构思,本技术实施例提供了一种 数据查询装置。该装置具有实现上述第一方面的各实施方式对应的功能。该功能可以通过 硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功 能相对应的模块。
15.第三方面,本技术实施例提供一种设备,包括:处理器和存储器;该存储器用于存储 指令,当该计算装置运行时,该处理器执行该存储器存储的该指令,以使该设备执行上述 第一方面或第一方面的任一实现方式中的数据查询方法。需要说明的是,该存储器可以集 成于处理器中,也可以是独立于处理器之外。装置还可以包括总线。其中,处理器通过总 线连接存储器。其中,存储器可以包括可读存储器以及随机存取存储器。
16.第四方面,本技术实施例还提供一种可读存储介质,所述可读存储介质中存储有程序 或指令,当其在计算机上运行时,使得上述第一方面或第一方面的任一实现方式中的数据 查询方法被执行。
17.第五方面,本技术实施例还提供一种包含指令的计算机程序产品,当其在计算机上运 行时,使得计算机执行上述第一方面或第一方面的任一实现方式中的任意数据查询方法。
18.另外,第二方面至六方面中任一种实现方式所带来的技术效果可参见第一方面中不同 实现方式所带来的技术效果,或者可参见第二方面中不同实现方式所带来的技术效果,此 处不再赘述。
附图说明
19.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的 附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例, 对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
20.图1为本技术实施例提供的一示例性数据处理系统的结构示意图;
21.图2为数据源103中包括的people表以及orders表的示意图;
22.图3为本技术实施例提供的又一示例性数据处理系统的结构示意图;
23.图4为本技术实施例提供的一种数据查询方法的流程示意图;
24.图5为本技术实施例提供的查询语句输入界面示意图;
25.图6为本技术实施例提供的一种数据查询装置的结构示意图;
26.图7为本技术实施例提供的一种设备的硬件结构示意图。
具体实施方式
27.参见图1,为一示例性数据处理系统的结构示意图。如图1所示,数据处理系统100可 以包括协调节点(coordinator node)101、工作节点(worker node)102。其中,工作节点 102可以访问数据源103中的数据,数据源103可以包括一种或者多种数据源,如图1所示 的
模块可以指示其所在的执行器生成过滤条件。而若预估过滤条件的数据过滤效果较差,则 该判定模块可以指示其所在的执行器不生成过滤条件。
35.如此,针对于执行器1以及执行器2,若这两个执行器均生成了过滤条件,则其可以分 别向协调节点101发送各自生成的(部分)过滤条件,以便由协调节点101进行条件合并 以及下发。而若只有执行器1生成了过滤条件,则该执行器1可以直接利用生成的过滤条 件从表a_1中读取数据,而另一执行器2可以直接读取整个表a_2中的数据,并再从表a_2 中查找出满足该查询条件的数据。而若两个执行器均未生成过滤条件,则其可以分别读取 各自对应的表a,并分别从读取的表a中查找出满足查询条件的数据。
36.值得注意的是,图1以及图3所示的系统架构仅作为一种示例,并不用于限定其具体 实现局限于该示例。例如,在其它可能的系统架构中,数据处理系统可以不包括该客户端 104;或者,工作节点所包括的执行器的数量不局限于2个;又或者,数据处理系统处理包 括协调节点、工作节点之外,还可以集成有数据源等。实际应用时,数据处理系统可以在 图1以及图3所示的架构中适应性增加或者删减相应的组成部分,本实施例对此并不进行 限定。
37.为使本技术的上述目的、特征和优点能够更加明显易懂,下面将结合附图对本技术实 施例中的各种非限定性实施方式进行示例性说明。显然,所描述的实施例是本技术一部分 实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出 创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
38.如图4所示,为本技术实施例中一种数据查询方法的流程示意图,该方法可以应用于 如图1或图3所示的数据处理系统100中,并可以由数据处理系统100或者该数据处理系 统100中相应的节点执行,本实施例中,以数据处理系统100中的协调节点101以及工作 节点102执行该方法为例进行示例性说明,该方法具体可以包括:
39.s401:协调节点101接收数据查询语句,该数据查询语句包括针对待查询数据对应的 查询条件以及针对第一文件和第二文件的查询操作,其中,第一文件的数据量大于第二文 件的数据量。
40.实际应用时,用户可以向数据处理系统100提供数据查询语句,以便于数据处理系统 100能够基于该数据查询语句定位出所需查询的数据。为便于描述,本实施例中将用户所需 的数据称之为待查询数据。
41.作为一种接收数据查询语句的实施示例,数据处理系统100包括客户端104,并且,该 客户端104可以向用户呈现如图5所示的查询语句输入界面。用户可以在该客户端104呈 现的查询语句输入界面上的特定区域内输入相应的查询语句,以便数据处理系统100反馈 用户所期望的查询结果。然后,客户端104可以将该数据查询语句发送给协调节点101,例 如可以是通过数据查询请求的方式将其发送给协调节点101,以便协调节点101查询到用户 所需的待查询数据。其中,该数据查询语句中包括查询条件以及针对两个文件(如两张表 等)的查询操作,如连接(join)操作等,并且该查询条件用于定位待查询数据。举例来说, 用户输入的数据查询语句例如可以是sql语句:select people.name from people join orders on people.id=orders.id where orders.sum》10,用于查询图2所示的people表中相应id值所在 行数据,其中,该sql语句中的“people.id=orders.id”以及“orders.sum》10”即为查询条 件,用于定位待查询数据,也即前述people表中id值为120001、
120002、

、149999的行 数据。
42.s402:协调节点101对该数据查询语句进行语法分析以及语义分析,确定用户输入的 数据查询语句是否合法。
43.实际应用时,若用户输入的数据查询语句不合法,则数据处理系统100可以终止此次 数据查询任务,并可以提示用户输入正确语法/语义的数据查询语句。而若确定用户输入的 数据查询语句合法时,协调节点101可以继续执行后续的数据查询步骤。
44.s403:协调节点101在确定数据查询语句合法后,发送针对第一文件以及第二文件进 行查询操作的任务至工作节点,该任务包括针对第一文件以及第二文件的查询条件。
45.作为一种示例,协调节点101向工作节点发送的任务,例如可以是逻辑计划树,该逻 辑计划树中包括待查询数据的查询条件以及参与查询操作的两个文件的标识(如文件名称 等)。具体实现时,协调节点可以根据该数据查询语句生成逻辑计划树,并将该逻辑计划树 发送给工作节点102,以便调度该工作节点102执行该逻辑计划树中的任务。
46.s404:工作节点102根据接收到的任务中的查询条件以及第一文件、第二文件分别对 应的数据信息,预估第一文件中符合查询条件的数据在第一文件中的占比。
47.其中,数据源103中可以包括第一文件以及第二文件,并且工作节点102可以通过访 问该第一文件以及第二文件中的数据获取满足查询条件的数据。实际应用中,该第一文件 以及第二文件可以是数据源103中的不同数据形成,并且,第一文件与第二文件具体可以 是以表的形式记录数据,如图2所示的people表以及orders表等。
48.在一些实施方式中,第一文件与第二文件中的数据可以存在关联,例如,第一文件与 第二文件可以包含相同的列,并且,第一文件中该列所包括的值与第二文件中该列所包括 的值至少存在部分相同,如图2所示的people表以及orders表中对于id列存在部分相同的 id值,如120001、120002、

、149999等。
49.本实施例中,第一文件与第二文件所包括的数据量可以存在差异,例如,第一文件的 数据量可以大于第二文件的数据量等。实际应用时,该第一文件具体可以是事实表,而第 二文件具体可以是维度表等。其中,事实表中所记录的数据通常较为丰富,可以包括多个 维度的信息,例如,对于用于工作记录的事实表,其可以包含工作日期、工作员工、工作 时长、加班时长、工作性质,工作内容,工作负责人等多方面的信息,其可以包含时间维 度(工作日期、工作时长、加班时长)、人员维度(工作人员、工作负责人)、以及作业属 性(工作性质、工作内容)这三个维度的信息。相应的,由于事实表中记录的数据较多, 因此,事实表的数据量通常较大。维度表,可以用于记录部分维度数据,如时间维度表可 以仅用于记录时间维度的数据,如包括上述工作日期、工作时长、加班时长等数据,而对 于工作人员、工作性质、工作内容、工作负责人等数据可能未记录在该时间维度表中,但 是可以被记录在其它维度表中。维度表可以视为分析数据的窗口,其包含事实表中在部分 维度上的数据特性。通常情况下,维度表的数据量小于事实表的数据量。
50.本实施例中,第一文件的数据量可能较大,而符合查询条件的数据(也即待查询数据) 可能为该第一文件中的小部分数据,因此,若工作节点102直接从数据源103中读取该第 一文件并从中查询到该待查询数据,则工作节点102需要读取第一文件中除待查询数据之 外的大量无用数据,因此,本实施例中工作节点102可以利用根据第二文件生成的过滤条 件来减少从第一文件中读取的数据量。由于生成的过滤条件并不一定具有较好的数据
过滤 效果,因此,工作节点102可以从逻辑执行计划树中解析出查询条件以及参与join操作的 两个文件,并获取第一文件、第二文件分别对应的数据信息,从而工作节点102可以根据 该查询条件以及两个文件分别对应的数据信息,预估待查询数据在第一文件中的占比,以 便利用该占比来衡量过滤条件是否能够具有较优的数据过滤效果。
51.具体的,当该占比较大时,表征第一文件中的大部分数据均为待查询数据,此时,即 使利用过滤条件对第一文件中的数据进行过滤,工作节点102读取第一文件中的待查询数 据与读取整个第一文件的数据量差距不大,这说明,过滤条件所具有的数据过滤效果较差; 反之,当占比较小时,表征第一文件中的小部分数据为待查询数据,此时,利用过滤条件 能够有效将第一文件中的大部分数据进行过滤,工作节点102仅需读取第一文件中的小部 分数据即可获得所需的待查询数据,这说明,过滤条件所具有的数据过滤效果较好。
52.作为一种预估占比的实现示例,第一文件与第二文件分别对应的数据信息,具体可以 是第一文件以及第二文件分别对应的数据统计信息。示例性的,第一文件(或第二文件) 对应的数据统计信息,例如可以是第一文件(或第二文件)的数据范围、数据分布区间、 重复数据中的任意一种或多种。其中,数据范围,是指第一文件(或第二文件)中数据的 取值范围,具体可以是第一文件中各个列的取值范围,即各个列数据的最小值至最大值; 数据分布区间,用于第一文件(或第二文件)中数据的分布情况,例如可以是通过柱状图 体现数据分布等;重复数据,可以用于指示第一文件(或第二文件)中存在相同数据的情 况,例如可以是通过表征各个数据的重复率或者重复条数予以表示等。
53.工作节点102可以根据第二文件对应的数据统计信息,确定第二文件中满足该查询条 件的数据的标识,从而可以根据第一文件对应的数据统计信息,计算出第一文件中具有该 标识的数据在第一文件中的占比。举例来说,假设数据统计信息具体为数据范围,则工作 节点102可以根据第二文件的数据范围,从第二文件中查找出满足查询条件的数据范围, 并进一步确定出查找到的数据范围内数据所对应的标识;然后,工作节点102再根据确定 出的数据标识,查找出第一文件中具有该数据标识的数据,并计算出具有该数据标识的数 据在第一文件中数据的占比,例如第一文件中的数据范围为1至100000,而第一文件中具 有上述数据标识的数据为1至1000,则占比可以为1/10(即1000/10000)。当然,数据处理 系统100也可以是根据上述数据分布区间、重复数据或者结合上述三种信息中的任意多种 计算出占比,本实施例对此并不进行限定。
54.其中,第一文件(或第二文件)对应的数据统计信息,可以由工作节点102与协调节 点101预先采集并保存在本地。例如,数据处理系统100在与数据源103连接后,工作节 点102可以逐个访问数据源103中的每个文件,并将读取的文件发送给协调节点101,从而 协调节点101可以为每个文件生成相应的数据统计信息并保存。如此,后续在查询数据时, 工作节点102可以根据所要访问的文件从本地(或者从协调节点101)获取该文件对应的数 据统计信息,以便基于该数据统计信息确定是否在数据查询过程中生成过滤条件。当然, 实际应用时,工作节点102也可以是采用其它方式获取第一文件以及第二文件对应的数据 统计信息,比如,该第一文件以及第二文件在存储于数据源103中时,数据源103中的相 关设备预先为该第一文件以及第二文件生成相应的数据统计信息,从而工作节点102可以 从数据源103中获取到该第一文件以及第二文件对应的数据统计信息。本实施例中,对于 工作节点获取数据统计信息的具体实现方式并不进行限定。
55.而在另一种预估占比的实现示例中,工作节点102也可以是通过数据采样的方式确定 占比,此时,第一文件与第二文件分别对应的数据信息,具体可以是第一文件以及第二文 件中的采样数据。具体实现时,工作节点102可以分别对第一文件中的数据以及第二文件 中的数据进行采样,例如可以是随机采样、等间隔采样或者等比例采样等,并从数据源103 中分别读取第一文件中的采样数据以及第二文件中的采样数据,然后,工作节点102可以 确定第二文件的采样数据中满足该查询条件的目标采样数据的标识,并统计第一文件的采 样数据中具有该标识的采样数据,从而可以计算出第一文件中具有该标识的采样数据在第 一文件的采样数据中的占比。如此,可以通过第一文件以及第二文件的采样数据,预测出 待查询数据在第一文件中的占比。
56.需要说明的是,上述两种预估占比的实现方式仅作为一种示例,实际应用时,也可以 是采样其它可能的方式预估占比,本实施例对此并不进行限定。
57.s405:当占比大于预设阈值时,工作节点102读取第一文件以及第二文件至工作节点 102,并对该第一文件以及第二文件执行查询操作。
58.s406:当占比小于预设阈值时,工作节点102根据查询条件以及第二文件生成过滤条 件,并根据该过滤条件从第一文件中查询符合查询条件的数据,并执行相应的查询操作。
59.本实施例中,由于步骤s404中计算出的占比可以反映过滤条件所具有的数据过滤效果, 因此,当占比大于预设阈值时,表征所要生成的过滤条件难以过滤出第一文件中较多数据, 若工作节点102生成过滤条件,则可能会降低数据处理系统100的查询效率,此时,工作 节点102可以不根据第二文件生成过滤条件,而可以从数据源103中读取第一文件以及第 二文件,并根据查询条件从读取的第一文件以及第二文件中查询出满足该查询条件的数据 并进行相应运算,如将查询到的数据进行join运算等。如此,可以避免工作节点102因为 生成过滤条件,以及应用该过滤条件(甚至还包括过滤条件的传输、合并等)所具有的总 体开销,超过工作节点102直接读取第一文件所具有的总体开销。
60.而当占比小于预设阈值时,表征所要生成的过滤条件能够有效过滤出第一文件中的较 多数据,相应的,工作节点102因为生成过滤条件,以及应用该过滤条件(甚至还包括过 滤条件的传输、合并等)所具有的总体开销,小于工作节点102直接读取第一文件所具有 的总体开销。此时,工作节点102可以读取第二文件,并从中查询出满足该查询条件的第 一数据,然后,工作节点102可以根据该第一数据生成过滤条件,并将该过滤条件发送给 数据源103,以指示数据源103从第一文件中查询与该第一数据相匹配的第二数据并将其反 馈给工作节点102,其中,第一数据与第二数据之间可以具有相同的标识,如第一文件中的 第一数据与第二文件中的第二数据具有相同的列值(如前述举例中people表与orders表中 的id值)等。这样,工作节点102可以对接收到的第二数据以及从第二文件中查询到的第 一数据执行上述查询操作,如执行对第一数据与第二数据的join操作等,以得到用户所需 查询的数据。由于工作节点102从数据源103中读取的数据量(相对于直接读取第一文件 的数据量)较小,从而可以使得工作节点102的数据查询效率保持在较高水平。其中,工 作节点102根据第二文件以及查询条件生成动态查询条件的具体实现过程,可以参见前述 相关之处描述,在此不做赘述。
61.其中,预设阈值可以是工作节点102根据第一文件的数据量进行计算确定,即工作
节 点102针对于不同文件中的数据进行查询时,可以生成不同的预设阈值;或者,该预设阈 值也可以是固定值,例如可以是经验值等,并且由相关技术人员进行预先设定。本实施例 中,对于如何设定预设阈值的具体实现方式并不进行限定。
62.值得注意的是,本实施例中,是以数据源103包括第一文件以及第二文件为例进行示 例性说明,实际应用中,数据源103还可以包括更多的文件,如还包括第三文件等,并且 当数据源103中的多个文件均需要参与join操作时,可以先对第一文件与第二文件进行join 操作后,再对第一文件与第三文件进行join操作,以此类推,本实施例对此并不进行赘述。
63.值得注意,在一些可能的实施方式中,在确定数据源103中的各个文件所具有的最大 数据量后,上述占比也可以是利用过滤条件所包括的数据量进行表征。比如,在部分场景 中,当过滤条件所包括的数据量较大时,可以表征占比较大,反之,当过滤条件包括的数 据量较小时,表征占比较小。则,在根据占比的大小确定是否生成过滤条件时,也可以是 根据过滤条件中所包括的数据量大小确定是否生成过滤条件,其具体实现原理与上述过程 类似,本实施例对此不再进行赘述。
64.在进一步可能的实施方式中,工作节点102在查询数据的过程中,可以根据已查询到 的部分数据确定是否继续使用过滤条件查询剩余数据,比如,当通过上述对第一文件以及 第二文件进行数据采样的方式预测过滤条件的过滤效果较好时,可能存在该过滤条件在实 际使用时过滤效果较差的问题,如此,工作节点102可以及时停止利用过滤条件继续对第 一文件中的数据进行过滤。
65.作为一种示例,工作节点102在利用过滤条件从第一文件中查询到待查询数据中的部 分数据后,可以计算出该待查询数据中的已查询到数据在第一文件的已遍历数据中的占比, 其中,该第一文件的已遍历数据,包括已查询数据以及当前利用过滤条件在第一文件中所 过滤出的数据。当该占比较大时,具体可以是该占比大于过滤阈值时,表征过滤条件在实 际使用过程中对于第一文件中数据的过滤效果较差,此时,由于使用过滤条件过滤第一文 件中的数据需要额外的计算开销,因此,工作节点102在后续查询待查询数据中的剩余数 据(即除已查询到数据以外的数据)时,可以直接读取第一文件中未遍历的数据至工作节 点102,并根据查询条件从该未遍历数据中继续查询待查询数据中的剩余数据,而不用再利 用过滤条件过滤第一文件中的数据。当然,当该占比较小时,具体可以是该占比小于过滤 阈值时,表征过滤条件在实际使用过程中对于第一文件中数据的过滤效果较好,因此,工 作节点102可以继续利用该过滤条件从第一文件的未遍历数据中继续查询待查询数据中的 剩余数据。
66.在其它实施方式中,也可以是通过数据采样的方式确定已查询到数据在第一文件的已 遍历数据中的占比等。比如,当待查询数据中的已查询到数据的数据量较大时,可以分别 对第一文件的已遍历数据以及已查询到数据进行采样,并将已查询到数据中的采样数据在 已遍历数据的采样数据中的数据占比作为该占比等。本实施例中对于占比的具体实现并不 进行限定。
67.实际应用中,可以在执行器中配置单独的功能模块,如上述图3中的判定模块等,该 功能模块可以在查询数据的过程中通过实时监控或者数据采样等方式确定占比,并根据该 占比确定在后续的查询过程中是否继续使用过滤条件过滤第一文件中的数据。该功
能模块, 可以是通过软件或者硬件实现,本实施例对此并不进行限定。
68.其中,过滤阈值的设定方式可以与前述预设阈值的设定方式类似,对于如何设定过滤 阈值的具体实现可以参见前述设定预设阈值的相关之处描述,在此不做赘述。并且,过滤 阈值的取值可以与预设阈值相同,也可以是与预设阈值不同,本实施例对此并不进行限定。
69.上文中结合图1至图5,详细描述了本技术所提供的数据查询方法,下面将结合图6至 图7,描述根据本技术所提供的装置以及设备。
70.与上述方法同样的发明构思,本技术实施例还提供一种数据查询装置,该数据查询装 置可以实现上述图4所示的实施例中数据处理系统的功能,该数据处理系统包括协调节点 以及工作节点。参见图6所示,该数据查询装置600可以包括:
71.第一通信模块601,用于发送针对第一文件及第二文件进行查询操作的任务至所述工作 节点,所述任务包括针对所述第一文件及所述第二文件的查询条件,其中,所述第一文件 的数据量大于所述第二文件的数据量;
72.预估模块602,用于根据接收到的所述任务的所述查询条件以及所述第一文件、所述第 二文件分别对应的数据信息,预估所述第一文件中符合所述查询条件的数据在所述第一文 件中的占比;
73.读取模块603,用于当所述占比大于预设阈值时,读取所述第一文件及所述第二文件至 所述工作节点,并对所述第一文件及所述第二文件执行所述查询操作。
74.在一种可能的实施方式中,所述读取模块603,还用于当所述占比小于等于所述预设阈 值时,读取所述第二文件;
75.所述装置600还包括:
76.查询模块604,用于查询所述第二文件中满足所述查询条件的第一数据;
77.生成模块605,用于根据所述第一数据生成过滤条件;
78.第二通信模块606,用于将所述过滤条件发送至所述第一文件所在数据源,所述过滤条 件用于指示所述数据源从所述第一文件中查询与所述第一数据匹配的第二数据,并接收所 述数据源发送的第二数据,对所述第一数据及第二数据执行所述查询操作。
79.在一种可能的实施方式中,所述第一文件、所述第二文件分别对应的数据信息包括所 述第一文件、所述第二文件分别对应的数据统计信息;
80.所述预估模块602,具体用于:
81.根据所述第二文件对应的数据统计信息,确定所述第二文件中符合所述查询条件的数 据的标识;
82.根据所述第一文件对应的数据统计信息,计算所述第一文件中具有所述标识的数据在 所述第一文件中的占比。
83.在一种可能的实施方式中,所述第一文件、所述第二文件分别对应的数据信息包括所 述第一文件中的采样数据以及所述第二文件中的采样数据;
84.所述预估模块602,具体用于:
85.所述工作节点分别对所述第一文件中的数据以及所述第二文件中的数据进行采样,得 到所述第一文件中的采样数据以及所述第二文件中的采样数据;
86.所述工作节点确定所述第二文件的采样数据中符合所述查询条件的目标采样数
据的标 识;
87.所述工作节点计算所述第一文件的采样数据中具有所述标识的采样数据在所述第一文 件的采样数据中的占比。
88.在一种可能的实施方式中,所述第一文件对应的数据统计信息,包括所述第一文件的 数据范围、数据分布区间、重复数据中的任意一种或多种。
89.在一种可能的实施方式中,当所述占比小于所述预设阈值时,所述读取模块603,还用 于还包括:
90.在从所述第一文件中查询所述待查询数据的过程中,计算所述待查询数据中的已查询 到数据在所述第一文件的已遍历数据中的占比;
91.当所述占比大于过滤阈值时,根据所述查询条件,从所述第一文件的未遍历数据中查 询所述待查询数据中的剩余数据。
92.本实施例中的数据查询装置600,对应于图4所示的数据查询方法,因此,对于本实施 例数据查询装置600中各个功能模块的具体实现及其所具有的技术效果,可以参见图4所 示实施例中的相关之处描述,在此不做赘述。
93.此外,本技术实施例还提供一种设备,如图7所示,设备700中可以包括通信接口710、 处理器720。可选的,设备700中还可以包括存储器730。其中,存储器730可以设置于设 备700内部,还可以设置于设备700外部。示例性地,上述图4所示实施例中各个动作均 可以由处理器720实现。处理器720可以通过通信接口710获取数据源103中的第一文件 和第二文件,并用于实现图4中所执行的任一方法。在实现过程中,处理流程的各步骤可 以通过处理器720中的硬件的集成逻辑电路或者软件形式的指令完成图4中执行的方法。 为了简洁,在此不再赘述。处理器720用于实现上述方法所执行的程序代码可以存储在存 储器730中。存储器730和处理器720连接,如耦合连接等。
94.本技术实施例的一些特征可以由处理器720执行存储器730中的程序指令或者软件代 码来完成/支持。存储器730上在加载的软件组件可以从功能或者逻辑上进行概括,例如, 图6所示的预估模块602、读取模块603、查询模块604、生成模块605。而第一通信模块 601与第二通信模块606的功能可以由通信接口710实现。
95.本技术实施例中涉及到的任一通信接口可以是电路、总线、收发器或者其它任意可以 用于进行信息交互的装置。比如设备700中的通信接口710,示例性地,该其它装置可以是 与该设备700相连的设备等。
96.本技术实施例中涉及的处理器可以是通用处理器、数字信号处理器、专用集成电路、 现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件, 可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是 微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现 为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
97.本技术实施例中的耦合是装置、模块或模块之间的间接耦合或通信连接,可以是电性, 机械或其它的形式,用于装置、模块或模块之间的信息交互。
98.处理器可能和存储器协同操作。存储器可以是非易失性存储器,比如硬盘(hard diskdrive,hdd)或固态硬盘(solid-state drive,ssd)等,还可以是易失性存储器(volatile memory), 例如随机存取存储器(random-access memory,ram)。存储器是能够
用于携带或存储具有 指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
99.本技术实施例中不限定上述通信接口、处理器以及存储器之间的具体连接介质。比如 存储器、处理器以及通信接口之间可以通过总线连接。所述总线可以分为地址总线、数据 总线、控制总线等。
100.基于以上实施例,本技术实施例还提供了一种计算机存储介质,该存储介质中存储软 件程序,该软件程序在被一个或多个处理器读取并执行时可实现上述任意一个或多个实施 例提供数据处理系统100执行的方法。所述计算机存储介质可以包括:u盘、移动硬盘、 只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
101.基于以上实施例,本技术实施例还提供了一种芯片,该芯片包括处理器,用于实现上 述实施例所涉及的数据处理系统100的功能,例如用于实现图4中所执行的方法。可选地, 所述芯片还包括存储器,所述存储器,用于处理器所执行必要的程序指令和数据。该芯片, 可以由芯片构成,也可以包含芯片和其他分立器件。
102.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产 品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实 施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机 可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程 序产品的形式。
103.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和 /或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程 和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程 序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以 产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于 实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
104.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式 工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置 的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方 框中指定的功能。
105.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机 或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他 可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方 框或多个方框中指定的功能的步骤。
106.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的 对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可 以互换,这仅仅是描述本技术的实施例中对相同属性的对象在描述时所采用的区分方式。
107.显然,本领域的技术人员可以对本技术实施例进行各种改动和变型而不脱离本技术实 施例的范围。这样,倘若本技术实施例的这些修改和变型属于本技术权利要求及其等
同技 术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1