CN108920614A - 在线查询数据的方法、装置及*** - Google Patents
在线查询数据的方法、装置及*** Download PDFInfo
- Publication number
- CN108920614A CN108920614A CN201810688094.4A CN201810688094A CN108920614A CN 108920614 A CN108920614 A CN 108920614A CN 201810688094 A CN201810688094 A CN 201810688094A CN 108920614 A CN108920614 A CN 108920614A
- Authority
- CN
- China
- Prior art keywords
- data
- inquiry
- tree
- query
- web platform
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种在线查询数据的方法、装置及***,该方法包括:接收分析人员利用预先建立的web平台发出的查询请求;对接收到的查询请求进行语法解析得到对应的语法树,基于语法树定制与查询请求对应的查询规则;根据查询规则从预置数据库中查询相应的查询数据,以将查询到的查询数据反馈至web平台。由此,本发明实施例的在线查询数据的方式可以支持自定义的多种查询语法,能够灵活的基于语法树定制与查询请求对应的查询规则,并根据查询规则从数据库中查询到所需要的查询数据。并且,本方案还有效地提高了在线查询数据的查询效率。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种在线查询数据的方法、装置及***。
背景技术
随着大数据技术的不断发展,基于互联网的数据查询功能得到了越来越广泛的应用。现有技术中,当专业的运营分析人员从存储有大量数据的数据库中查询数据时,通常需要先解析出用户的查询请求,即了解用户的查询意图,进而实现数据的查询。
但是,目前在数据查询过程中,采用特定语法解析用户查询请求的方式不能灵活的支持自定义的查询语法,也不能很好的满足查询的多样性和灵活性要求。因此,如何更加高效且灵活的实现数据的查询是目前面临的一个重要的技术问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的在线查询数据的方法、装置及***。
依据本发明的一方面,提供了一种在线查询数据的方法,包括:
接收分析人员通过预先建立的web平台发出的查询请求;
对接收到的查询请求进行语法解析得到对应的语法树,基于所述语法树定制与所述查询请求对应的查询规则;
根据所述查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至所述web平台。
可选地,接收分析人员通过预先建立的web平台发出的查询请求,包括:基于http协议接收分析人员通过预先建立的web平台发出的http查询请求。
可选地,基于所述语法树定制与所述查询请求对应的查询规则,包括:采用优化器对所述语法树进行优化;
根据优化后的语法树生成对应的查询计划树,其中,所述查询计划树中包括多个树节点,所述树节点对应于所述查询规则的查询步骤。
可选地,根据所述查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至所述web平台,包括:
按照所述查询计划树中树节点对应的查询步骤的先后顺序,依次从所述预置数据库中查询相应的查询数据;
在依据所述查询计划树中全部的树节点查询数据完毕后,整合查询到的查询数据,将整合后的查询数据反馈至所述web平台。
可选地,根据所述查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至所述web平台,包括:
按照所述查询计划树中树节点对应的查询步骤的先后顺序,依次从所述预置数据库中查询相应的查询数据;
在根据任一树节点对应的查询步骤查询到相应的查询数据后,将当前查询到的查询数据反馈至所述web平台。
可选地,根据所述查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至所述web平台,包括:
从所述查询计划树中选取多个树节点;
依据选取的多个树节点并行的从所述预置数据库中查询相应的查询数据;
在依据所述查询计划树中全部的树节点查询数据完毕后,整合查询到的查询数据,将整合后的查询数据反馈至所述web平台。
可选地,从所述查询计划树中选取多个树节点,包括:
从所述查询计划树中按照树节点对应的查询步骤的先后顺序选取多个树节点;和/或
从所述查询计划树中随机选取多个树节点。
可选地,还包括:在根据所述查询规则从预置数据库中查询到相应的查询数据后,缓存查询到的查询数据和对应的查询请求;
当再次接收到分析人员通过预先建立的web平台发出的相同查询请求时,直接获取缓存的与该查询请求对应的查询数据。
可选地,将查询到的查询数据反馈至所述web平台,包括:
对查询到的查询数据进行格式转换,得到格式统一的查询数据;
将格式统一后的查询数据反馈至所述web平台。
依据本发明的另一方面,还提供了一种在线查询数据的装置,包括
接收模块,适于接收分析人员通过预先建立的web平台发出的查询请求;
解析模块,适于对接收到的查询请求进行语法解析得到对应的语法树,基于所述语法树定制与所述查询请求对应的查询规则;
查询模块,适于根据所述查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至所述web平台。
可选地,所述接收模块还适于:基于http协议接收分析人员通过预先建立的web平台发出的http查询请求。
可选地,所述解析模块还适于:采用优化器对所述语法树进行优化;
根据优化后的语法树生成对应的查询计划树,其中,所述查询计划树中包括多个树节点,所述树节点对应于所述查询规则的查询步骤。
可选地,所述查询模块还适于:按照所述查询计划树中树节点对应的查询步骤的先后顺序,依次从所述预置数据库中查询相应的查询数据;
在依据所述查询计划树中全部的树节点查询数据完毕后,整合查询到的查询数据,将整合后的查询数据反馈至所述web平台。
可选地,所述查询模块还适于:按照所述查询计划树中树节点对应的查询步骤的先后顺序,依次从所述预置数据库中查询相应的查询数据;
在根据任一树节点对应的查询步骤查询到相应的查询数据后,将当前查询到的查询数据反馈至所述web平台。
可选地,所述查询模块还适于:从所述查询计划树中选取多个树节点;
依据选取的多个树节点并行的从所述预置数据库中查询相应的查询数据;
在依据所述查询计划树中全部的树节点查询数据完毕后,整合查询到的查询数据,将整合后的查询数据反馈至所述web平台。
可选地,所述查询模块还适于:从所述查询计划树中按照树节点对应的查询步骤的先后顺序选取多个树节点;和/或从所述查询计划树中随机选取多个树节点。
可选地,所述装置还包括:缓存模块,适于在根据所述查询规则从预置数据库中查询到相应的查询数据后,缓存查询到的查询数据和对应的查询请求;
当所述接收模块再次接收到分析人员通过预先建立的web平台发出的相同查询请求时,直接获取缓存的与该查询请求对应的查询数据。
可选地,所述查询模块还适于:
对查询到的查询数据进行格式转换,得到格式统一的查询数据;
将格式统一后的查询数据反馈至所述web平台。
依据本发明的再一方面,还提供了一种在线查询数据的***,包括web平台、上文任一实施例所述的在线查询数据的装置以及预置数据库,其中,
所述web平台,接收由分析人员输入的查询请求,且将所述查询请求发送至所述在线查询数据的装置;
所述在线查询数据的装置,接收来自所述web平台的查询请求,对该查询请求进行语法解析得到对应的语法树,基于所述语法树定制与所述查询请求对应的查询规则;
所述在线查询数据的装置,根据所述查询规则从预置数据库中查询相应的查询数据,并将查询到的查询数据反馈至所述web平台。
依据本发明的另一方面,还提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行上文任一实施例所述的在线查询数据的方法。
依据本发明的再一方面,还提供了一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行上文任一实施例所述的在线查询数据的方法。
在本发明实施例中,当接收到分析人员利用预先建立的web平台发出的查询请求后,先对接收到的查询请求进行语法解析得到对应的语法树,然后基于语法树定制与查询请求对应的查询规则,进而根据查询规则从预置数据库中查询相应的查询数据,以将查询到的查询数据反馈至web平台。由此,本发明实施例的在线查询数据的方式通过对查询请求进行语法解析得到对应的语法树,以支持自定义的多种查询语法,即实现了自有的查询语法,进而可以灵活的基于语法树定制与查询请求对应的查询规则,并根据查询规则从数据库中查询到所需要的查询数据。进一步地,本方案还有效地提高了在线查询数据的查询效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的在线查询数据的方法的流程示意图;
图2示出了根据本发明一个实施例的在线查询数据的检索引擎设计框架示意图;
图3示出了根据本发明一个实施例的在线查询数据的装置的结构示意图;
图4示出了根据本发明另一个实施例的在线查询数据的装置的结构示意图;以及
图5示出了根据本发明一个实施例的在线查询数据的***的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为解决上述技术问题,本发明实施例提供了一种在线查询数据的方法。图1示出了根据本发明一个实施例的在线查询数据的方法的流程示意图。参见图1,该方法至少包括步骤S102至步骤S106。
步骤S102,接收分析人员通过预先建立的web平台发出的查询请求。
在该步骤中,查询请求的类型可以是http查询请求,因此,本发明方案可以基于http协议接收分析人员通过预先建立的web平台发出的http查询请求。当然,查询请求还可以是其他的类型,对于不同类型的查询请求,采用的传输协议也不同,本发明实施例对查询请求的类型和采用的传输协议类型不做具体的限定。
另外,本发明中的查询请求可以是分析人员发出的关于查询日志的查询请求。
步骤S104,对接收到的查询请求进行语法解析得到对应的语法树,基于语法树定制与查询请求对应的查询规则。
该步骤中的查询规则实际上是基于语法树定制的与查询请求对应的查询计划,即根据查询请求计划出相应的查询步骤,先查询哪一步,再查询哪一步,以有效地提高查询效率。
步骤S106,根据查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至web平台。
在该步骤中,查询数据反馈至web平台后,可以在web平台中的显示设备上进行可视化展示,分析人员通过该web平台可以看到反馈的查询数据,以进行相应的分析和使用。
本发明实施例的在线查询数据的方式通过对查询请求进行语法解析得到对应的语法树,以支持自定义的多种查询语法,即实现了自有的查询语法,进而可以灵活的基于语法树定制与查询请求对应的查询规则,并根据查询规则从数据库中查询到所需要的查询数据。进一步地,本方案还有效地提高了在线查询数据的查询效率。
参见上文步骤S104,在本发明一实施例中,基于语法树定制与查询请求对应的查询规则的时候,为了保证语法树的准确性,还可以采用相应的优化器对语法树进行优化,进而,根据优化后的语法树生成对应的查询计划树,查询计划树中包括多个树节点,树节点对应于查询规则的查询步骤。查询计划树可以有效地将查询计划清楚、简洁的体现出来,有助于高效、准确地实现数据查询。该实施例中,对语法树进行优化的优化器可以采用plain优化器,还可以采用其他类型的优化器,本发明实施例对此不做具体的限定。
参见上文步骤S104和S106,根据优化后的语法树生成对应的查询计划树后,由于查询计划树中包含有多个树节点,因此在根据查询计划树从预置数据库中查询相应的查询数据的过程中,可以采用多种方式进行数据查询。
方式一
按照查询计划树中树节点对应的查询步骤的先后顺序,依次从预置数据库中查询相应的查询数据。进而,在依据查询计划树中全部的树节点查询数据完毕后,整合查询到的查询数据,将整合后的查询数据反馈至web平台。
例如,生成的查询计划树中包括三个树节点,那么,树节点1对应查询步骤1,树节点2对应查询步骤2,树节点3对应查询步骤3,按照查询步骤1、步骤2、步骤3的顺序,即根据树节点1至3的顺序从预置数据库中查询相应的查询数据。当三个树节点均实现数据的查询之后,将查询到的数据进行整合,以整合成与查询请求对应的数据内容,并将整合后的查询数据反馈至web平台中。
方式二
按照查询计划树中树节点对应的查询步骤的先后顺序,依次从预置数据库中查询相应的查询数据。进而,在根据任一树节点对应的查询步骤查询到相应的查询数据后,将当前查询到的查询数据反馈至web平台。
该方式二与方式一的不同之处在于,方式二并非是在依据查询计划树中全部的树节点查询数据完毕后将查询数据返回,而是在依据任一个树节点查询到数据之后,将当前查询到的数据直接反馈至web平台,这样也可以有效地提高分析人员的数据查询体验,有助于分析人员及时查看到查询数据。
方式三
首先,从查询计划树中选取多个树节点。然后,依据选取的多个树节点并行的从预置数据库中查询相应的查询数据。最后,在依据查询计划树中全部的树节点查询数据完毕后,整合查询到的查询数据,将整合后的查询数据反馈至web平台。
在该方式中,从查询计划树中选取多个树节点可以是从查询计划树中按照树节点对应的查询步骤的先后顺序选取多个树节点,例如,按照查询步骤的先后顺序选取2个或3个或4个等数量的树节点,针对选取的多个树节点并行的进行数据查询。当然,还可以从查询计划树中随机选取多个树节点。另外,还可以依据查询计划树中查询步骤的先后顺序选取指定数量的树节点,并且随机选取一些树节点。本发明实施例对树节点的选取数量不做具体的限定。
上述实施例仅仅是示意性的,根据查询计划树从预置数据库中查询相应的查询数据的方式还可以是其他的方式。
在本发明实施例中,预置数据库实际上可以包括一个,也可以包括多个,而每个数据库可以分别存储不同类型的数据。
例如,预置数据库可以包括Poseidon数据库、quick_table数据库、tidb数据库、mysql数据库,下面对各数据库中的存储对象进行介绍。
Poseidon数据库,主要提供万亿级数据,数据根据分词进行精准检索,通过该数据库能够根据预先建好的索引快速检索出万亿级数据中的原始日志,索引起来也比较灵活。当业务分析人员发出的查询请求为日志查询请求时,可以从该数据库中查询相关的日志内容。
quick_table数据库,主要为一些频繁查询的数据提供快速检索,如样本(万亿级)每天的查询量、首次出现时间等,设计目标秒级检索。
该数据库实际上是对Poseidon数据库的一个互补,poseidon数据库虽然具有索引灵活,存储数据量大等等优点,但其依赖QPS(Query Per Second,每秒查询率)很低的hadoop组件,若要检索出一条数据通常需要倒查很多层索引,当需要查询的数据只与样本的MD5(Message-Digest Algorithm 5,信息摘要算法5)和sha1(Secure Hash Algorithm,安全哈希算法)有关时,其实质仅涉及到单纯的kv(Key-Value)查询需求,而不需要那么灵活的索引。例如,一些用户(如白名单用户)需要PV(Page View,页面浏览量)、UV(UniqueVisitor,独立访问用户数)接口满足自动获取和批量(每次1000)的使用场景时,采用Poseidon数据库当前无法支持该应用。因此,引入quick table数据库在一定程度上可以加快一些字段查询的索引速度。
tidb数据库,是一个开源的分布式mysql,主要存储一些实时更新的数据。例如,根据某些特定条件过滤出来的样本集合、最近一段时间(如1小时)的样本的所有属性信息。
Mysql数据库,主要存储一些数据的元数据信息。
为了更加清楚的体现本方案,现以一个具体实施例对本发明的在线查询数据的实现过程和过程中的各步骤进行介绍,该查询过程可以基于一个类SQL(Structured QueryLanguage,结构化查询语言)的检索引擎实现,该检索引擎接收来自Web平台发送的查询请求,并对查询请求进行处理以及获取对应的查询数据。参见图2,检索引擎可以包括数据层smart、驱动层GDO、Model层。
步骤1,用户(即分析人员)通过Web平台发送的查询请求(如http请求),根据查询请求的相关处理参数对查询请求进行词法解析以确定相应的查询条件,如解析出的查询条件为:需要查询md5为xxx,path为xxx的样本出来。
步骤2,将查询条件传输到数据层smart,数据层对查询条件进行语法解析得到语法树,并根据语法树定制与查询请求对应的查询计划(即前文中的查询规则),查询计划可以是由物理的查询计划树的形式体现。此处,可以采用语法解析器对查询条件进行语法解析,并采用例如plain优化器等类型的优化器对语法树进行优化。该步骤即生成数据索引。
在该步骤中,数据层smart还可以实现并发Exec,即通过并发访问数据库来提高查询效率,如上文介绍到的数据查询方式三中的从查询计划树中选取多个树节点,依据选取的多个树节点并行的从预置数据库中查询相应的查询数据的过程。
另外,缓存也是提高查询效率的一种有效的手段,通过将之前查询过的数据缓存起来,下一次访问时不用再次访问数据库,而是直接获取缓存的数据,从而可以加快查询速度。具体的,当根据查询规则从预置数据库中查询到相应的查询数据后,可以缓存查询到的查询数据和对应的查询请求。进而,当分析人员再次通过预先建立的web平台发出的相同查询请求时,可以直接获取之前缓存的与该查询请求对应的查询数据,而无需从预置数据库中获取查询数据,大大节约了查询数据的工作量和网络资源。
步骤3,驱动层GDO基于数据层smart生成的查询计划树从预置数据库中获取相应的查询数据,当获取到查询数据之后,会将获取到的查询数据传输至Model层,由Model层对接收到的查询数据的格式进行统一。
驱动层GDO获取数据可以通过从Poseidon数据库中进行数据查询并获取,可以基于http查询请求依据其携带的URL进行URL接口查询,也可以基于Protobuf(ProtocolBuffers)查询并获取数据,其中,Protobuf是一种数据描述语言,能够将结构化数据序列化,可用于数据存储、通信协议等方面。驱动层GDO通过从不同的数据库中获取查询数据,其可以对接不同的数据层。
在该步骤中,若SDK作为数据库的封装形式,那么当驱动层GDO从预置数据库中获取相应的查询数据时,可以通过调用数据库外部的SDK(Software Development Kit,软件开发工具包)来查询数据。
步骤4,Model层可以对接收到的来自驱动层GDO的查询数据的格式统一成指定格式,如统一成JSON格式,并将指定格式的查询数据输出至数据层smart,由数据层将查询到的数据再反馈给用户。
该步骤中,Model层在对查询数据进行格式统一之前还可以进行字段筛选,如从预先存储在数据库的信息表中筛选出输出和计算所需的字段。信息表包括Proc Chain进程链信息表、Network网络样本信息表、Proc Behavior进程行为表、Basic样本基本信息表、Cloud Info样本云查信息表(包括样本云查相关的信息,如文件路径,历史级别等)、Dropped Files文件释放信息表、ScanLog扫描信息表、Upload文件上传溯源信息表等等。其中,Basic样本基本信息表中包括样本关键信息,如历史查询量、首次出现时间、级别,该表可以快速了解一个样本的重要程度,有助于实现数据的快速查询,通常情况下这部分数据来自quick table数据库。信息表还可以包括其他类型的信息表,并不局限于图2中示出的各个信息表。
此外,Model层在对查询数据进行格式统一之后,还可以采用相应的算法对格式统一后的数据进行过滤或者合并,进而将过滤或合并后的数据输出至数据层。此处相应的算法可以采用group聚合、join连接等运算方法。
需要说明的是,图2的数据库中虽然仅仅示出了Poseidon数据库和Stored数据库,实际上还可以包括上文介绍到的其他类型的数据库,此处不做具体的限定。
在本发明一实施例中,还提供了一种数据处理***,该***可以实现对海量离线数据处理以及在线数据处理,并将处理后的数据存储至存储组件中对应的预置数据库中。其中,离线数据和在线数据指的可以是日志数据。
在离线数据提取流程中,首先,采用分布式调度器从文件***(如hdfs、S3等)中调度海量的日志,并基于MapReduce模型采用Spark引擎提取日志的元数据。然后,采用数据处理框架(如patent框架)对调度的日志和日志元数据进行聚合计算得到特定格式(如json格式)的日志(即图3的中间数据),并且对特定格式的日志归类合并生成对应的虚拟表,以及对元数据统计得到统计信息。最后,将虚拟表保存在poseidon数据库中,并将统计信息保存在mysql数据库中。此处的虚拟表对应于上文中提及的信息表,其还可以包括specimen_detail,specimen详细信息表、specimen_cloud_detail,specimen云查静态属性信息表、scan_info扫描信息表、file_relations文件关系表、specimen已收集样本信息表、pe_info可执行信息表(包括样本可执行信息相关的表)等等。
在实时数据提取流程中,当用户进行查询服务(如杀毒、样本上传、url查询、dns(Domain Name System,域名***)查询等服务时),可以利用实时日志处理集群从查询服务的查询结果中实时抽取产生的日志,且将抽取的日志发送至预先创建的nsq(实时分布式消息传递平台)消息队列中,进而特征提取集群从nsq消息队列中消费日志,以解析并提取出日志的特征数据,进而,将抽取的日志和提取的日志特征数据一起存储在tidb数据库中。其中,日志的特征数据可以包括日志的元数据信息。
在该实施例中,存储组件中还可以包括builder集群,该builder集群可以读取将特定格式的日志转换为其他格式日志的转换指令,进而根据读取到的转换指令对特定格式的日志进行格式转换,最后,将格式转换后的日志存储至存储组件中的预置数据库中。例如,数据处理设备对离线日志聚合计算得到json格式的日志,builder集群在接收到将json格式的日志转换为其他格式的指令后,对json格式的日志进行格式转换,以转换为指定的其他格式,并将其他格式的日志存储至quick_table数据库中。
基于同一发明构思,本发明实施例还提供了一种在线查询数据的装置,图3示出了根据本发明一个实施例的在线查询数据的装置的结构示意图。参见图3,在线查询数据的装置300包括接收模块310、解析模块320以及查询模块330。
现介绍本发明实施例的基于在线查询数据的装置300的各组成或器件的功能以及各部分间的连接关系:
接收模块310,适于接收分析人员通过预先建立的web平台发出的查询请求;
解析模块320,与接收模块310耦合,适于对接收到的查询请求进行语法解析得到对应的语法树,基于语法树定制与查询请求对应的查询规则;
查询模块330,与解析模块320耦合,适于根据查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至web平台。
在本发明一实施例中,接收模块310还适于,基于http协议接收分析人员通过预先建立的web平台发出的http查询请求。
在本发明一实施例中,解析模块320还适于,采用优化器对语法树进行优化,并根据优化后的语法树生成对应的查询计划树,其中,查询计划树中包括多个树节点,树节点对应于查询规则的查询步骤。
在本发明一实施例中,查询模块330还适于,按照查询计划树中树节点对应的查询步骤的先后顺序,依次从预置数据库中查询相应的查询数据,进而,在依据查询计划树中全部的树节点查询数据完毕后,整合查询到的查询数据,将整合后的查询数据反馈至web平台。
在本发明一实施例中,查询模块330还适于,按照查询计划树中树节点对应的查询步骤的先后顺序,依次从预置数据库中查询相应的查询数据,进而,在根据任一树节点对应的查询步骤查询到相应的查询数据后,将当前查询到的查询数据反馈至web平台。
在本发明一实施例中,查询模块330还适于,从查询计划树中选取多个树节点,依据选取的多个树节点并行的从预置数据库中查询相应的查询数据,在依据查询计划树中全部的树节点查询数据完毕后,整合查询到的查询数据,将整合后的查询数据反馈至web平台。
在本发明一实施例中,查询模块330还适于,从查询计划树中按照树节点对应的查询步骤的先后顺序选取多个树节点;和/或从查询计划树中随机选取多个树节点。
在本发明一实施例中,查询模块330还适于,对查询到的查询数据进行格式转换,得到格式统一的查询数据,并将格式统一后的查询数据反馈至web平台。
本发明实施例还提供了另一种在线查询数据的装置,参见图4,在线查询数据的装置300除了包括接收模块310、解析模块320以及查询模块330外,还包括缓存模块340。
缓存模块340,与查询模块330耦合,适于在根据查询规则从预置数据库中查询到相应的查询数据后,缓存查询到的查询数据和对应的查询请求。当接收模块310再次接收到分析人员通过预先建立的web平台发出的相同查询请求时,直接获取缓存的与该查询请求对应的查询数据。
基于同一发明构思,本发明还提供了一种在线查询数据的***,参见图5,在线查询数据的***500包括web平台510、上文任一实施例中的在线查询数据的装置300以及预置数据库520,其中,web平台510接收由分析人员输入的查询请求,且将查询请求发送至在线查询数据的装置300;在线查询数据的装置300接收来自web平台的查询请求后,对该查询请求进行语法解析得到对应的语法树,基于语法树定制与查询请求对应的查询规则。进而在线查询数据的装置300根据查询规则从预置数据库520中查询相应的查询数据,并将查询到的查询数据反馈至web平台510。其中,具体的在线查询数据过程可以参见上文实施例,此处不做具体的赘述。
本发明还提供了还提供了一种计算机存储介质,计算机存储介质存储有计算机程序代码,当计算机程序代码在计算设备上运行时,导致计算设备执行上文任一实施例中的在线查询数据的方法。
另外,本发明还提供了一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当计算机程序代码被处理器运行时,导致计算设备执行上文任一实施例中的在线查询数据的方法。
根据上述任意一个优选实施例或多个优选实施例的组合,本发明实施例能够达到如下有益效果:
在本发明实施例中,当接收到分析人员利用预先建立的web平台发出的查询请求后,先对接收到的查询请求进行语法解析得到对应的语法树,然后基于语法树定制与查询请求对应的查询规则,进而根据查询规则从预置数据库中查询相应的查询数据,以将查询到的查询数据反馈至web平台。由此,本发明实施例的在线查询数据的方式通过对查询请求进行语法解析得到对应的语法树,以支持自定义的多种查询语法,即实现了自有的查询语法,进而可以灵活的基于语法树定制与查询请求对应的查询规则,并根据查询规则从数据库中查询到所需要的查询数据。进一步地,本方案还有效地提高了在线查询数据的查询效率。
所属领域的技术人员可以清楚地了解到,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,为简洁起见,在此不另赘述。
另外,在本发明各个实施例中的各功能单元可以物理上相互独立,也可以两个或两个以上功能单元集成在一起,还可以全部功能单元都集成在一个处理单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件或者固件的形式实现。
本领域普通技术人员可以理解:所述集成的功能单元如果以软件的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干指令,用以使得一台计算设备(例如个人计算机,服务器,或者网络设备等)在运行所述指令时执行本发明各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM),磁碟或者光盘等各种可以存储程序代码的介质。
或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络设备等的计算设备)来完成,所述程序指令可以存储于一计算机可读取存储介质中,当所述程序指令被计算设备的处理器执行时,所述计算设备执行本发明各实施例所述方法的全部或部分步骤。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:在本发明的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本发明的保护范围。
本发明实施例提供了A1、一种在线查询数据的方法,包括:
接收分析人员通过预先建立的web平台发出的查询请求;
对接收到的查询请求进行语法解析得到对应的语法树,基于所述语法树定制与所述查询请求对应的查询规则;
根据所述查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至所述web平台。
A2、根据A1所述的方法,其中,接收分析人员通过预先建立的web平台发出的查询请求,包括:
基于http协议接收分析人员通过预先建立的web平台发出的http查询请求。
A3、根据A1或A2所述的方法,其中,基于所述语法树定制与所述查询请求对应的查询规则,包括:
采用优化器对所述语法树进行优化;
根据优化后的语法树生成对应的查询计划树,其中,所述查询计划树中包括多个树节点,所述树节点对应于所述查询规则的查询步骤。
A4、根据A3所述的方法,其中,根据所述查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至所述web平台,包括:
按照所述查询计划树中树节点对应的查询步骤的先后顺序,依次从所述预置数据库中查询相应的查询数据;
在依据所述查询计划树中全部的树节点查询数据完毕后,整合查询到的查询数据,将整合后的查询数据反馈至所述web平台。
A5、根据A3所述的方法,其中,根据所述查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至所述web平台,包括:
按照所述查询计划树中树节点对应的查询步骤的先后顺序,依次从所述预置数据库中查询相应的查询数据;
在根据任一树节点对应的查询步骤查询到相应的查询数据后,将当前查询到的查询数据反馈至所述web平台。
A6、根据A3所述的方法,其中,根据所述查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至所述web平台,包括:
从所述查询计划树中选取多个树节点;
依据选取的多个树节点并行的从所述预置数据库中查询相应的查询数据;
在依据所述查询计划树中全部的树节点查询数据完毕后,整合查询到的查询数据,将整合后的查询数据反馈至所述web平台。
A7、根据A6所述的方法,其中,从所述查询计划树中选取多个树节点,包括:
从所述查询计划树中按照树节点对应的查询步骤的先后顺序选取多个树节点;和/或
从所述查询计划树中随机选取多个树节点。
A8、根据A1或A2所述的方法,其中,还包括:
在根据所述查询规则从预置数据库中查询到相应的查询数据后,缓存查询到的查询数据和对应的查询请求;
当再次接收到分析人员通过预先建立的web平台发出的相同查询请求时,直接获取缓存的与该查询请求对应的查询数据。
A9、根据A1或A2所述的方法,其中,将查询到的查询数据反馈至所述web平台,包括:
对查询到的查询数据进行格式转换,得到格式统一的查询数据;
将格式统一后的查询数据反馈至所述web平台。
B10、一种在线查询数据的装置,包括
接收模块,适于接收分析人员通过预先建立的web平台发出的查询请求;
解析模块,适于对接收到的查询请求进行语法解析得到对应的语法树,基于所述语法树定制与所述查询请求对应的查询规则;
查询模块,适于根据所述查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至所述web平台。
B11、根据B10所述的装置,其中,所述接收模块还适于:
基于http协议接收分析人员通过预先建立的web平台发出的http查询请求。
B12、根据B10或B11所述的装置,其中,所述解析模块还适于:
采用优化器对所述语法树进行优化;
根据优化后的语法树生成对应的查询计划树,其中,所述查询计划树中包括多个树节点,所述树节点对应于所述查询规则的查询步骤。
B13、根据B12所述的装置,其中,所述查询模块还适于:
按照所述查询计划树中树节点对应的查询步骤的先后顺序,依次从所述预置数据库中查询相应的查询数据;
在依据所述查询计划树中全部的树节点查询数据完毕后,整合查询到的查询数据,将整合后的查询数据反馈至所述web平台。
B14、根据B12所述的装置,其中,所述查询模块还适于:
按照所述查询计划树中树节点对应的查询步骤的先后顺序,依次从所述预置数据库中查询相应的查询数据;
在根据任一树节点对应的查询步骤查询到相应的查询数据后,将当前查询到的查询数据反馈至所述web平台。
B15、根据B12所述的装置,其中,所述查询模块还适于:
从所述查询计划树中选取多个树节点;
依据选取的多个树节点并行的从所述预置数据库中查询相应的查询数据;
在依据所述查询计划树中全部的树节点查询数据完毕后,整合查询到的查询数据,将整合后的查询数据反馈至所述web平台。
B16、根据B15所述的装置,其中,所述查询模块还适于:
从所述查询计划树中按照树节点对应的查询步骤的先后顺序选取多个树节点;和/或
从所述查询计划树中随机选取多个树节点。
B17、根据B10或B11所述的装置,其中,还包括:
缓存模块,适于在根据所述查询规则从预置数据库中查询到相应的查询数据后,缓存查询到的查询数据和对应的查询请求;
当所述接收模块再次接收到分析人员通过预先建立的web平台发出的相同查询请求时,直接获取缓存的与该查询请求对应的查询数据。
B18、根据B10或B11所述的装置,其中,所述查询模块还适于:
对查询到的查询数据进行格式转换,得到格式统一的查询数据;
将格式统一后的查询数据反馈至所述web平台。
C19、一种在线查询数据的***,包括web平台、B10-B18任一项所述的在线查询数据的装置以及预置数据库,其中,
所述web平台,接收由分析人员输入的查询请求,且将所述查询请求发送至所述在线查询数据的装置;
所述在线查询数据的装置,接收来自所述web平台的查询请求,对该查询请求进行语法解析得到对应的语法树,基于所述语法树定制与所述查询请求对应的查询规则;
所述在线查询数据的装置,根据所述查询规则从预置数据库中查询相应的查询数据,并将查询到的查询数据反馈至所述web平台。
D20、一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行A1-A9任一项所述的在线查询数据的方法。
E21、一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行A1-A9任一项所述的在线查询数据的方法。
Claims (10)
1.一种在线查询数据的方法,包括:
接收分析人员通过预先建立的web平台发出的查询请求;
对接收到的查询请求进行语法解析得到对应的语法树,基于所述语法树定制与所述查询请求对应的查询规则;
根据所述查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至所述web平台。
2.根据权利要求1所述的方法,其中,接收分析人员通过预先建立的web平台发出的查询请求,包括:
基于http协议接收分析人员通过预先建立的web平台发出的http查询请求。
3.根据权利要求1或2所述的方法,其中,基于所述语法树定制与所述查询请求对应的查询规则,包括:
采用优化器对所述语法树进行优化;
根据优化后的语法树生成对应的查询计划树,其中,所述查询计划树中包括多个树节点,所述树节点对应于所述查询规则的查询步骤。
4.根据权利要求3所述的方法,其中,根据所述查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至所述web平台,包括:
按照所述查询计划树中树节点对应的查询步骤的先后顺序,依次从所述预置数据库中查询相应的查询数据;
在依据所述查询计划树中全部的树节点查询数据完毕后,整合查询到的查询数据,将整合后的查询数据反馈至所述web平台。
5.根据权利要求3所述的方法,其中,根据所述查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至所述web平台,包括:
按照所述查询计划树中树节点对应的查询步骤的先后顺序,依次从所述预置数据库中查询相应的查询数据;
在根据任一树节点对应的查询步骤查询到相应的查询数据后,将当前查询到的查询数据反馈至所述web平台。
6.根据权利要求3所述的方法,其中,根据所述查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至所述web平台,包括:
从所述查询计划树中选取多个树节点;
依据选取的多个树节点并行的从所述预置数据库中查询相应的查询数据;
在依据所述查询计划树中全部的树节点查询数据完毕后,整合查询到的查询数据,将整合后的查询数据反馈至所述web平台。
7.一种在线查询数据的装置,包括
接收模块,适于接收分析人员通过预先建立的web平台发出的查询请求;
解析模块,适于对接收到的查询请求进行语法解析得到对应的语法树,基于所述语法树定制与所述查询请求对应的查询规则;
查询模块,适于根据所述查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至所述web平台。
8.一种在线查询数据的***,包括web平台、权利要求7所述的在线查询数据的装置以及预置数据库,其中,
所述web平台,接收由分析人员输入的查询请求,且将所述查询请求发送至所述在线查询数据的装置;
所述在线查询数据的装置,接收来自所述web平台的查询请求,对该查询请求进行语法解析得到对应的语法树,基于所述语法树定制与所述查询请求对应的查询规则;
所述在线查询数据的装置,根据所述查询规则从预置数据库中查询相应的查询数据,并将查询到的查询数据反馈至所述web平台。
9.一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行权利要求1-6任一项所述的在线查询数据的方法。
10.一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行权利要求1-6任一项所述的在线查询数据的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810688094.4A CN108920614B (zh) | 2018-06-28 | 2018-06-28 | 在线查询数据的方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810688094.4A CN108920614B (zh) | 2018-06-28 | 2018-06-28 | 在线查询数据的方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108920614A true CN108920614A (zh) | 2018-11-30 |
CN108920614B CN108920614B (zh) | 2021-08-20 |
Family
ID=64421943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810688094.4A Expired - Fee Related CN108920614B (zh) | 2018-06-28 | 2018-06-28 | 在线查询数据的方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108920614B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109710641A (zh) * | 2018-12-17 | 2019-05-03 | 浩云科技股份有限公司 | 一种海量数据的查询处理方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010050675A2 (ko) * | 2008-10-29 | 2010-05-06 | 한국과학기술원 | 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법 |
CN103761080A (zh) * | 2013-12-25 | 2014-04-30 | 中国农业大学 | 一种基于SQL的MapReduce作业生成方法及*** |
US20170168785A1 (en) * | 2014-09-06 | 2017-06-15 | Aquameta LLC | Computer programming system and method |
CN107832391A (zh) * | 2017-10-31 | 2018-03-23 | 长城计算机软件与***有限公司 | 一种数据查询方法和*** |
CN107943952A (zh) * | 2017-11-24 | 2018-04-20 | 北京赛思信安技术股份有限公司 | 一种基于Spark框架进行全文检索的实现方法 |
-
2018
- 2018-06-28 CN CN201810688094.4A patent/CN108920614B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010050675A2 (ko) * | 2008-10-29 | 2010-05-06 | 한국과학기술원 | 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법 |
CN103761080A (zh) * | 2013-12-25 | 2014-04-30 | 中国农业大学 | 一种基于SQL的MapReduce作业生成方法及*** |
US20170168785A1 (en) * | 2014-09-06 | 2017-06-15 | Aquameta LLC | Computer programming system and method |
CN107832391A (zh) * | 2017-10-31 | 2018-03-23 | 长城计算机软件与***有限公司 | 一种数据查询方法和*** |
CN107943952A (zh) * | 2017-11-24 | 2018-04-20 | 北京赛思信安技术股份有限公司 | 一种基于Spark框架进行全文检索的实现方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109710641A (zh) * | 2018-12-17 | 2019-05-03 | 浩云科技股份有限公司 | 一种海量数据的查询处理方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN108920614B (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11347761B1 (en) | System and methods for distributed database query engines | |
US10430480B2 (en) | Enterprise data processing | |
US10839038B2 (en) | Generating configuration information for obtaining web resources | |
Lith et al. | Investigating storage solutions for large data-A comparison of well performing and scalable data storage solutions for real time extraction and batch insertion of data | |
CN103391312B (zh) | 资源离线下载方法及装置 | |
CN106294757B (zh) | 一种基于超图划分的分布式数据库及其集群分区方法 | |
CN106776783B (zh) | 非结构化数据存储管理方法和*** | |
CN103248645A (zh) | Bt离线数据下载***及方法 | |
WO2020087082A1 (en) | Trace and span sampling and analysis for instrumented software | |
GB2511935A (en) | Low Latency query engine for apache hadoop | |
CN104391868B (zh) | 动态页面静态化的装置和方法 | |
CN108985981A (zh) | 数据处理***及方法 | |
Van Herwegen et al. | Query execution optimization for clients of triple pattern fragments | |
CN111858760B (zh) | 一种异构数据库的数据处理方法及装置 | |
CN102054000A (zh) | 数据查询方法、装置及*** | |
CN110390739A (zh) | 一种车辆数据处理方法及车辆数据处理*** | |
Um et al. | Distributed RDF store for efficient searching billions of triples based on Hadoop | |
US20170293626A1 (en) | Managing persistent database result sets | |
CN108920614A (zh) | 在线查询数据的方法、装置及*** | |
CN108804502A (zh) | 大数据查询***、方法、计算机设备及存储介质 | |
CN106599244B (zh) | 通用的原始日志清洗装置及方法 | |
US20210232603A1 (en) | Capturing data lake changes | |
CN111786801B (zh) | 一种基于数据流量进行计费的方法和装置 | |
CN113779017A (zh) | 数据资产管理的方法和装置 | |
CN111078975A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210820 |
|
CF01 | Termination of patent right due to non-payment of annual fee |