一种数据查询方法及装置制造方法

文档序号:6502040阅读:127来源:国知局
一种数据查询方法及装置制造方法
【专利摘要】本发明公开了一种数据查询方法,应用在分布式数据查询系统中,增加至少一个辅助节点,包括:辅助节点接收任一子节点根据触发指令发来的各子节点中存储的第一数据,针对接收到的任一子节点发来的第一数据,执行下述操作:按照管理节点发来的查询关键词对接收到的第一数据进行过滤,确定出该第一数据中包含第二分布键的第三数据;辅助节点将第三数据重新分发给对应的发送第一数据的子节点,各子节点对接收到的第三数据按照第二数据格式进行关联操作,将关联结果作为与查询关键词对应的查询结果反馈给管理节点。能够较好地解决数据查询过程中资源的耗用,提高系统运行效率,减少数据查询的响应时间。
【专利说明】一种数据查询方法及装置

【技术领域】
[0001] 本发明涉及数据信息管理【技术领域】,尤其是涉及一种数据查询方法及装置。

【背景技术】
[0002] 数据库服务器是按照数据结构来组织、存储和管理数据的仓库,在经济管理的日 常工作中,常常需要把某些相关的数据存储到数据库服务器中,并根据管理的需要进行相 应的处理。
[0003] 将数据存储在数据库中是常用的数据管理方法。现有技术中,通常将不同领域的 数据存储到不同的数据库服务器中,不同的数据库服务器组成分布式数据管理系统,如图1 所示,分布式数据管理系统中包含至少一个管理节点,至少一个数据存储子节点,任一一个 管理节点可以和任一一个子节点之间进行通信,任一两个子节点之间也可以进行通信。管 理节点中包含全局优化查询器,全局优化查询器将各个数据表按照某种规则(例如按照各 数据表特定属性域的哈希值或时间段等)进行分区或分片,将数据分布存储在多个不同的 子节点中,使每一个子节点中存储的数据量得到均衡分配,每个子节点可以根据全局优化 查询器的指令管理和操作自身的存储的数据。这样可以在执行复杂的数据查询时,缩短执 行数据查询时需要的时间,并且通过并行处理来提高数据查询性能。由于数据库中涵盖的 事实表种类比较多,因此在各个子节点中存储的数据中,各个表作为分布键的列定义也不 完全相同。不同的子节点支持不同的分布键的列定义,其中,分布键的列定义在创建数据库 时指定,在创建完成后通常不能更改。而且不同子节点间不能支持分布键的转码,因此若想 查找某一客户的所有相关数据,则需要在多个子节点中分别进行查询。例如在通信领域中, 可以将客户信息作为分布键存储到子节点1中,也可以将客户的订单号作为分布键存储到 子节点2中,将客户的归属地信息作为分布键存储到子节点3中。
[0004] 在分布式数据管理系统中,进行数据查询统计时,有关联的相关数据如果定义的 存储方式(与定义的分布键相关)相同,相关联数据就会在同节点内部进行关联,从而能够 较好提高数据查询效率。这样在进行简单的数据查询时,以本地方式在数据所在的子节点 中执行,在该子节点内完成关联操作后只需把关联操作后的结果发送至管理节点,可以较 好地提高数据库分区间连接效率,进而提高数据查询效率。但是在具体实施时,数据查询一 般是比较复杂的数据查询任务,该种情况下,数据一般分布在不同的子节点中存储,该种数 据查询方式下,则无法选择使用子节点内的关联连接方式,而是选择交叉关联的连接方式, 每个子节点存储的数据都会被重新分布传送到其他的子节点,然后重新进行关联,再将关 联结果传输给管理节点。
[0005] 以当前的分布式数据查询系统为例,对涉及不同的事实表关联的查询语句的处理 流程如图2所示,具体处理过程如下述:
[0006] 步骤11,用户登录客户端,连接数据库,发出数据查询命令。
[0007] 步骤12,全局优化查询器接收到数据查询命令,并对数据查询命令进行解析,生成 数据查询计划。
[0008] 步骤13,全局优化查询器将生成的数据查询计划分发到每个子节点。
[0009] 步骤14,每个子节点在接收到数据查询计划后,进行数据查询。
[0010] 针对任一子节点,该子节点对于接收到的数据查询计划,进行哈希运算,根据哈希 运算得到的结果,如果两个数据的关联字段在相同的子节点,则跳过本步骤14。如果两个数 据未存储在相同子节点,则每个子节点均根据对象统计信息把自身存储的相关数据发散到 其他相应子节点的临时缓存或临时表空间中。
[0011] 步骤15,在每个存储数据的子节点内,以待查询的数据为主,将接收的数据执行关 联操作。
[0012] 步骤16,每个子节点将得到的关联结果发送给全局优化查询器。
[0013] 步骤17,全局优化查询器将关联结果整理合并后,将查询到的数据返回给客户端, 呈现给用户。
[0014] 需要说明的是,上述数据查询过程中,存储数据的节点间的交互仅以一个子节点 为例进行详细阐述的,实际运行中,每个子节点都需要进行相同的交互操作过程。
[0015] 由上述数据查询处理流程可知,在进行复杂的数据查询工作时,由于各个子节点 中存储数据的方式不同,该种情况下全局优化查询器选择交叉关联连接方式,该种方式下, 子节点间大量的交叉数据分发和通信,增加 CPU、网络和内存等资源的耗用,使系统运行效 率降低,数据查询的响应时间增加。


【发明内容】

[0016] 本发明实施例提供了一种数据查询方法及装置,能够较好地解决数据查询过程中 资源的耗用,提高系统运行效率,减少数据查询的响应时间。
[0017] -种数据查询方法,应用在分布式数据查询系统中,所述分布式数据查询系统包 含至少一个管理节点和至少一个子节点,还包含至少一个辅助节点,所述方法包括:辅助节 点接收任一子节点根据触发指令发来的各子节点中存储的第一数据,其中所述触发指令是 管理节点在确定出和输入的查询关键词对应的第二数据未存储在同一子节点中时向各子 节点发送的,指示各子节点向辅助节点发送包含查询关键词的第一数据,所述第一数据至 少是包含第一分布键的一组数据,所述第二数据是包含第二分布键的一组数据,第一分布 键和第二分布键不相同;针对接收到的任一子节点发来的第一数据,执行下述操作:按照 管理节点发来的查询关键词对接收到的第一数据进行过滤,确定出该第一数据中包含第二 分布键的第三数据;辅助节点将第三数据重新分发给对应的发送第一数据的子节点,各子 节点对接收到的第三数据按照第二数据格式进行关联操作,将关联结果作为与查询关键词 对应的查询结果反馈给管理节点。
[0018] 一种数据查询装置,应用在分布式数据查询系统中,所述分布式数据查询系统包 含至少一个管理节点和至少一个子节点,还包含至少一个辅助节点,所述数据查询装置包 括:接收单元,用于接收任一子节点根据触发指令发来的各子节点中存储的第一数据,其中 所述触发指令是管理节点在确定出和输入的查询关键词对应的第二数据未存储在同一子 节点中时向各子节点发送的,指示各子节点向辅助节点发送包含查询关键词的第一数据, 所述第一数据至少是包含第一分布键的一组数据,所述第二数据是包含第二分布键的一组 数据,第一分布键和第二分布键不相同;确定单元,用于针对接收到的任一子节点发来的第 一数据,执行下述操作:按照管理节点发来的查询关键词对接收到的第一数据进行过滤,确 定出该第一数据中包含第二分布键的第三数据;发送单元,用于将第三数据重新分发给对 应的发送第一数据的子节点,各子节点对接收到的第三数据按照第二数据格式进行关联操 作,将关联结果作为与查询关键词对应的查询结果反馈给管理节点。
[0019] 采用上述技术方案,在现有技术中提出的分布式数据系统架构下,增加了至少一 个辅助节点,在进行数据查询时,分布式数据查询系统中的各子节点首先与辅助节点进行 交互。然后辅助节点再和每个子节点分别进行交互,以实现数据查询的目的,这样,各子节 点之间并不进行数据交互,能够较好地解决数据查询过程中资源的耗用,提高系统运行效 率,减少数据查询的响应时间。

【专利附图】

【附图说明】
[0020] 图1为现有技术中,提出的分布式数据存储系统结构组成示意图;
[0021] 图2为现有技术中,提出的分布式数据存储系统中数据获取方法流程图;
[0022] 图3为本发明实施例中,提出的分布式数据存储系统结构组成示意图;
[0023] 图4为本发明实施例中,提出的分布式数据存储系统中数据获取方法流程图;
[0024] 图5为本发明实施例中,提出的数据查询装置结构组成示意图。

【具体实施方式】
[0025] 针对现有技术中存在的在分布式数据查询系统中,在进行复杂的数据查询工作 时,由于各个子节点中存储数据的方式不同,该种情况下全局优化查询器选择交叉关联连 接方式,该种方式下,子节点间大量的交叉数据分发和通信,增加CPU、网络和内存等资源的 耗用,使系统运行效率降低,数据查询的响应时间增加的问题,本发明实施例这里提出的技 术方案中,在现有技术中提出的分布式数据系统架构下,增加了辅助节点,在进行数据查询 时,分布式数据查询系统中的各子节点首先与辅助节点进行交互。然后辅助节点再分别和 每个子节点进行交互,以实现数据查询的目的,这样,各子节点之间并不进行数据交互,能 够较好地解决数据查询过程中资源的耗用,提高系统运行效率,减少数据查询的响应时间。
[0026] 下面将结合各个附图对本发明实施例技术方案的主要实现原理、【具体实施方式】及 其对应能够达到的有益效果进行详细地阐述。
[0027] 本发明实施例这里提出一种分布式数据查询系统,如图3所示,本发明实施例这 里提出的分布式数据查询系统包含至少一个管理节点,至少一个子节点和至少一个辅助节 点。
[0028] 其中,管理节点和任一子节点之间可以进行数据通信,在分布式数据查询系统中, 任一两个子节点之间也可以进行数据通信,管理节点和辅助节点之间可以进行数据通信, 任一辅助节点可以和任一子节点之间进行数据通信。在进行数据查询时,分布式数据查询 系统中还可以包括全局优化查询器。全局优化查询器可以单独设置,也可以设置在管理节 点中。一种较佳地实现方式,本发明实施例这里提出的技术方案中,是基于现有技术中数据 查询系统的升级,仅在原系统架构加增加辅助节点,全局优化查询器则和现有技术相同,设 置在管理节点中。这样可以较好地保证对原系统架构做出较小的改动,节省数据查询系统 的改造成本。
[0029] 辅助节点可以通过高速网络技术实现和其他子节点之间的高速互联互通。高速网 络如万兆网卡、无限带宽(infinband)等。辅助节点的主要功能包括数据中转和在分发等, 因此可以为辅助节点配置较高性能的存储区和缓冲池,高速网络通讯链路,这样可以使得 辅助节点执行的存、取操作具有较高的性能。
[0030] 在进行数据查询时,管理节点接收用户通过管理节点发出的查询关键词,在确定 出和查询关键词对应的数据未存储在同一子节点中时,辅助节点接收任一子节点根据触发 指令发来的各子节点中存储的第一数据,其中触发指令是管理节点在确定出和输入的查询 关键词对应的第二数据未存储在同一子节点中时向各子节点发送的,指示各子节点向辅助 节点发送包含查询关键词的第一数据,所述第一数据至少是包含第一分布键的一组数据, 所述第二数据是包含第二分布键的一组数据,第一分布键和第二分布键不相同;针对接收 到的任一子节点发来的第一数据,执行下述操作:按照管理节点发来的查询关键词对接收 到的第一数据进行过滤,确定出该第一数据中包含第二分布键的第三数据;辅助节点将第 三数据重新分发给对应的发送第一数据的子节点,各子节点对接收到的第三数据按照第二 数据格式进行关联操作,将关联结果作为与查询关键词对应的查询结果反馈给管理节点。
[0031] 在分布式数据查询系统中,数据在存储时,可以按照表格的形式来存储。数据库中 存储的表格可以根据定义的分布键散列后均匀分布在不同的子节点中。由于数据的种类比 较多,因此在各个子节点中,存储的表格的分布键的列定义也不完全相同。例如,在通信系 统中,以话单数据为例,在子节点1中存储的数据表,如表1所示,其分布键定义可以是用户 的终端号码。在子节点2中存储的数据表,如表2所示,其分布键定义可以是用户的身份标 识。分布键可以作为唯一标识各子节点存储的数据表。
[0032] 表 1

【权利要求】
1. 一种数据查询方法,应用在分布式数据查询系统中,其特征在于,所述分布式数据查 询系统包含至少一个管理节点和至少一个子节点,还包含至少一个辅助节点,所述方法包 括: 辅助节点接收任一子节点根据触发指令发来的各子节点中存储的第一数据,其中所 述触发指令是管理节点在确定出和输入的查询关键词对应的第二数据未存储在同一子节 点中时向各子节点发送的,指示各子节点向辅助节点发送包含查询关键词的第一数据,所 述第一数据至少是包含第一分布键的一组数据,所述第二数据是包含第二分布键的一组数 据,第一分布键和第二分布键不相同; 针对接收到的任一子节点发来的第一数据,执行下述操作:按照管理节点发来的查询 关键词对接收到的第一数据进行过滤,确定出该第一数据中包含第二分布键的第三数据; 辅助节点将第三数据重新分发给对应的发送第一数据的子节点,各子节点对接收到的 第三数据按照第二数据格式进行关联操作,将关联结果作为与查询关键词对应的查询结果 反馈给管理节点。
2. 如权利要求1所述的方法,其特征在于,按照管理节点发来的查询关键词对接收到 的第一数据进行过滤,确定出第一数据中包含第二分布键的第三数据,包括: 辅助节点在接收到的第一数据中,按照管理节点发来的查询关键词,确定符合第二分 布键的分布列数据;以及 根据查询关键词,确定所述分布列数据在接收到的第一数据中对应的分布行数据; 将确定出分布列数据和分布行数据进行哈希运算后生成第三数据。
3. 如权利要求1所述的方法,其特征在于,辅助节点将第三数据重新分发给对应的发 送第一数据的子节点,包括: 辅助节点将确定出的第三数据对应各子节点存储在自身的缓存池中; 基于分级缓存处理的方式,将缓存池中存储的第三数据重新分发给对应的发送第一数 据的子节点。
4. 如权利要求3所述的方法,其特征在于,在将缓存池中存储的第三数据重新分发给 对应的发送第一数据的子节点之后,还包括: 在确定出缓存池中存储的分发完成的第三数据的数量大于预设阈值时,将分发完成的 第三数据清除;或 在确定出缓存池存储空间小于待存储的第三数据的容量时,将缓存池中存储的分发完 成的第三数据清除。
5. 如权利要求1所述的方法,其特征在于,在辅助节点将第三数据重新分发给对应的 发送第一数据的子节点之后,还包括: 辅助节点在各子节点中保存的日志信息中,确定已分发完成的第三数据的日志信息; 辅助节点将获得的已分发完成的第三数据的日志信息存储在缓存池中的日志更新队 列中。
6. -种数据查询装置,应用在分布式数据查询系统中,其特征在于,所述分布式数据查 询系统包含至少一个管理节点和至少一个子节点,还包含至少一个辅助节点,所述装置包 括: 接收单元,用于接收任一子节点根据触发指令发来的各子节点中存储的第一数据,其 中所述触发指令是管理节点在确定出和输入的查询关键词对应的第二数据未存储在同一 子节点中时向各子节点发送的,指示各子节点向辅助节点发送包含查询关键词的第一数 据,所述第一数据至少是包含第一分布键的一组数据,所述第二数据是包含第二分布键的 一组数据,第一分布键和第二分布键不相同; 确定单元,用于针对接收到的任一子节点发来的第一数据,执行下述操作:按照管理节 点发来的查询关键词对接收到的第一数据进行过滤,确定出该第一数据中包含第二分布键 的第三数据; 发送单元,用于将第三数据重新分发给对应的发送第一数据的子节点,各子节点对接 收到的第三数据按照第二数据格式进行关联操作,将关联结果作为与查询关键词对应的查 询结果反馈给管理节点。
7. 如权利要求6所述的装置,其特征在于,所述确定单元,具体用于在接收到的第一数 据中,按照管理节点发来的查询关键词,确定符合第二分布键的分布列数据;以及根据查询 关键词,确定所述分布列数据在接收到的第一数据中对应的分布行数据;将确定出分布列 数据和分布行数据进行哈希运算后生成第三数据。
8. 如权利要求6所述的装置,其特征在于,所述发送单元,具体用于将确定出的第三数 据对应各子节点存储在自身的缓存池中;基于分级缓存处理的方式,将缓存池中存储的第 三数据重新分发给对应的发送第一数据的子节点。
9. 如权利要求8所述的装置,其特征在于,还包括: 清除单元,用于在确定出缓存池中存储的分发完成的第三数据的数量大于预设阈值 时,将分发完成的第三数据清除;或在确定出缓存池存储空间小于待存储的第三数据的容 量时,将缓存池中存储的分发完成的第三数据清除。
10. 如权利要求6所述的装置,其特征在于,所述确定单元,还用于在各子节点中保存 的日志信息中,确定已分发完成的第三数据的日志信息;将获得的已分发完成的第三数据 的日志信息存储在缓存池中的日志更新队列中。
【文档编号】G06F17/30GK104111958SQ201310141150
【公开日】2014年10月22日 申请日期:2013年4月22日 优先权日:2013年4月22日
【发明者】朱祥磊 申请人:中国移动通信集团山东有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1