CN106959963B - 一种数据查询方法、装置及系统 - Google Patents
一种数据查询方法、装置及系统 Download PDFInfo
- Publication number
- CN106959963B CN106959963B CN201610017764.0A CN201610017764A CN106959963B CN 106959963 B CN106959963 B CN 106959963B CN 201610017764 A CN201610017764 A CN 201610017764A CN 106959963 B CN106959963 B CN 106959963B
- Authority
- CN
- China
- Prior art keywords
- query
- field
- queried
- server
- index information
- 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/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- 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/242—Query formulation
- G06F16/2433—Query languages
-
- 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/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24549—Run-time optimisation
-
- 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/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供的一种数据查询方法、装置及系统,应用于分布式数据存储系统中的查询服务器,该方法包括:接收客户端发送的连接请求后,建立与客户端之间的通信连接;接收客户端发送查询请求,其中,查询请求中携带待查询字段的标识、字段值、针对待查询字段的查询条件以及待查询字段之间的查询关系;判断查询请求中携带的待查询字段的标识对应的待查询字段是否全部为预设字段;若为是,根据查询请求中携带的待查询字段的标识、待查询字段的字段值在该查询服务器中已存储的索引信息中进行查询,获得索引信息,并根据所获得的索引信息生成查询结果。应用本发明实施例,可以通过查询索引信息的方式快速获得待查询数据的查询结果。
Description
技术领域
本发明涉及数据查询技术领域,特别是涉及一种数据查询方法、装置及系统。
背景技术
随着信息量爆炸式的增长,对存储各种信息的数据存储系统的存储能力的要求也越来越高,此时分布式数据存储系统应运而生。通常,分布式数据存储系统可以通过增加存储服务器的方式来增大其存储容量,因而具有较强的数据存储能力。
现有技术中提供了这样一种针对分布式数据存储系统的数据查询方法,该分布式数据存储系统中包括至少一个管理服务器和多个存储服务器,客户端向分布式数据存储系统中的管理服务器发送针对待查询数据的查询请求,其中,该查询请求中携带有待查询数据的标识类信息;管理服务器根据接收到的查询请求中携带的标识类信息,对多个存储服务器中的已存储数据进行逐一扫描,直到查找到与该标识类信息相对应的目标数据为止,并将查找到的目标数据返回至客户端,客户端获得待查询数据的查询结果。
由以上可见,分布式数据存储系统中的管理服务器在查找待查询数据时,是通过逐一扫描分布式存储系统中的多个存储服务器的方式来获得的,这样,当分布式数据存储系统的数据存储容量越大时,逐一扫描数据的时间就会越长,从而导致客户端获得待查询数据的查询结果的速度就会越慢。
发明内容
本发明实施例的目的在于提供一种数据查询方法、装置以及系统,以实现对分布式数据存储系统中的已存储数据的快速查询。
为达到上述目的,本发明实施例公开了一种数据查询方法,应用于分布式数据存储系统中基于结构化查询语言SQL的查询服务器,其中,所述分布式数据存储系统包括至少一个查询服务器和至少一个存储服务器,查询服务器用于存储所述分布式数据存储系统中各个存储服务器中已存储的数据的索引信息,所述索引信息中至少包括:数据的标识和该数据对应的预设字段的字段值,所述方法包括:
接收客户端发送的连接请求后,建立与所述客户端之间的通信连接;
接收所述客户端发送的针对待查询数据的基于SQL语句的查询请求,其中,所述查询请求中携带待查询字段的标识、待查询字段的字段值、针对待查询字段的查询条件以及待查询字段之间的查询关系;
判断所述查询请求中携带的待查询字段的标识对应的待查询字段是否全部为预设字段;
若为是,根据所述查询请求中携带的待查询字段的标识、待查询字段的字段值在该查询服务器中已存储的索引信息中进行查询,获得符合针对待查询字段的查询条件和待查询字段之间的查询关系的索引信息,并根据所获得的索引信息生成查询结果。
较佳的,在判断得所述查询请求中携带的待查询字段的标识对应的待查询字段不全部为预设字段的情况下,还包括:
根据所述待查询字段中第一目标字段的标识及其字段值,在该查询服务器中已存储的索引信息中进行查询,获得符合所述第一目标字段之间的查询关系的索引信息,并根据所获得的索引信息生成第一查询结果,其中,所述第一目标字段为所述待查询字段中属于所述预设字段的字段;
根据所述待查询字段中第二目标字段的标识及其字段值,在所述存储服务器中进行查询,获得符合所述第二目标字段的第二查询结果,其中,所述第二目标字段为所述待查询字段中属于所述预设字段的字段;
根据所述第一查询结果和所述第二查询结果,按照所述查询请求中携带的针对待查询字段的查询条件和待查询字段之间的查询关系,获得与所述查询请求相对应的查询结果。
较佳的,在判断得所述查询请求中携带的待查询字段的标识对应的待查询字段不全部为预设字段的情况下,还包括:
根据所述待查询字段中第一目标字段的标识及其字段值,在该查询服务器中已存储的索引信息中进行查询,获得符合所述第一目标字段之间的查询关系的索引信息,并根据所获得的索引信息生成第三查询结果,其中,所述第一目标字段为所述待查询字段中属于所述预设字段的字段;
根据所述第三查询结果、所述待查询字段中第二目标字段的标识及其字段值,向所述存储服务器发送数据查询请求,以使得所述存储服务器根据所述数据查询请求在所述存储服务器中进行查询,其中,所述第二目标字段为所述待查询字段中属于所述预设字段的字段;
接收所述存储服务器反馈的查询结果,并根据所接收的查询结果获得与所述查询请求相对应的查询结果。
较佳的,在所述分布式数据存储系统中包括两个以上查询服务器时,所述方法还包括:
判断是否满足预设的索引信息同步条件;
若满足,将该查询服务器中存储的索引信息同步至所述分布式数据存储系统中的其他查询服务器中。
较佳的,所述查询服务器,包括:多个物理服务器。
为达到上述目的,本发明实施例公开了一种数据查询装置,应用于分布式数据存储系统中基于结构化查询语言SQL的查询服务器,其中,所述分布式数据存储系统包括至少一个查询服务器和至少一个存储服务器,查询服务器用于存储所述分布式数据存储系统中各个存储服务器中已存储的数据的索引信息,所述索引信息中至少包括:数据的标识和该数据对应的预设字段的字段值,所述装置包括:
通信连接建立模块,用于接收客户端发送的连接请求后,建立与所述客户端之间的通信连接;
查询请求接收模块,用于接收所述客户端发送的针对待查询数据的基于SQL语句的查询请求,其中,所述查询请求中携带待查询字段的标识、待查询字段的字段值、针对待查询字段的查询条件以及待查询字段之间的查询关系;
字段判断模块,用于判断所述查询请求中携带的待查询字段的标识对应的待查询字段是否全部为预设字段;
第一数据查询模块,用于在字段判断模块判断为是的情况下,根据所述查询请求中携带的待查询字段的标识、待查询字段的字段值在该查询服务器中已存储的索引信息中进行查询,获得符合针对待查询字段的查询条件和待查询字段之间的查询关系的索引信息,并根据所获得的索引信息生成查询结果。
较佳的,所述装置还包括:第二数据查询模块,其中,所述第二数据查询模块包括:第一查询结果获得子模块、第二查询结果获得子模块和第三查询结果获得子模块;
所述第一查询结果获得子模块,用于在所述字段判断模块判断为否的情况下,根据所述待查询字段中第一目标字段的标识及其字段值,在该查询服务器中已存储的索引信息中进行查询,获得符合所述第一目标字段之间的查询关系的索引信息,并根据所获得的索引信息生成第一查询结果,其中,所述第一目标字段为所述待查询字段中属于所述预设字段的字段;
所述第二查询结果获得子模块,用于根据所述待查询字段中第二目标字段的标识及其字段值,在所述存储服务器中进行查询,获得符合所述第二目标字段之间的查询关系的第二查询结果,其中,所述第二目标字段为所述待查询字段中属于所述预设字段的字段;
所述第三查询结果获得子模块,用于根据所述第一查询结果和所述第二查询结果,按照所述查询请求中携带的针对待查询字段的查询条件和待查询字段之间的查询关系,获得与所述查询请求相对应的查询结果。
较佳的,所述装置还包括:第三数据查询模块,其中,所述第三数据查询模块包括:第四查询结果获得子模块、查询请求发送子模块和第五查询结果获得子模块;
所述第四查询结果获得子模块,用于在所述字段判断模块判断为否的情况下,根据所述待查询字段中第一目标字段的标识及其字段值,在该查询服务器中已存储的索引信息中进行查询,获得符合所述第一目标字段之间的查询关系的索引信息,并根据所获得的索引信息生成第三查询结果,其中,所述第一目标字段为所述待查询字段中属于所述预设字段的字段;
所述查询请求发送子模块,用于根据所述第三查询结果、所述待查询字段中第二目标字段的标识及其字段值,向所述存储服务器发送数据查询请求,以使得所述存储服务器根据所述数据查询请求在所述存储服务器中进行查询,其中,所述第二目标字段为所述待查询字段中属于所述预设字段的字段;
所述第五查询结果获得子模块,用于接收所述存储服务器反馈的查询结果,并根据所接收的查询结果获得与所述查询请求相对应的查询结果。
较佳的,在所述分布式数据存储系统中包括两个以上查询服务器时,所述装置还包括:同步条件判断模块和索引信息同步模块;其中,
所述同步条件判断模块,用于判断是否满足预设的索引信息同步条件;
所述索引信息同步模块,用于在所述同步条件判断模块的判断结果为是的情况下,将该查询服务器中存储的索引信息同步至所述分布式数据存储系统中的其他查询服务器中。
较佳的,所述查询服务器,包括:多个物理服务器。
为达到上述目的,本发明实施例公开了一种分布式数据存储系统,所述分布式数据存储系统,包括:管理服务器、至少一个查询服务器和至少一个存储服务器;其中,
所述管理服务器,用于接收客户端发送的查询服务器获得请求,并根据所述查询服务器获得请求确定用于响应客户端发送的数据查询请求的查询服务器;
所述查询服务器,用于根据权利要求1-5中任一项所述的数据查询方法响应所述客户端发送的数据查询请求,进而进行数据查询;
所述存储服务器,用于存储客户端上传的数据。
较佳的,所述查询服务器,用于在满足预设的索引信息同步条件的情况下,向所述管理服务器发送索引信息同步请求;
所述管理服务器,用于接收所述查询服务器发送的所述索引信息同步请求,并根据所述索引信息同步请求对其他查询服务器中存储的索引信息进行信息同步处理。
由以上可见,在本发明实施例提供的技术方案中,分布式数据存储系统中基于结构化查询语言SQL的查询服务器在接收到客户端发送的连接请求后,建立与该客户端之间的通信连接;然后,客户端向已建立通信连接的查询服务器发送针对待查询数据的基于SQL语句的查询请求,其中,该查询请求中携带待查询字段的标识、待查询字段的字段值、针对待查询字段的查询条件以及待查询字段之间的查询关系;接着,查询服务器判断该查询请求中携带的待查询字段的标识对应的待查询字段是否全部为预设字段,并在判断为是的情况下,根据该查询请求中携带的待查询字段的标识、待查询字段的字段值在该查询服务器中已存储的索引信息中进行查询,获得符合针对待查询字段的查询条件和待查询字段之间的查询关系的索引信息,并根据所获得的索引信息生成查询结果。显然,应用本发明实施例提供的方案进行数据查询时,在查询请求中携带的待查询字段的标识对应的待查询字段全部为预设字段的情况下,查询服务器通过查询本地已存储索引信息的方式获得查询结果,避免了逐一扫描分布式存储系统中的各个存储服务器,而且在本地查询数据的耗时相对于扫描存储服务器查询数据耗时要短的多,因此,能够提高在分布式存储系统中查询数据的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据查询方法的流程示意图;
图2为本发明实施例提供的另一种数据查询方法的流程示意图;
图3为本发明实施例提供的另一种数据查询方法的流程示意图;
图4为本发明实施例提供的另一种数据查询方法的流程示意图;
图5为本发明实施例提供的一种数据查询装置的结构示意图;
图6为本发明实施例提供的另一种数据查询装置的结构示意图;
图7为本发明实施例提供的另一种数据查询装置的结构示意图;
图8为本发明实施例提供的另一种数据查询装置的结构示意图;
图9为本发明实施例提供的一种分布式数据存储系统的架构示意图。
具体实施方式
实际应用中,用户通过对大量数据的分析可以获得一些规律性的东西,例如,通过对所记录的观看某视频的用户的性别和年龄段的分析,可以获得不同用户对于该视频的喜爱程度,等等。
然而,在对所记录的大量数据进行分析之前,往往需要从存储该大量数据的分布式数据存储系统中的存储服务器中查询到这些数据。一般的,现有技术中通过逐一扫描该分布式数据存储系统中的存储服务器的方式来获得针对待查询数据的查询结果,显然,当分布式数据存储系统的存储容量越大时,查询的速度就会越慢。
针对上述情况,本发明提供了一种数据查询方法、装置及系统,以实现对数据的快速查询。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种数据查询方法的流程示意图,该方法应用于分布式数据存储系统中基于结构化查询语言SQL的查询服务器,其中,该分布式数据存储系统可以包括至少一个查询服务器和至少一个存储服务器,查询服务器用于存储分布式数据存储系统中各个存储服务器中已存储的数据的索引信息,该索引信息中至少可以包括:数据的标识和该数据对应的预设字段的字段值。
现有技术中的分布式数据存储系统中的数据是不存在索引信息的,因此,导致查询的时候需要对多个存储服务器中的已存储数据进行逐一扫描,直到查找到与该标识类信息相对应的目标数据为止。为解决这一问题,本发明将SQL引擎引入至分布式数据存储系统,并针对分布式数据存储系统中已存储数据建立索引信息。下面对各个存储服务器中已存储的数据的索引信息的建立过程进行下描述。在建立索引时,查询服务器接收到SQL语句中的insert数据插入语句,其中,该插入语句可以携带待建立索引的数据并将待建立索引的数据插入至存储服务器中,同时在SQL引擎的消息队列中存储待建立索引的数据;然后,由SQL引擎的索引建立模块从消息队列中拉取数据并利用常用的索引建立工具(例如Apache软件基金会发布的开放源代码的全文检索引擎工具包Lucene)完成待建立索引的数据的索引建立。
需要说明的是,本申请中的分布式数据存储系统中的索引信息的数据是存储于Schema表中的。对Schema表的管理主要目的是实现SQL中创建的表的元数据信息以及在多个查询服务器(如JDBC server)之间的表信息同步功能,目前针对Schema表的DDL操作主要有创建表、删除表两种操作,具体如下:
1、Schema表的创建
在分布式文件系统HDFS中定义待创建的Schema表的相关信息,其中,该相关信息中包含待创建的Schema表中的数据是否具有索引的信息,需要创建表的查询服务器读取存储于HDFS中的相关信息,根据读取到的相关信息在SQL Context中创建Schema表。另外,当需要创建表的查询服务器完成Schema表的创建之后,可以向其他查询服务器发送同步创建的信号,其他查询服务器在接收到该同步创建的信号之后,读取待创建表的查询服务器的Schema表创建操作信息,并根据读取到的Schema表创建操作信息各自创建一份Schema表。需要说明的是,为了防止创建表过程中的并发与冲突,可以采用对Zookeeper中共享目录加分布式锁,并在分布式数据存储系统中的各个查询服务器均创建成功该Schema表之后释放该分布式锁。
2、Schema表的删除
当需要从一个查询服务器中删除Schema表时,可以对Zookeeper中共享目录下加分布式锁,然后在SQLContext中利用drop语句完成对Schema表的删除,然后,向该分布式数据存储系统中的其他查询服务器发送同步删除的信号,其他查询服务器在接收到该同步删除的信号之后,删除对应该表在Zookeeper中的所有目录以及该Schema表在HDFS中存储的相关信息,释放该分布式锁对Zookeeper中共享目录的锁定。
需要说明的是,在创建Schema表和删除Schema表时,为了使得各个查询服务器中Schema表的一致性,需要保证各个查询服务器同步完成才能返回创建表或删除表成功的信号。具体的同步机制为:需同步的各个查询服务器在Zookeeper的指定目录(例如……/sql/table)写一个标记,待创建表的查询服务器或待删除表的查询服务器(简称主节点)可以在指定时间内读取该指定目录下的查询服务器是否均具有标记,若至少一个查询服务器未被标记,则该创建表或删除表的操作均认为不成功。
另外,在查询服务器(例如JDBC Server)启动时,需要对之前创建的Schema表进行初始化,具体如下:JDBC Server启动后,判断在Zookeeper是否存在存储该Schema表的目录(例如……/sql/schema),在目录存在的情况下读取该目录下记录的创建该Schema表的操作信息,该JDBC Server执行读取到的操作信息完成对Schema表的加载;为了确保对之前创建的全部Schema表均能够加载成功,需要遍历HDFS并判断该JDBC Server中是否已加载HDFS上存储的全部Schema表,如果否,则需要读取并执行HDFS中未存储于JDBC Server中的Schema表,完成对查询服务器启动后对于之前建立的Schema表的加载过程。同样的,在加载Schema表的过程中也可以对Zookeeper中共享目录加分布式锁,避免对Schema表的重复加载。
具体的,上述数据查询方法可以包括以下步骤:
步骤S101:接收客户端发送的连接请求后,建立与客户端之间的通信连接。
需要说明的是,执行本方案中各个步骤的执行主体是上述分布式数据存储系统中的查询服务器,然而,该分布式数据存储系统中至少可以包括一个查询服务器,那么当其包括两个以上的查询服务器时,便需要在执行本方案中各个步骤之前,按照预设的查询服务器确定规则从多个查询服务器中确定出一个查询服务器,然后再由确定出的这个查询服务器来执行本方案中的各个步骤。
具体的,该分布式数据存储系统中的查询服务器,可以是由一个物理服务器组成的,还可以是多个物理服务器组成的。容易理解的,对于多个物理服务器为整体构成的查询服务器而言,其计算处理能力通常高于由一个物理服务器构成的查询服务器。因此,当该分布式数据存储系统中既有一个物理服务器构成的查询服务器,又有多个物理服务器为整体构成的查询服务器时,还可以根据所需要处理的数据的计算量的大小来选择用于与客户端建立通信连接的查询服务器。具体的,当数据处理的计算量较小时,可以选择一个物理服务器构成的查询服务器,当数据处理的计算量较大时,可以选择多个物理服务器为整体构成的查询服务器,这样能够更加合理的管理该分布式数据存储系统中的查询服务器,可以有效的提高其数据查询的效率。举例而言,在基于SQL语句的数据查询中,可以根据SQL语句的计算复杂程度进行判断,例如“show table”等命令计算复杂程度低,在执行时所需的计算资源较少,因此可以选择一个物理服务器构成的查询服务器;而对于“select*from table”等命令计算复杂程度低,在执行时所需的计算资源较少,因此可以选择多个物理服务器为整体构成的查询服务器,有效的提高其数据查询的效率。
据统计,相对于现有技术中通过编写程序调用相关的库函数对多个存储服务器中的已存储数据进行逐一扫描的数据查询方法而言,本发明实施例中提供的借助索引查询的方式进行数据查询的方法,能够有效的提高数据查询的效率。
步骤S102:接收客户端发送的针对待查询数据的基于SQL语句的查询请求。
其中,查询请求中携带待查询字段的标识、待查询字段的字段值、针对待查询字段的查询条件以及待查询字段之间的查询关系。
具体的,查询请求中携带的待查询字段可以包括:年龄、性别、学号、工资、网站点击率等等代表各种信息的字段。
具体的,待查询字段的字段值可以是对应于待查询字段的具体内容,例如,当待查询字段中包括的字段为“年龄”时,其字段值可以为“30”,等等。
这里所提及的针对待查询字段的查询条件,具体可以包括:待查询字段内的“大于”、“小于”、“大于等于”、“小于等于”或者“等于”等关系。例如,在待查询字段的字段值为“30”,且针对待查询字段的查询条件为“大于等于”时,该查询请求中针对待查询字段实际是要查询年龄大于等于30的用户的信息。
这里所提及的待查询字段之间的查询关系,具体可以包括:待查询字段之间的交集关系,或,待查询字段之间的并集关系。例如,当待查询字段中包括的字段包括:
(1)“年龄”且字段值为30;(2)“性别”且字段值为“女”;
那么,当查询关系为“交集关系”时,查询请求需要获得的查询结果为“年龄为30岁”且“性别为女”的用户信息;容易理解的,当查询关系为“并集关系”时,查询请求需要获得查询结果为“年龄为30岁”或者是“性别为女”的用户信息。显然,即使查询请求中所携带的待查询字段的标识以及待查询字段的字段值都相同,由于查询关系不同,也会使得查询结果大不一样。
本发明不需要对查询请求中所携带的待查询字段、字段的标识、字段的字段值和字段之间的查询关系的具体内容进行限定,需要本领域内的技术人员根据实际应用中的具体情况进行设置。
步骤S103:判断查询请求中携带的待查询字段的标识对应的待查询字段是否全部为预设字段,若为是,执行步骤S104,否则执行步骤S105,结束本流程。
步骤S104:根据查询请求中携带的待查询字段的标识、待查询字段的字段值在该查询服务器中已存储的索引信息中进行查询,获得符合针对待查询字段的查询条件和待查询字段之间的查询关系的索引信息,并根据所获得的索引信息生成查询结果。
一种具体实现方式中,可以将分布式内存计算框架Spark SQL引入至分布式数据存储系统中,该分布式内存计算框架中的SQL引擎可以对分布式数据存储系统中存储服务器已存储的数据进行处理,并根据实际应用中的需要,将存储于存储服务器中的已存储数据中的某些字段设置成预设字段,且建立已存储的数据的索引信息。
进一步的,由于目前的分布式内存计算框架Spark SQL提供的是单节点的查询服务器,也就是说,当这个查询服务器处于异常工作状态时,引入分布式内存计算框架SparkSQL的分布式数据存储系统将面临单点故障的问题,这样便降低了分布式数据存储系统的可靠性。本发明实施例提供的方法中,对此缺陷进行了改进,在该分布式数据存储系统中设置多个查询服务器,也就是说,以查询服务器集群的方式为用户提供查询服务,这样能够避免引入Spark SQL时给分布式数据存储系统带来的单点故障的问题。
需要说明的是,本发明实施例中提供的借助索引查询的方式进行数据查询的方法,能够有效的提高数据查询的效率;进一步的,在将分布式内存计算框架Spark SQL引入至分布式数据存储系统后,用户可以借助于SQL语句来实现索引查询,相对于一些需要编写底层代码来调用索引进行查询的方式来说,前者更容易被用户掌握,因此,本方式提升了用户的实际操作体验。
容易理解的,当步骤S103的判断结果为全部为预设字段时,可以根据待查询字段的标识、待查询字段的字段值在查询服务器中已存储的索引信息中进行查询,然后,在结合符合针对待查询字段的查询条件和待查询字段之间的查询关系的索引信息,确定出针对待查询字段的查询结果。
S105:结束本流程。
应用本发明实施例提供的方案进行数据查询时,在查询请求中携带的待查询字段的标识对应的待查询字段全部为预设字段的情况下,查询服务器通过查询本地已存储索引信息的方式获得查询结果,避免了逐一扫描分布式存储系统中的各个存储服务器,而且在本地查询数据的耗时相对于扫描存储服务器查询数据耗时要短的多,因此,能够提高在分布式存储系统中查询数据的效率。
图2为本发明实施例提供的另一种数据查询方法的流程示意图,在图1所示的方法实施例的基础之上,判断得查询请求中携带的待查询字段的标识对应的待查询字段不全部为预设字段的情况下,该方法还可以包括以下几个步骤:
步骤S106:根据待查询字段中第一目标字段的标识及其字段值,在该查询服务器中已存储的索引信息中进行查询,获得符合第一目标字段的查询条件和字段之间的查询关系的索引信息,并根据所获得的索引信息生成第一查询结果。
其中,第一目标字段为待查询字段中属于预设字段的字段。
需要说明的是,这里提及的第一目标字段可以是待查询字段中的一个字段,也可以是待查询字段中的多个字段,本发明不需要对此进行限定。
步骤S107:根据待查询字段中第二目标字段的标识及其字段值,在存储服务器中进行查询,获得符合第二目标字段之间的查询关系的第二查询结果。
其中,第二目标字段为待查询字段中属于预设字段的字段。
需要说明的是,这里提及的第二目标字段可以是待查询字段中的一个字段,也可以是待查询字段中的多个字段,本发明不需要对此进行限定。
需要说明的是,步骤S106和步骤S107进一步针对待查询字段按照是否属于预设字段进行不同的查询处理,步骤S106与步骤S104类似,可以通过查询索引信息的方式来获得查询结果;步骤S107则仍需要通过在存储服务器中进行逐一扫描的方式来获得查询结果。
虽然,对于待查询数据中不属于预设字段的数据查询而言,步骤S107仍需要通过在存储服务器中进行逐一扫描的方式来获得查询结果,但是,由于待查询数据中属于预设字段的数据查询可以通过查询索引信息的方式来快速获得查询结果,因此,相比现有技术中仅仅利用在存储服务器中进行逐一扫描的方式来获得查询结果的方法而言,查询速度仍然是有提升的。另外,与图1所示的数据查询方法相比,本发明实施例提供了一种不属于预设字段的数据查询方法,使得在待查询字段不全部为预设字段的情况下,仍然能够获得与查询请求相对应的查询结果。
步骤S108:根据第一查询结果和第二查询结果,按照查询请求中携带的针对待查询字段的查询条件和待查询字段之间的查询关系,获得与查询请求相对应的查询结果。
需要说明的是,由于待查询字段中存在不属于预设字段的情况,因此在针对待查询字段进行数据查询时需要分开处理,当根据步骤S106和步骤S107分别获得查询结果之后,还需要根据待查询字段之间的具体的查询关系,来确定针对待查询请求的查询结果。
举例而言,当预设字段中仅包括“年龄”、字段内的查询条件为“等于”时;待查询字段中包括的字段为“年龄”和“性别”,字段内的查询条件均为“等于”,且年龄字段的字段值为30,性别字段的字段值为女,且查询关系为“交集关系”,那么,根据步骤S106和步骤S107查询到的查询结果分别如下:
查询结果1:
查询结果2:
姓名 | 性别 | 年龄 |
赵五 | 女 | 31 |
钱六 | 女 | 28 |
孙三 | 女 | 30 |
李四 | 女 | 30 |
根据查询结果1和查询结果2,按照查询请求中携带的待查询字段之间的交集关系,获得与查询请求相对应的查询结果,如下:
姓名 | 性别 | 年龄 |
孙三 | 女 | 30 |
李四 | 女 | 30 |
实际应用中,在查询请求中携带的待查询字段的标识对应的待查询字段不全部为预设字段的情况下,能够对待查询字段按照属于预设字段和不属于预设字段两种情况分别进行查询,其中,针对待查询字段中属于预设字段的部分,仍然可以根据其索引信息来获得第一查询结果,针对待查询字段中不属于预设字段的部分,可以根据逐一扫描分布式数据存储系统中的多个存储服务器的方式来获得第二查询结果,然后,根据第一查询结果和第二查询结果,按照查询请求中携带的针对待查询字段的查询条件和待查询字段之间的查询关系,获得与查询请求相对应的查询结果。可见,应用本发明实施例,在查询请求中携带的待查询字段的标识对应的待查询字段不全部为预设字段的情况下,获得第一查询结果的过程中并不需要逐一扫描分布式存储系统中的多个存储服器,因此降低了逐一扫描分布式存储系统中的多个存储服务器所耗费的时间,尤其是当分布式数据存储系统的数据存储容量越大的时候,获得待查询数据的查询结果的速度就会越快。
图3为本发明实施例提供的另一种数据查询方法的流程示意图,在图1所示的方法实施例的基础之上,在判断得查询请求中携带的待查询字段的标识对应的待查询字段不全部为预设字段的情况下,该方法还可以包括以下几个步骤:
步骤S109:根据待查询字段中第一目标字段的标识及其字段值,在该查询服务器中已存储的索引信息中进行查询,获得符合第一目标字段之间的查询关系的索引信息,并根据所获得的索引信息生成第三查询结果。
其中,第一目标字段为待查询字段中属于预设字段的字段。
步骤S110:根据第三查询结果、待查询字段中第二目标字段的标识及其字段值,向存储服务器发送数据查询请求,以使得存储服务器根据数据查询请求在存储服务器中进行查询。
其中,第二目标字段为待查询字段中属于预设字段的字段。
步骤S111:接收存储服务器反馈的查询结果,并根据所接收的查询结果获得与查询请求相对应的查询结果。
根据所生成第三查询结果、待查询字段中不属于预设字段的字段的标识及其字段值,向存储服务器发送数据查询请求,以使得存储服务器根据接收到的数据查询请求在存储服务器中进行查询,获得符合待查询字段中不属于预设字段的字段之间的查询关系的查询结果,并将所获得查询结果反馈至该查询服务器。
需要说明的是,步骤S109至步骤S111进一步针对待查询字段按照是否属于预设字段进行不同的查询处理,步骤S109与步骤S106类似,可以通过查询索引信息的方式来获得查询结果;步骤S110与步骤S107不同的是,不需要通过在存储服务器中进行逐一扫描的方式来获得查询结果,步骤S110仅需要根据所生成的第三查询结果在存储服务器中进行查询,查询的范围仅限于存储服务器中与第三查询结果相对应的数据内查询,并不是在整个存储服务器中的全部数据中查询,例如,可以根据第三查询结果中每条数据的唯一标识,从存储服务器中获得与第三查询结果相对应的数据,然后再从所获得的对应数据内查询并获得查询结果,可见,查询的数据范围缩小了,获得查询结果的时间短了,进而提高了数据查找的速度。
举例而言,当预设字段中仅包括“年龄”、字段内的查询条件为“等于”时;待查询字段中包括的字段为“年龄”和“性别”,字段内的查询条件均为“等于”,且年龄字段的字段值为30,性别字段的字段值为女,且查询关系为“交集关系”,那么,根据步骤S109至步骤S111查询到的查询结果分别如下
查询结果3:
姓名 | 性别 | 年龄 |
赵一 | 男 | 30 |
钱二 | 男 | 30 |
孙三 | 女 | 30 |
李四 | 女 | 30 |
获得与查询请求相对应的查询结果,如下:
姓名 | 性别 | 年龄 |
孙三 | 女 | 30 |
李四 | 女 | 30 |
实际应用中,实际应用中,在查询请求中携带的待查询字段的标识对应的待查询字段不全部为预设字段的情况下,能够对待查询字段按照属于预设字段和不属于预设字段两种情况分别进行查询,其中,针对待查询字段中属于预设字段的部分,仍然可以根据其索引信息来获得第一查询结果,针对待查询字段中不属于预设字段的部分,可以根据所获得的第三查询结果仅在该分布式数据存储系统中存储与该第三查询结果相对应的存储服务器的存储区域内进行逐一扫描,缩小了扫描范围,因此,与图2所示的数据查询方法相比,进一步提高了在查询请求中携带的待查询字段的标识对应的待查询字段不全部为预设字段的情况下,获得与查询请求相对应的查询结果的速度。
图4为本发明实施例提供的另一种数据查询方法的流程示意图,在图1所示的方法实施例的基础之上,在分布式数据存储系统中包括两个以上查询服务器时,该方法还可以包括以下几个步骤:
步骤S112:判断是否满足预设的索引信息同步条件,若判断结果为是,则执行步骤S113,否则执行步骤S114。
具体的,满足预设的索引信息同步条件可以包括以下几种中的至少一种:
(1)当检测到当前的存储服务器中的索引信息发生改变(创建新的索引信息、修改索引信息或者删除索引信息)时,满足预设的索引信息同步条件;
(2)满足预先设定的时间间隔(例如,间隔5分钟同步一次),满足预设的索引信息同步条件。需要说明的是,以上两种情况仅仅是举例,当然还可以预设其他的索引信息同步条件,本领域内的技术人员需要根据实际应用中的具体情况进行合理的设置。
步骤S113:将该查询服务器中存储的索引信息同步至分布式数据存储系统中的其他查询服务器中。
具体的,当满足预设的索引信息同步条件时,若分布式数据存储系统中还包括管理服务器,存储服务器可以借助于该分布式数据存储系统中的管理服务器,将索引信息同步至该分布式数据存储系统中的其他查询服务器;当然,存储服务器还可以利用向分布式数据存储系统中的其他查询服务器发送广播信号的方式与其他查询服务器建立通信连接,然后直接将索引信息同步至该分布式数据存储系统中。本发明实施例并不需要对索引信息同步的具体方式进行限定,任何可能的实现方式均可以应用于本发明。
步骤S114:结束本流程。
应用本发明实施例中的方案,降低了逐一扫描分布式存储系统中的多个存储服务器所耗费的时间,可以由查询服务器通过查询索引信息的方式快速获得待查询数据的查询结果,尤其是当分布式数据存储系统的数据存储容量越大的时候,获得待查询数据的查询结果的速度就会越快。另外,与图1所示的数据查询方法相比,本发明实施例能够将分布式数据存储系统中的某一查询服务器中的索引信息同步到该系统中的其他查询服务器中,使得该分布式数据存储系统能够根据该系统中的查询服务器的运行情况,选择合适的查询服务器来执行本方案中的各个步骤。
图5为本发明实施例提供的一种数据查询装置的结构示意图,应用于分布式数据存储系统中基于结构化查询语言SQL的查询服务器,其中,分布式数据存储系统包括至少一个查询服务器和至少一个存储服务器,查询服务器用于存储分布式数据存储系统中各个存储服务器中已存储的数据的索引信息,索引信息中至少包括:数据的标识和该数据对应的预设字段的字段值,该装置可以包括:
通信连接建立模块210,用于接收客户端发送的连接请求后,建立与客户端之间的通信连接;
查询请求接收模块220,用于接收客户端发送的针对待查询数据的基于SQL语句的查询请求,其中,查询请求中携带待查询字段的标识、待查询字段的字段值、针对待查询字段的查询条件以及待查询字段之间的查询关系;
字段判断模块230,用于判断查询请求中携带的待查询字段的标识对应的待查询字段是否全部为预设字段;
第一数据查询模块240,用于在字段判断模块判断为是的情况下,根据查询请求中携带的待查询字段的标识、待查询字段的字段值在该查询服务器中已存储的索引信息中进行查询,获得符合针对待查询字段的查询条件和待查询字段之间的查询关系的索引信息,并根据所获得的索引信息生成查询结果。
在本发明的一种具体实施例中,参见图6,该装置还可以包括:第二数据查询模块250,其中,第二数据查询模块250可以包括:第一查询结果获得子模块、第二查询结果获得子模块和第三查询结果获得子模块;其中,
第一查询结果获得子模块,用于在字段判断模块判断为否的情况下,根据待查询字段中第一目标字段的标识及其字段值,在该查询服务器中已存储的索引信息中进行查询,获得符合第一目标字段之间的查询关系的索引信息,并根据所获得的索引信息生成第一查询结果。
其中,第一目标字段为待查询字段中属于预设字段的字段。
第二查询结果获得子模块,用于根据待查询字段中第二目标字段的标识及其字段值,在存储服务器中进行查询,获得符合待查询字段中不属于预设字段的字段之间的查询关系的第二查询结果。
其中,第二目标字段为待查询字段中属于预设字段的字段。
第三查询结果获得子模块,用于根据第一查询结果和第二查询结果,按照查询请求中携带的针对待查询字段的查询条件和待查询字段之间的查询关系,获得与查询请求相对应的查询结果。
在本发明的另一种具体实施例中,参见图7,该装置还可以包括:第三数据查询模块260,其中,第三数据查询模块可以包括:第四查询结果获得子模块、查询请求发送子模块和第五查询结果获得子模块。
第四查询结果获得子模块,用于在字段判断模块判断为否的情况下,根据待查询字段中第一目标字段的标识及其字段值,在该查询服务器中已存储的索引信息中进行查询,获得符合第一目标字段之间的查询关系的索引信息,并根据所获得的索引信息生成第三查询结果。
其中,第一目标字段为待查询字段中属于预设字段的字段。
查询请求发送子模块,用于根据第三查询结果、待查询字段中第二目标字段的标识及其字段值,向存储服务器发送数据查询请求,以使得存储服务器根据数据查询请求在存储服务器中进行查询。
其中,第二目标字段为待查询字段中属于预设字段的字段。
第五查询结果获得子模块,用于接收存储服务器反馈的查询结果,并根据所接收的查询结果获得与查询请求相对应的查询结果。
在本发明的另一种具体实施例中,参见图8,在分布式数据存储系统中包括两个以上查询服务器时,该装置还可以包括:同步条件判断模块270和索引信息同步模块280;其中,
同步条件判断模块270,用于判断是否满足预设的索引信息同步条件;
索引信息同步模块280,用于在同步条件判断模块的判断结果为是的情况下,将该查询服务器中存储的索引信息同步至分布式数据存储系统中的其他查询服务器中。
需要说明的是,针对图5至图8所示的数据查询装置而言,分布式数据存储系统中的查询服务器,查询服务器,可以包括:多个物理服务器。
应用本发明实施例中的方案,降低了逐一扫描分布式存储系统中的多个存储服务器所耗费的时间,可以由查询服务器通过查询索引信息的方式快速获得待查询数据的查询结果,尤其是当分布式数据存储系统的数据存储容量越大的时候,获得待查询数据的查询结果的速度就会越快。
图9为本发明实施例提供的一种分布式数据存储系统的架构示意图,该分布式数据存储系统,可以包括:管理服务器310、至少一个查询服务器320和至少一个存储服务器330;
其中,管理服务器310,用于接收客户端发送的查询服务器获得请求,并根据查询服务器获得请求确定用于响应客户端发送的数据查询请求的查询服务器;
查询服务器320,用于根据权利要求1-5中任一项的数据查询方法响应客户端发送的数据查询请求,进而进行数据查询;
存储服务器330,用于存储客户端上传的数据。
在本发明的一种具体实现方式中,查询服务器320,用于在满足预设的索引信息同步条件的情况下,向管理服务器发送索引信息同步请求;
管理服务器310,用于接收查询服务器发送的索引信息同步请求,并根据索引信息同步请求对其他查询服务器中存储的索引信息进行信息同步处理。
应用本发明实施例中的方案,降低了逐一扫描分布式存储系统中的多个存储服务器所耗费的时间,可以由查询服务器通过查询索引信息的方式快速获得待查询数据的查询结果,尤其是当分布式数据存储系统的数据存储容量越大的时候,获得待查询数据的查询结果的速度就会越快。
对于装置、系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种数据查询方法,其特征在于,应用于分布式数据存储系统中基于结构化查询语言SQL的查询服务器,其中,所述分布式数据存储系统包括至少一个查询服务器和至少一个存储服务器,查询服务器用于存储所述分布式数据存储系统中各个存储服务器中已存储的数据的索引信息,所述索引信息中至少包括:数据的标识和该数据对应的预设字段的字段值,所述方法包括:
接收客户端发送的连接请求后,建立与所述客户端之间的通信连接;
接收所述客户端发送的针对待查询数据的基于SQL语句的查询请求,其中,所述查询请求中携带待查询字段的标识、待查询字段的字段值、针对待查询字段的查询条件以及待查询字段之间的查询关系;
判断所述查询请求中携带的待查询字段的标识对应的待查询字段是否全部为预设字段;
若为是,根据所述查询请求中携带的待查询字段的标识、待查询字段的字段值在该查询服务器中已存储的索引信息中进行查询,获得符合针对待查询字段的查询条件和待查询字段之间的查询关系的索引信息,并根据所获得的索引信息生成查询结果。
2.根据权利要求1所述的方法,其特征在于,在判断得所述查询请求中携带的待查询字段的标识对应的待查询字段不全部为预设字段的情况下,还包括:
根据所述待查询字段中第一目标字段的标识及其字段值,在该查询服务器中已存储的索引信息中进行查询,获得符合所述第一目标字段之间的查询关系的索引信息,并根据所获得的索引信息生成第一查询结果,其中,所述第一目标字段为所述待查询字段中属于所述预设字段的字段;
根据所述待查询字段中第二目标字段的标识及其字段值,在所述存储服务器中进行查询,获得符合所述第二目标字段的第二查询结果,其中,所述第二目标字段为所述待查询字段中属于所述预设字段的字段;
根据所述第一查询结果和所述第二查询结果,按照所述查询请求中携带的针对待查询字段的查询条件和待查询字段之间的查询关系,获得与所述查询请求相对应的查询结果。
3.根据权利要求1所述的方法,其特征在于,在判断得所述查询请求中携带的待查询字段的标识对应的待查询字段不全部为预设字段的情况下,还包括:
根据所述待查询字段中第一目标字段的标识及其字段值,在该查询服务器中已存储的索引信息中进行查询,获得符合所述第一目标字段之间的查询关系的索引信息,并根据所获得的索引信息生成第三查询结果,其中,所述第一目标字段为所述待查询字段中属于所述预设字段的字段;
根据所述第三查询结果、所述待查询字段中第二目标字段的标识及其字段值,向所述存储服务器发送数据查询请求,以使得所述存储服务器根据所述数据查询请求在所述存储服务器中进行查询,其中,所述第二目标字段为所述待查询字段中属于所述预设字段的字段;
接收所述存储服务器反馈的查询结果,并根据所接收的查询结果获得与所述查询请求相对应的查询结果。
4.根据权利要求1所述的方法,其特征在于,在所述分布式数据存储系统中包括两个以上查询服务器时,所述方法还包括:
判断是否满足预设的索引信息同步条件;
若满足,将该查询服务器中存储的索引信息同步至所述分布式数据存储系统中的其他查询服务器中。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述查询服务器,包括:多个物理服务器。
6.一种数据查询装置,其特征在于,应用于分布式数据存储系统中基于结构化查询语言SQL的查询服务器,其中,所述分布式数据存储系统包括至少一个查询服务器和至少一个存储服务器,查询服务器用于存储所述分布式数据存储系统中各个存储服务器中已存储的数据的索引信息,所述索引信息中至少包括:数据的标识和该数据对应的预设字段的字段值,所述装置包括:
通信连接建立模块,用于接收客户端发送的连接请求后,建立与所述客户端之间的通信连接;
查询请求接收模块,用于接收所述客户端发送的针对待查询数据的基于SQL语句的查询请求,其中,所述查询请求中携带待查询字段的标识、待查询字段的字段值、针对待查询字段的查询条件以及待查询字段之间的查询关系;
字段判断模块,用于判断所述查询请求中携带的待查询字段的标识对应的待查询字段是否全部为预设字段;
第一数据查询模块,用于在字段判断模块判断为是的情况下,根据所述查询请求中携带的待查询字段的标识、待查询字段的字段值在该查询服务器中已存储的索引信息中进行查询,获得符合针对待查询字段的查询条件和待查询字段之间的查询关系的索引信息,并根据所获得的索引信息生成查询结果。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:第二数据查询模块,其中,所述第二数据查询模块包括:第一查询结果获得子模块、第二查询结果获得子模块和第三查询结果获得子模块;
所述第一查询结果获得子模块,用于在所述字段判断模块判断为否的情况下,根据所述待查询字段中第一目标字段的标识及其字段值,在该查询服务器中已存储的索引信息中进行查询,获得符合所述第一目标字段之间的查询关系的索引信息,并根据所获得的索引信息生成第一查询结果,其中,所述第一目标字段为所述待查询字段中属于所述预设字段的字段;
所述第二查询结果获得子模块,用于根据所述待查询字段中第二目标字段的标识及其字段值,在所述存储服务器中进行查询,获得符合所述第二目标字段之间的查询关系的第二查询结果,其中,所述第二目标字段为所述待查询字段中属于所述预设字段的字段;
所述第三查询结果获得子模块,用于根据所述第一查询结果和所述第二查询结果,按照所述查询请求中携带的针对待查询字段的查询条件和待查询字段之间的查询关系,获得与所述查询请求相对应的查询结果。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:第三数据查询模块,其中,所述第三数据查询模块包括:第四查询结果获得子模块、查询请求发送子模块和第五查询结果获得子模块;
所述第四查询结果获得子模块,用于在所述字段判断模块判断为否的情况下,根据所述待查询字段中第一目标字段的标识及其字段值,在该查询服务器中已存储的索引信息中进行查询,获得符合所述第一目标字段之间的查询关系的索引信息,并根据所获得的索引信息生成第三查询结果,其中,所述第一目标字段为所述待查询字段中属于所述预设字段的字段;
所述查询请求发送子模块,用于根据所述第三查询结果、所述待查询字段中第二目标字段的标识及其字段值,向所述存储服务器发送数据查询请求,以使得所述存储服务器根据所述数据查询请求在所述存储服务器中进行查询,其中,所述第二目标字段为所述待查询字段中属于所述预设字段的字段;
所述第五查询结果获得子模块,用于接收所述存储服务器反馈的查询结果,并根据所接收的查询结果获得与所述查询请求相对应的查询结果。
9.根据权利要求6所述的装置,其特征在于,在所述分布式数据存储系统中包括两个以上查询服务器时,所述装置还包括:同步条件判断模块和索引信息同步模块;其中,
所述同步条件判断模块,用于判断是否满足预设的索引信息同步条件;
所述索引信息同步模块,用于在所述同步条件判断模块的判断结果为是的情况下,将该查询服务器中存储的索引信息同步至所述分布式数据存储系统中的其他查询服务器中。
10.根据权利要求6-9中任一项所述的装置,其特征在于,所述查询服务器,包括:多个物理服务器。
11.一种分布式数据存储系统,其特征在于,所述分布式数据存储系统,包括:管理服务器、至少一个查询服务器和至少一个存储服务器;其中,
所述管理服务器,用于接收客户端发送的查询服务器获得请求,并根据所述查询服务器获得请求确定用于响应客户端发送的数据查询请求的查询服务器;
所述查询服务器,用于根据权利要求1-5中任一项所述的数据查询方法响应所述客户端发送的数据查询请求,进而进行数据查询;
所述存储服务器,用于存储客户端上传的数据。
12.根据权利要求11所述的系统,其特征在于,
所述查询服务器,用于在满足预设的索引信息同步条件的情况下,向所述管理服务器发送索引信息同步请求;
所述管理服务器,用于接收所述查询服务器发送的所述索引信息同步请求,并根据所述索引信息同步请求对其他查询服务器中存储的索引信息进行信息同步处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610017764.0A CN106959963B (zh) | 2016-01-12 | 2016-01-12 | 一种数据查询方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610017764.0A CN106959963B (zh) | 2016-01-12 | 2016-01-12 | 一种数据查询方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106959963A CN106959963A (zh) | 2017-07-18 |
CN106959963B true CN106959963B (zh) | 2020-04-28 |
Family
ID=59481411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610017764.0A Active CN106959963B (zh) | 2016-01-12 | 2016-01-12 | 一种数据查询方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106959963B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110020040B (zh) * | 2017-08-17 | 2021-07-06 | 北京京东尚科信息技术有限公司 | 查询数据的方法、装置和系统 |
CN110019192B (zh) * | 2017-09-21 | 2023-10-31 | 阿里云计算有限公司 | 数据库的检索方法及装置 |
CN110704418A (zh) * | 2018-06-21 | 2020-01-17 | 北京果仁宝软件技术有限责任公司 | 区块链信息查询方法、装置和设备 |
CN110968679A (zh) * | 2018-09-29 | 2020-04-07 | 北京国双科技有限公司 | 数据查询方法及装置 |
CN109241092A (zh) * | 2018-10-15 | 2019-01-18 | 北京金山云网络技术有限公司 | 数据查询方法、系统及计算机设备 |
CN109741060B (zh) * | 2018-12-29 | 2021-01-22 | 北京金山安全软件有限公司 | 信息查询系统、方法、装置、电子设备及存储介质 |
CN110532272A (zh) * | 2019-08-30 | 2019-12-03 | 北京东软望海科技有限公司 | 数据查询方法、装置、电子设备及计算机可读存储介质 |
CN111192117B (zh) * | 2020-01-02 | 2024-03-12 | 上海三菱电梯有限公司 | 电梯订单生成方法及其系统 |
CN111698324B (zh) * | 2020-06-12 | 2022-12-06 | 北京奇艺世纪科技有限公司 | 一种数据请求方法、装置及系统 |
CN112434057A (zh) * | 2020-10-12 | 2021-03-02 | 南京江北新区生物医药公共服务平台有限公司 | 一种数据查询方法及装置 |
CN112364014B (zh) * | 2020-10-26 | 2024-01-02 | 北京达佳互联信息技术有限公司 | 数据查询方法、装置、服务器及存储介质 |
CN113760890A (zh) * | 2020-11-24 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 关系型数据库管理的方法和装置 |
CN112434060A (zh) * | 2020-12-09 | 2021-03-02 | 北京有竹居网络技术有限公司 | 数据查询方法及系统 |
CN112269806B (zh) * | 2020-12-11 | 2021-03-19 | 深圳市房多多网络科技有限公司 | 数据查询方法、装置、设备以及计算机存储介质 |
CN113268502A (zh) * | 2020-12-23 | 2021-08-17 | 上海右云信息技术有限公司 | 一种用于提供信息的方法与设备 |
CN113612735B (zh) * | 2021-07-15 | 2022-09-02 | 中国联合网络通信集团有限公司 | 安全存储系统 |
WO2023050403A1 (zh) * | 2021-09-30 | 2023-04-06 | 西门子股份公司 | 数据查询的方法、数据服务和计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727465A (zh) * | 2008-11-03 | 2010-06-09 | 中国移动通信集团公司 | 分布式列存储数据库索引建立、查询方法及装置与系统 |
CN103631909A (zh) * | 2013-11-26 | 2014-03-12 | 烽火通信科技股份有限公司 | 对大规模结构化和非结构化数据联合处理的系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10242059B2 (en) * | 2014-05-30 | 2019-03-26 | International Business Machines Corporation | Distributed execution of expressions in a query |
-
2016
- 2016-01-12 CN CN201610017764.0A patent/CN106959963B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727465A (zh) * | 2008-11-03 | 2010-06-09 | 中国移动通信集团公司 | 分布式列存储数据库索引建立、查询方法及装置与系统 |
CN103631909A (zh) * | 2013-11-26 | 2014-03-12 | 烽火通信科技股份有限公司 | 对大规模结构化和非结构化数据联合处理的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106959963A (zh) | 2017-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106959963B (zh) | 一种数据查询方法、装置及系统 | |
CN109299102B (zh) | 一种基于Elastcisearch的HBase二级索引系统及方法 | |
CN108460041B (zh) | 数据的处理方法和装置 | |
CN109299157B (zh) | 一种分布式大单表的数据导出方法及装置 | |
CN108932313B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111008521B (zh) | 生成宽表的方法、装置及计算机存储介质 | |
CN111339171B (zh) | 数据查询的方法、装置及设备 | |
US11216516B2 (en) | Method and system for scalable search using microservice and cloud based search with records indexes | |
CN106815258B (zh) | 一种数据存储方法和协调节点 | |
CN109299101B (zh) | 数据检索方法、装置、服务器和存储介质 | |
CN112506964B (zh) | 数据查询方法、系统及计算机可读存储介质 | |
CN111858760B (zh) | 一种异构数据库的数据处理方法及装置 | |
CN108376064B (zh) | 规则引擎系统及规则引擎的相关方法 | |
CN112800287A (zh) | 基于图数据库的全文索引方法和系统 | |
CN108874950B (zh) | 一种基于er关系的数据分布存储方法及装置 | |
CN106202254A (zh) | 一种查询方法及数据查询系统 | |
CN111427931A (zh) | 分布式查询引擎及其查询关系型数据库的方法 | |
CN108255955B (zh) | 一种数据处理方法及装置 | |
CN112699183A (zh) | 数据处理方法、系统、可读存储介质及计算机设备 | |
JPWO2017077616A1 (ja) | データベースシステム、トランザクション管理ノード、方法およびプログラム | |
CN116881288A (zh) | 一种数据查询方法、装置及设备 | |
CN107291875B (zh) | 一种基于元数据图的元数据组织管理方法和系统 | |
CN112579633A (zh) | 一种数据检索方法、装置、设备及存储介质 | |
CN115658750A (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN108206933B (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 |