首页> 中国专利> 基于大数据查询引擎的数据查询方法、装置、设备及介质

基于大数据查询引擎的数据查询方法、装置、设备及介质

摘要

本申请涉及数据查询技术领域,揭露一种基于大数据查询引擎的数据查询方法、装置、设备及介质,其中方法包括通过对获取的SQL查询语句进行解析,以获取SQL查询语句中对应的查询表和过滤信息,然后获取查询表对应的关联文件信息,结合过滤信息生成目标查询表,并对SQL查询语句进行匹配处理,然后将目标查询表替换匹配后SQL查询语句中对应的查询表,得到目标SQL查询语句,通过大数据查询引擎对目标SQL查询语句进行数据查询,将得到查询结果发送给用户端。本申请还涉及区块链技术,查询结果存储于区块链中。本申请通过将关联文件信息和过滤条件加入到查询语句中,减小了数据查询范围,有利于提高对大数据的数据查询效率。

著录项

  • 公开/公告号CN112860727A

    专利类型发明专利

  • 公开/公告日2021-05-28

    原文格式PDF

  • 申请/专利权人 平安科技(深圳)有限公司;

    申请/专利号CN202110193443.7

  • 发明设计人 包云飞;

    申请日2021-02-20

  • 分类号G06F16/242(20190101);G06F16/335(20190101);G06F40/211(20200101);

  • 代理机构44242 深圳市精英专利事务所;

  • 代理人涂年影

  • 地址 518000 广东省深圳市福田区福田街道福安社区益田路5033号平安金融中心23楼

  • 入库时间 2023-06-19 11:08:20

说明书

技术领域

本申请涉及数据查询技术领域,尤其涉及一种基于大数据查询引擎的数据查询方法、装置、设备及介质。

背景技术

利用大数据技术查询分析大量的历史数据已经很成熟。其大数据技术查询存在有以下特点:数据量大,能够达到几GB到TB的数据量,甚至有些任务查询的数据可能或接近或者达到PB级别;大量的任务是包含类SQL的查询任务或者本身就是SQL查询,基本都是以类似SQL的方式来过滤源数据;大量的任务都会以日期来进行过滤数据。

现有的大数据数据查询通过数据仓库技术进行数据清洗加工,或者以job方式提交定时任务提前计算来应用,然后通过数据扫描和数据映射的方式进行数据查询。然而,由于数据量较大,导致需要扫描大量的数据,这样导致数据查询的效率较低,导致查询时间较长。现亟需一种能够提高对大数据的数据查询效率的方法。

发明内容

本申请实施例的目的在于提出一种基于大数据查询引擎的数据查询方法、装置、设备及介质,以提高对大数据的数据查询效率。

为了解决上述技术问题,本申请实施例提供一种基于大数据查询引擎的数据查询方法,包括:

获取来自用户端的SQL查询语句;

对所述SQL查询语句进行解析,以获取所述SQL查询语句中对应的查询表和过滤信息;

获取所述查询表对应的关联文件信息,并根据所述关联文件信息和所述过滤信息,生成目标查询表;

获取预设匹配规则,并通过所述预设匹配规则对所述SQL查询语句进行匹配处理,得到匹配后SQL查询语句;

将所述目标查询表替换所述匹配后SQL查询语句中对应的查询表,得到目标SQL查询语句;

通过大数据查询引擎对所述目标SQL查询语句进行数据查询,得到查询结果,并将所述查询结果发送给所述用户端。

为了解决上述技术问题,本申请实施例提供一种基于大数据查询引擎的数据查询装置,包括:

查询语句获取模块,用于获取来自用户端的SQL查询语句;

查询语句解析模块,用于对所述SQL查询语句进行解析,以获取所述SQL查询语句中对应的查询表和过滤信息;

目标查询表生成模块,用于获取所述查询表对应的关联文件信息,并根据所述关联文件信息和所述过滤信息,生成目标查询表;

查询语句匹配模块,用于获取预设匹配规则,并通过所述预设匹配规则对所述SQL查询语句进行匹配处理,得到匹配后SQL查询语句;

查询表替换模块,用于将所述目标查询表替换所述匹配后SQL查询语句中对应的查询表,得到目标SQL查询语句;

查询结果生成模块,用于通过大数据查询引擎对所述目标SQL查询语句进行数据查询,得到查询结果,并将所述查询结果发送给所述用户端。

为解决上述技术问题,本发明采用的一个技术方案是:提供一种计算机设备,包括,一个或多个处理器;存储器,用于存储一个或多个程序,使得一个或多个处理器实现上述任意一项所述的基于大数据查询引擎的数据查询方法。

为解决上述技术问题,本发明采用的一个技术方案是:一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的基于大数据查询引擎的数据查询方法。

本发明实施例提供了一种基于大数据查询引擎的数据查询方法、装置、设备及介质。本发明实施例通过对获取的SQL查询语句进行解析,以获取SQL查询语句中对应的查询表和过滤信息,然后获取查询表对应的关联文件信息,并根据关联文件信息和过滤信息,生成目标查询表,实现将关联文件信息和过滤条件进行结合,缩小数据查询范围;再通过获取通过预设匹配规则对SQL查询语句进行匹配处理,得到匹配后SQL查询语句,并将目标查询表替换匹配后SQL查询语句中对应的查询表,得到目标SQL查询语句,最后通过大数据查询引擎对目标SQL查询语句进行数据查询,得到查询结果,并将查询结果发送给用户端,实现将关联文件信息和过滤条件加入到查询语句中,大大减小了数据查询范围,有利于提高对大数据的数据查询效率。

附图说明

为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的基于大数据查询引擎的数据查询方法的应用环境示意图;

图2根据本申请实施例提供的基于大数据查询引擎的数据查询方法的一实现流程图;

图3是本申请实施例提供的基于大数据查询引擎的数据查询方法中子流程的一实现流程图;

图4是本申请实施例提供的基于大数据查询引擎的数据查询方法中子流程的又一实现流程图;

图5是本申请实施例提供的基于大数据查询引擎的数据查询方法中子流程的又一实现流程图;

图6是本申请实施例提供的基于大数据查询引擎的数据查询方法中子流程的又一实现流程图;

图7是本申请实施例提供的基于大数据查询引擎的数据查询方法中子流程的又一实现流程图;

图8是本申请实施例提供的基于大数据查询引擎的数据查询方法中子流程的又一实现流程图;

图9是本申请实施例提供的基于大数据查询引擎的数据查询装置示意图;

图10是本申请实施例提供的计算机设备的示意图。

具体实施方式

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。

下面结合附图和实施方式对本发明进行详细说明。

请参阅图1,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、搜索类应用、即时通信工具等。

终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。

需要说明的是,本申请实施例所提供的基于大数据查询引擎的数据查询方法一般由服务器执行,相应地,基于大数据查询引擎的数据查询装置一般配置于服务器中。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

请参阅图2,图2示出了基于大数据查询引擎的数据查询方法的一种具体实施方式。

需注意的是,若有实质上相同的结果,本发明的方法并不以图2所示的流程顺序为限,该方法包括如下步骤:

S1:获取来自用户端的SQL查询语句。

具体的,在需要对大数据进行数据查询时,用户端根据实际需求构建SQL查询语句,并将SQL查询语句发送给服务器,服务器在接收到SQL查询语句后,则开始进行后续的数据查询步骤。

其中,结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。在本申请实施例中,SQL查询语句是根据结构化查询语言进行编写的查询语句,用于对大数据进行数据查询。

S2:对SQL查询语句进行解析,以获取SQL查询语句中对应的查询表和过滤信息。

具体的,通过对SQL查询语句进行解析,获取到SQL查询语句对应的执行计划,该执行计划包括了数据查询任务需要访问的各种查询表、过滤条件和文件字段信息等元数据信息,所以对执行计划进行元数据信息提取后,获取到执行计划中对应的查询表和过滤信息。

其中,过滤信息是指在SQL查询语句中对待查询文件进行限定的过滤条件和筛选信息。其中,过滤条件和筛选信息可以分别包括日期筛选信息和文件字段信息,其为后续进行数据查询时,提供筛选条件,以减少文件扫描范围,进而提高对大数据的数据查询效率。在一具体实施例中,SQL查询语句中存在日期筛选信息为“where data>’2020-10-02’”,该日期筛选信息为扫描日期在2020年10月2日之后的文件,SQL查询语句中存在文件字段信息为“id=huodong”,该文件字段信息为文件的名称中存在“huodong”的文件,将日志筛选信息和文件字段信息进行组合,则是扫描日期在2020年10月2日之后,并且文件名称存在“huodong”的文件。这样后续进行文件扫描时,其扫描范围能够大大减小。

S3:获取查询表对应的关联文件信息,并根据关联文件信息和过滤信息,生成目标查询表。

具体的,由于在查询表中存在着待查询文件的相关信息,所以通过提取查询表中的文件信息,并根据该文件信息,获取与该查询表存在关联信息的外部关联文件信息;再将关联文件信息和过滤信息进行整合,生成含有关联文件信息和过滤信息的文件列表,最后将文件列表构建生成目标查询表。通过获取关联文件信息,能够分析出这些文件的存储形式,便于缩小后续查询文件时扫描文件的范围,并且将关联文件信息和过滤信息进行组合,生成目标查询表,进一步缩小后续查询文件时扫描文件的范围,有利于提高对大数据的数据查询效率。

其中,关联文件信息是指查询表中与待查询文件存在着关联关系的外部存储的文件;通过分析关联文件信息能够获取到文件的存储形式,便于缩小扫描文件范围。

S4:获取预设匹配规则,并通过预设匹配规则对SQL查询语句进行匹配处理,得到匹配后SQL查询语句。

具体的,预设匹配规则是由开发人员事先设置的SQL对应的匹配规则,其目的是将SQL查询语句进行优化,便于后续通过大数据查询引擎对SQL查询语句进行数据查询。预设匹配规则可以由SQL优化器执行对SQL查询语句匹配处理。

具体的,服务器在获取到SQL查询语句后,再获取该SQL查询语句对应的预设匹配规则,通过预设的SQL优化器,根据预设匹配规则对SQL查询语句进行匹配处理,也即预设匹配规则对SQL查询语句进行转化,从而得到匹配后SQL查询语句。进一步的,服务器执行步骤S2和步骤4可以不分先后,但是,为了提高对大数据的数据查询效率,服务器可以同时执行上述步骤S2和步骤S4,并且在执行完步骤3和步骤4之后,进行执行下述步骤S5。

其中,预设的SQL优化器包括但不限于:RBO(Rule-Based Optimizer)基于规则的优化器、CBO(Cost-Based Optimizer)基于代价的优化器等等,RBO(Rule-BasedOptimizer)基于规则的优化器是根据已经制定好的一些优化规则对关系表达式进行转换,最终生成一个最优的执行计划。CBO(Cost-Based Optimizer)基于代价的优化器是根据优化规则对关系表达式进行转换,生成多个执行计划,最后根据统计信息和代价模型计算每个执行计划的Cost。在本申请实施例中,优选CBO(Cost-Based Optimizer)基于代价的优化器,因为其依赖于统计信息和代价模型,统计信息的更加准确。

在一具体实施例中,预设匹配规则为:按照预设顺序重新安排Group by语句中字段顺序、使用Join语句时将SQL查询语句中的大表放在左边、在SQL查询语句中统一将UNIONALL代替UNION。

S5:将目标查询表替换匹配后SQL查询语句中对应的查询表,得到目标SQL查询语句。

具体的,通过识别出匹配后SQL查询语句中对应的查询表,然后将目标查询表将其替换,形成新的高效的SQL查询语句,也即目标SQL查询语句。目标SQL查询语句由于是含有目标查询表的SQL查询语句,其具有关联文件信息和过滤信息,也即其具备限定了文件的范围,便于后续减小查询文件的扫描范围,有利于提高对大数据的数据查询效率。

S6:通过大数据查询引擎对目标SQL查询语句进行数据查询,得到查询结果,并将查询结果发送给用户端。

具体的,通过调用大数据查询引擎对目标SQL查询语句进行数据查询,其大数据查询引擎通过解析目标SQL查询语句,获取其目标查询表中的相关信息,得到文件扫描范围,并对该范围的文件信息进行扫描,从而得到查询结果,并将该查询结果返回该用户端。

其中,大数据查询引擎包括但不限于:Presto和Sparksql。在本申请实施例中,优选Presto,其Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。因为Presto能够处理PB级别的海量数据分析,由于其是基于内存运算,所以拥有更高的处理速度,并且其能够连接多个数据源。

本实施例中,通过对获取的SQL查询语句进行解析,以获取SQL查询语句中对应的查询表和过滤信息,然后获取查询表对应的关联文件信息,并根据关联文件信息和过滤信息,生成目标查询表,实现将关联文件信息和过滤条件进行结合,缩小数据查询范围;再通过获取通过预设匹配规则对SQL查询语句进行匹配处理,得到匹配后SQL查询语句,并将目标查询表替换匹配后SQL查询语句中对应的查询表,得到目标SQL查询语句,最后通过大数据查询引擎对目标SQL查询语句进行数据查询,得到查询结果,并将查询结果发送给用户端,实现将关联文件信息和过滤条件加入到查询语句中,大大减小了数据查询范围,有利于提高对大数据的数据查询效率。

请参阅图3,图3示出了步骤S2的一种具体实施方式,步骤S2中对SQL查询语句进行解析,以获取SQL查询语句中对应的查询表和过滤信息的具体实现过程,详叙如下:

S21:通过对SQL查询语句进行解析,以获取SQL查询语句中的执行计划。

具体的,执行计划包括了数据查询任务需要访问的各种查询表、过滤条件和文件字段信息等元数据信息,所以需要先对SQL查询语句进行解析,以获取SQL查询语句中的执行计划。

S22:通过对执行计划进行元数据提取,得到执行计划中的元数据信息。

具体的,元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(dataabout data),主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据是一种电子式目录,为了达到编制目录的目的,在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。在本申请实施例中,通过对执行计划进行元数据提取,以获得元数据信息,便于后续进行获取查询表和过滤信息。

S23:对元数据信息进行数据筛选处理,得到查询表和过滤信息。

具体的,将元数据信息中含有表头信息、过滤条件以及文件字段信息的数据信息进行筛选处理,从而根据表头信息生成查询表,根据过滤条件以及文件字段信息生成过滤信息。

在本实施中,通过对SQL查询语句进行解析,以获取SQL查询语句中的执行计划,通过对执行计划进行元数据提取,得到执行计划中的元数据信息,再对元数据信息进行数据筛选处理,得到查询表和过滤信息,实现获取查询表和过滤信息,便于缩小文件范围。

请参阅图4,图4示出了步骤S21的一种具体实施方式,步骤S21中通过对SQL查询语句进行解析,以获取SQL查询语句中的执行计划的具体实现过程,详叙如下:

S211:通过词法分析器识别SQL查询语句中的关键词和标识符。

其中,词法分析器又称为Scanner,Lexical analyser和Tokenizer。由于SQL语句文件是由关键字和严格定义的语法结构组成,所以词法分析器的工作是分析量化那些本来毫无意义的字符流,将其翻译成离散的字符组(也就是一个一个的Token),包括关键字,标识符等等。这些解析出来的关键字和标识符提供给后续步骤的语法分析器,最终形成语法树。

S212:根据语法分析器对关键词和标识符进行语法搭建,生成语法树。

具体的,语法分析器在分析字符流的时候,词法分析器不关心所生成的单个字符组的语法意义及其与上下文之间的关系,而这就是语法分析器的工作。语法分析器将收到的字符组组织起来,并转换成为目标语言语法定义所允许的序列。

其中,语法分析器在分析字符流的时候,将词法分析器不关心所生成的单个字符组的语法意义及其与上下文之间的关系,进行组织起来,并转换成为目标语言语法定义所允许的序列。在本申请实施例中,语法分析器将词法分析器生成的关键字,标识符等字符组进行组织搭建,并转化成语法树。

其中,语法搭建是指通过语法分析器将将词法分析器生成的关键字,标识符等字符组,按照字符组本身的语法意义及其上下文之间的关系,进行组织搭建,最终形成语法树。

S213:使用编译器对语法树进行编译解析,得到执行计划。

具体的,上述步骤已经构建了语法树,只需要再对该语法树进行编译解析,即可得到对应的执行计划。在本申请实施例中,编译器采用的是AstBuilder,该AstBuilder是一种开源的代码语法分析器。通过AstBuilder对语法树进行编译解析,最终得到执行计划。

本实施例中,通过词法分析器识别SQL查询语句中的关键词和标识符,根据语法分析器对关键词和标识符进行语法搭建,生成语法树,使用编译器对语法树进行编译解析,得到执行计划,实现对SQL查询语句进行语法搭建和获取执行计划,便于后续获取查询表和过滤信息,进而有利于提高对大数据的数据查询效率。

请参阅图5,图5示出了步骤S23的一种具体实施方式,步骤S23中对元数据信息进行数据筛选处理,得到查询表和过滤信息的具体实现过程,详叙如下:

S231:识别元数据信息中的表头信息、日期筛选信息和文件字段信息。

具体的,表头信息是指表格中的第一个单元格信息,通过表头信息能够获取到对应的查询表;日期筛选信息是指对待查询文件在某一日期范围的文件集中,其划定了扫描文件的日期扫描范围;文件字段信息是指扫描文件所含有的部分待查询文件的对应字段信息。

S232:根据表头信息,以获取元数据信息中的查询表。

S233:对日期筛选信息和文件字段信息进行组合,生成过滤信息。

具体的,通过获取表头信息,以获取元数据信息中的查询表。并且将日期筛选信息和文件字段信息进行组合,形成一个扫描文件的范围,也即过滤信息,其能够缩小后续扫描文件范围。

本实施例中,通过识别元数据信息中的表头信息、日期筛选信息和文件字段信息,根据表头信息,以获取元数据信息中的查询表,并对日期筛选信息和文件字段信息进行组合,生成过滤信息,实现获取查询表和过滤信息,限定文件范围,缩小后续扫描文件范围,有利于提高对大数据的数据查询效率。

请参阅图6,图6示出了步骤S3的一种具体实施方式,步骤S3中获取查询表对应的关联文件信息,并根据关联文件信息和过滤信息,生成目标查询表的具体实现过程,详叙如下:

S31:提取查询表中的文件信息,并根据文件信息获取关联文件信息。

具体的,查询表中存在的文件信息,该文件信息指向与待查询文件存在着关联关系的外部存储的文件,所以以该文件信息获取到关系文件信息。

S32:将关联文件信息和过滤信息进行整合处理,生成文件列表。

S33:根据文件列表,构建生成目标查询表。

具体的,将关联文件信息和过滤信息进行整合处理,使其生成文件列表的形式,再通过该文件列表构建生成目标查询表,进一步缩小后续查询文件时扫描文件的范围,有利于提高对大数据的数据查询效率。

本实施例中,通过提取查询表中的文件信息,并根据文件信息获取关联文件信息,将关联文件信息和过滤信息进行整合处理,生成文件列表,根据文件列表,构建生成目标查询表,实现获得高效的目标查询表,缩小文件范围,有利于提高对大数据的数据查询效率。

请参阅图6,图6示出了步骤S5的一种具体实施方式,步骤S5中将目标查询表替换匹配后SQL查询语句中对应的查询表,得到目标SQL查询语句的具体实现过程,详叙如下:

S51:识别匹配后SQL查询语句中对应的查询表,作为基础查询表。

具体的,通过识别识别匹配后SQL查询语句中的表头信息,再根据该表头信息获取对应的查询表,并将该查询表作为基础查询表,且该基础查询表为需要替换的查询表。

S52:将目标查询表替换基础查询表,得到目标SQL查询语句。

具体的,由于上述步骤已经识别出基础查询表,所以通过将目标查询表将其替换,得到具备高效率查询文件的目标SQL查询语句,

本实施例中,通过识别匹配后SQL查询语句中对应的查询表,作为基础查询表,再将目标查询表替换基础查询表,得到目标SQL查询语句,实现将目标查询表进行替换,使得目标SQL查询语句具备优化后,且文件范围缩小的高效SQL查询语句,从而有利于提高对大数据的数据查询效率。

请参阅图7,图7示出了步骤S6的一种具体实施方式,步骤S6中通过大数据查询引擎对目标SQL查询语句进行数据查询,得到查询结果,并将查询结果发送给用户端的具体实现过程,详叙如下:

S61:对目标SQL查询语句解析,得到文件头信息。

具体的,通过对目标SQL查询语句进行解析,根据其中的关联文件信息和过滤信息,确定需要扫描的文件,从而得到这些文件的文件头信息。其中,文件头信息是位于文件开头的一段承担一定任务的数据,一般都在开头的部分,通过文件头信息能够确定对应的文件。

S62:根据文件头信息,生成待扫描文件列表。

S63:通过大数据查询引擎对待扫描文件列表进行文件扫描,得到查询结果,并将查询结果发送给用户端。

具体的,通过文件头信息,获取对应的文件,从而生成待扫描文件列表。再通过大数据查询引擎对该待扫描文件列表进行文件扫描,从而得到最终的查询结果,再将查询结果返回给用户端,从而实现对大数据的数据查询任务。

本实施例中,通过对目标SQL查询语句解析,得到文件头信息,并根据文件头信息,生成待扫描文件列表,再通过大数据查询引擎对待扫描文件列表进行文件扫描,得到查询结果,并将查询结果发送给用户端,实现对大数据的数据查询任务,将查询结果提供给用户端,有利于提高对大数据的数据查询效率。

需要强调的是,为进一步保证上述查询结果的私密和安全性,上述查询结果还可以存储于一区块链的节点中。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。

请参考图9,作为对上述图2所示方法的实现,本申请提供了一种基于大数据查询引擎的数据查询装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图9所示,本实施例的基于大数据查询引擎的数据查询装置包括:项目标识获取模块71、配置文件选取模块72、目标版本分支模块73、仓库源码拉取模块74、判断结果获取模块75及构建成功项目模块76,其中:

查询语句获取模块71,用于获取来自用户端的SQL查询语句;

查询语句解析模块72,用于对SQL查询语句进行解析,以获取SQL查询语句中对应的查询表和过滤信息;

目标查询表生成模块73,用于获取查询表对应的关联文件信息,并根据关联文件信息和过滤信息,生成目标查询表;

查询语句匹配模块74,用于获取预设匹配规则,并通过预设匹配规则对SQL查询语句进行匹配处理,得到匹配后SQL查询语句;

查询表替换模块75,用于将目标查询表替换匹配后SQL查询语句中对应的查询表,得到目标SQL查询语句;

查询结果生成模块76,用于通过大数据查询引擎对目标SQL查询语句进行数据查询,得到查询结果,并将查询结果发送给用户端。

进一步的,查询语句解析模块72包括:

执行计划获取单元,用于通过对SQL查询语句进行解析,以获取SQL查询语句中的执行计划;

元数据提取单元,用于通过对执行计划进行元数据提取,得到执行计划中的元数据信息;

数据筛选处理单元,用于对元数据信息进行数据筛选处理,得到查询表和过滤信息。

进一步的,执行计划获取单元包括:

查询语句识别子单元,用于通过词法分析器识别SQL查询语句中的关键词和标识符;

语法树生成子单元,用于根据语法分析器对关键词和标识符进行语法搭建,生成语法树;

语法树编译解析子单元,用于使用编译器对语法树进行编译解析,得到执行计划。

进一步的,数据筛选处理单元包括:

元数据信息识别子单元,用于识别元数据信息中的表头信息、日期筛选信息和文件字段信息;

查询表获取子单元,用于根据表头信息,以获取元数据信息中的查询表;

过滤信息生成单元,用于对日期筛选信息和文件字段信息进行组合,生成过滤信息。

进一步的,目标查询表生成模块73包括:

关联文件信息获取单元,用于提取查询表中的文件信息,并根据文件信息获取关联文件信息;

文件列表生成单元,用于将关联文件信息和过滤信息进行整合处理,生成文件列表;

目标查询表构建单元,用于根据文件列表,构建生成目标查询表。

进一步的,查询表替换模块75包括:

基础查询表获取单元,用于识别匹配后SQL查询语句中对应的查询表,作为基础查询表;

目标SQL查询语句生成单元,用于将目标查询表替换基础查询表,得到目标SQL查询语句。

进一步的,查询结果生成模块76包括:

文件头信息获取单元,用于对目标SQL查询语句解析,得到文件头信息;

待扫描文件列表生成单元,用于根据文件头信息,生成待扫描文件列表;

查询结果发送单元,用于通过大数据查询引擎对待扫描文件列表进行文件扫描,得到查询结果,并将查询结果发送给用户端。

需要强调的是,为进一步保证上述查询结果的私密和安全性,上述查询结果还可以存储于一区块链的节点中。

为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图10,图10为本实施例计算机设备基本结构框图。

计算机设备8包括通过系统总线相互通信连接存储器81、处理器82、网络接口83。需要指出的是,图中仅示出了具有三种组件存储器81、处理器82、网络接口83的计算机设备8,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。

计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

存储器81至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器81可以是计算机设备8的内部存储单元,例如该计算机设备8的硬盘或内存。在另一些实施例中,存储器81也可以是计算机设备8的外部存储设备,例如该计算机设备8上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器81还可以既包括计算机设备8的内部存储单元也包括其外部存储设备。本实施例中,存储器81通常用于存储安装于计算机设备8的操作系统和各类应用软件,例如基于大数据查询引擎的数据查询方法的程序代码等。此外,存储器81还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器82在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器82通常用于控制计算机设备8的总体操作。本实施例中,处理器82用于运行存储器81中存储的程序代码或者处理数据,例如运行上述基于大数据查询引擎的数据查询方法的程序代码,以实现基于大数据查询引擎的数据查询方法的各种实施例。

网络接口83可包括无线网络接口或有线网络接口,该网络接口83通常用于在计算机设备8与其他电子设备之间建立通信连接。

本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序可被至少一个处理器执行,以使至少一个处理器执行如上述的一种基于大数据查询引擎的数据查询方法的步骤。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例的方法。

本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号