[发明专利]一种查询elasticsearch的实现方法及系统有效
申请号: | 201710194847.1 | 申请日: | 2017-03-28 |
公开(公告)号: | CN106934062B | 公开(公告)日: | 2020-05-19 |
发明(设计)人: | 杨佳佳;谢胜利 | 申请(专利权)人: | 广东工业大学 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2453;G06F16/2458 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 510062 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 查询 elasticsearch 实现 方法 系统 | ||
本发明公开了一种基于calcite的sql查询elasticsearch的实现方法,包括:获取输入的SQL语句;根据提供的元数据对所述SQL语句进行元数据验证;在验证通过后对所述SQL语句进行解析得到SQL语法树;利用附加规则将所述SQL语法树转换为elasticsearch可执行的匹配条件和查询执行动作,返回查询结果集;该实现方法解析SQL语句,完成SQL至elasticsearch java API的适配和优化;本发明公开了一种基于calcite的sql查询elasticsearch的实现系统,具有上述有益效果。
技术领域
本发明涉及数据处理技术领域,特别涉及一种基于calcite的sql查询elasticsearch的实现方法及系统。
背景技术
elasticsearch是一个实时的分布式搜索和分析引擎,其数据逻辑组织方式类似于关系型数据库,比如:elasticsearch会对数据进行索引(index),每个索引下都有类型(type),每个类型都有对应的mapping。这些概念对应于关系型数据库的库(database)、表格(table)和schema。
elasticsearch提供了特定的数据查询API接口(RESTful API或JavaclientAPI),这些接口都需要对elasticsearch进行学习才能较好地使用。而数据分析工程师对于SQL语言更为熟悉,事实上,IT软件开发者基本上都更熟悉SQL语言。对于elasticsearch这样一个专注于搜索领域的引擎/服务器,不一定知晓,也不一定熟悉。那么一个很自然的需求就是,通过SQL语句来访问elasticsearch的数据。
SQL on elasticsearch相当于一个中间件,接收SQL语句作为输入,然后解析、优化、转换为elasticsearch所能接受的API,查询得到elasticsearch的数据后,作为结果输出。
现有的SQL on elasticsearch一般是作为elasticsearch服务器的一个插件,提供一种交互式的、简单的数据查看。比如:elasticsearch-sql是github上的一个第三方开源插件,与elasticsearch绑定后,可以在浏览器web页面输入SQL语句。插件会通过表格的方式返回数据。
但是目前其仅以插件形式存在,只能在web页面简单查看数据,不能集成到程序代码中,可用性不强。不管是SQL数据库查询,还是elasticsearch搜索引擎,它们都是应用于后台程序代码中。使用者基本上都是程序员。而elasticsearch-sql插件只是提供了一个查看elasticsearch数据的简单的可视化表格。输入一个SQL语句,出来一个表格,这对于程序员来说根本就没多大的作用。因为它不是以框架形式存在的,没有提供API接口以供程序中调用。而且该插件仅支持elasticsearch 2.3.x及以下的版本,不支持最新的5.x版本。其次,SQL查询语句支持度不够,比如不支持别名。如何克服上述缺点,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供一种基于calcite的sql查询elasticsearch的实现方法及系统,解析SQL语句,完成SQL至elasticsearch java API的适配和优化。
为解决上述技术问题,本发明提供一种基于calcite的sql查询elasticsearch的实现方法,包括:
获取输入的SQL语句;
根据提供的元数据对所述SQL语句进行元数据验证;
在验证通过后对所述SQL语句进行解析得到SQL语法树;
利用附加规则将所述SQL语法树转换为elasticsearch可执行的匹配条件和查询执行动作,返回查询结果集。
可选的,所述元数据的提供过程包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东工业大学,未经广东工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710194847.1/2.html,转载请声明来源钻瓜专利网。