一种基于Presto和Elasticsearch的大数据查询优化方法技术

技术编号:21089624 阅读:59 留言:0更新日期:2019-05-11 09:59
本发明专利技术涉及一种基于Presto和Elasticsearch的大数据查询优化方法,其将所有被查询数据保存在Elasticsearch集群中,然后通过Presto集群接收并解析SQL请求生成相应的抽象语法树和执行计划,将查询条件转换成Elasticsearch查询请求并下发到Elasticsearch中进行预查询。本发明专利技术利用Presto SQL解析和Elasticsearch快速查询的优势,在取回数据前尽可能预先过滤部分数据,大幅减少多余数据的读取,以提高条件查询的性能。

【技术实现步骤摘要】
一种基于Presto和Elasticsearch的大数据查询优化方法
本专利技术涉及大数据的快速查询方法,特别提供了一种基于Presto和Elasticsearch的大数据查询优化方法。
技术介绍
Elasticsearch是一个建立在全文搜索引擎ApacheLuceneTM基础上的实时分析的分布式搜索引擎,它使用Lucene作为核心来实现所有索引和搜索的功能,使得每个文档的内容都可以被索引、搜索、排序、过滤。但elasticsearch缺乏传统的SQL语法支持,开发人员使用较难,以关系型数据库为基础的系统其数据迁移、对接工作也不易进行。而Presto可为Elasticsearch提供基本的SQL语法支持,但其基于内存的查询机制也需要把几乎全量的目标数据预读到集群内存中,而最终用户所需要的数据只是海量数据中的几十条甚至几条,过程中消耗大量的服务器资源和时间用于多余数据的读取和过虑,导致查询效率大幅度下降。
技术实现思路
本专利技术的目的在于提供一种基于Presto和Elasticsearch的大数据查询优化方法,其使用Presto集群进行SQL的接收和解析,利用Elasticsearch本文档来自技高网...

【技术保护点】
1.一种基于Presto和Elasticsearch的大数据查询优化方法,其特征在于:所述优化方法将被查询的数据保存在Elasticsearch集群的索引中,当用户向Presto集群提交SQL查询请求时,执行以下步骤:步骤1、Presto集群接收并解析SQL查询请求并生成相应的抽象语法树,根据该语法树生成查询执行计划树,该执行计划树为自上而下没有分支的结构;其中,SQL查询请求包含where子句、orderby子句、limit子句中的一个或多个;步骤2、遍历分析执行计划树中的各个节点,具体如下:首先,找出执行计划树Elasticsearch支持的节点,其名称和对应的SQL操作分别为:

【技术特征摘要】
1.一种基于Presto和Elasticsearch的大数据查询优化方法,其特征在于:所述优化方法将被查询的数据保存在Elasticsearch集群的索引中,当用户向Presto集群提交SQL查询请求时,执行以下步骤:步骤1、Presto集群接收并解析SQL查询请求并生成相应的抽象语法树,根据该语法树生成查询执行计划树,该执行计划树为自上而下没有分支的结构;其中,SQL查询请求包含where子句、orderby子句、limit子句中的一个或多个;步骤2、遍历分析执行计划树中的各个节点,具体如下:首先,找出执行计划树Elasticsearch支持的节点,其名称和对应的SQL操作分别为:节点名称功能对应SQL操作FilterNode筛选数据where子句TopNNode排序取前N行orderby子句+limitLimitNode汇总取前N行limit子句TableScanNode读取表中所有数据单一的select查询然后,在TableScanNode中添加一个Query参数,用于下发查询条件;最后,遍历查询计划树中的所有节点,在遍历过程中根据节点类型读取相应条件下发:当发现FilterNode时,表明该SQL查询请求中包含where子句,则通过FilterNode的过滤条件,获取where子句内容,将其传递给首节点TableScanNod...

【专利技术属性】
技术研发人员:洪灿榕
申请(专利权)人:南威软件股份有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1