生成执行计划的方法、计划单元和分布式NewSQL数据库系统技术方案

技术编号:16837490 阅读:87 留言:0更新日期:2017-12-19 19:58
本发明专利技术公开了一种生成执行计划的方法,包括:判断共享缓存池中是否存在与SQL语句相对应的预存SQL语句,若是,则输出与所述SQL语句对应的执行计划,若否,则对所述SQL语句进行语法检查,若语法错误返回错误信息给用户,否则,对所述SQL语句进行语义检查,若语义错误返回错误信息给用户,否则,对所述SQL语句进行视图以及表达式转换;根据所述转换结果选择优化器;根据所述优化器选择结果选择对应的数据连接方式以及连接顺序;根据连接方式和连接顺序选择搜索的路径;根据搜索路径生成执行计划,并输出执行计划。本发明专利技术还提供了一种计划单元和分布式NewSQL数据库系统。本发明专利技术能支持SQL,极大降低了使用成本;支持JDBC/ODBC接口,极大的简化了ETL过程。

A method, a planning unit, and a distributed NewSQL database system for generating an execution plan

The invention discloses a method, an execution plan is generated by the following steps: judging whether there should be shared cache pool relative SQL statement and the SQL statement stored, if the output corresponding to the SQL statement execution plan, if not, then check the grammar in the SQL statement, if the syntax error return error information to the user, otherwise, the semantic checks on the SQL statement, if the semantic error return error information to the user, otherwise, the views and expressions conversion on the SQL statement; according to the results of conversion optimizer; according to the optimization results of selection for selecting the corresponding data connection and connection according to the order; path connection and choose the search order of connection; according to the search path generation plan and execution plan output. The invention also provides a planning unit and a distributed NewSQL database system. The invention can support SQL and greatly reduce the cost of use; support the JDBC/ODBC interface, greatly simplifying the ETL process.

【技术实现步骤摘要】
生成执行计划的方法、计划单元和分布式NewSQL数据库系统
本专利技术涉及hadoop大数据
,尤其涉及生成执行计划的方法、计划单元和分布式NewSQL数据库系统。
技术介绍
目前HBase是Hadoop生态体系中最著名的分布式NoSQL数据库之一。其设计理念来源于Google的Bigtable。HBase主要组件包括HMaster和HRegionsever,为用户提供表格类型的数据模型,按主键范围划分为多个region,HMaster负责管理和分配region,HRegionserver负责region数据的读写。但随着越来越多的应用尝试迁移到HBase上,HBase的缺陷也越来越被暴露出来:使用成本高:用户需要通过API编程访问HBase,对于复杂应用使用成本过高;不支持标准JDBC/ODBC接口,ETL过程十分复杂。使用成本过高直接导致许多较为复杂的应用无法使用HBase。
技术实现思路
本专利技术实施例的目的是提供一种生成执行计划的方法和计划单元、及分布式NewSQL数据库系统,能支持SQL,通过编写SQL实现复杂的业务逻辑,极大的降低了使用成本;支持JDBC/ODBC接口,极大的简化了ETL过程。为实现上述目的,本专利技术实施例提供了一种生成执行计划的方法,包括:判断共享缓存池中是否存在与SQL语句相对应的预存SQL语句,若是,则输出与所述SQL语句对应的执行计划,若否,则对所述SQL语句进行语法检查,若语法错误返回错误信息给用户,否则,对所述SQL语句进行语义检查,若语义错误返回错误信息给用户,否则,对所述SQL语句进行视图以及表达式转换,获得对应的转化结果;根据所述转换结果选择优化器,获得对应的优化器选择结果;根据所述优化器选择结果选择对应的数据连接方式以及连接顺序;根据连接方式和连接顺序选择搜索的路径;根据搜索路径生成执行计划,并输出执行计划。与现有技术相比,本专利技术实施例公开的一种生成执行计划的方法,通过首先判断共享缓存池中是否存在与SQL语句相对应的预存SQL语句,若是,则输出与SQL语句对应的执行计划,若否,则对SQL语句依次进行语法检查、语义检查;然后在语法检查和语义检查无误的情况下,对SQL语句进行视图以及表达式转换;接着根据转换结果选择优化器;再接着根据优化器选择结果选择对应的数据连接方式以及连接顺序;根据连接方式和连接顺序选择搜索的路径;最后根据搜索路径生成执行计划,并输出执行计划的技术方案,解决了现有技术中用户需要通过API编程访问HBase,对于复杂应用使用成本过高,以及不支持标准JDBC/ODBC接口,ETL过程十分复杂的问题,获得了降低成本、简化了ETL过程的有益效果。进一步的,所述判断共享缓存池中是否存在与SQL语句相对应的预存SQL语句前还包括:解析用户请求,通过SQL引擎编译SQL语句。本专利技术实施例还提供一种计划单元,包括:缓存判断模块,用于判断共享缓存池中是否存在接收的SQL语句,若是,则输出与所述SQL语句对应的执行计划,若否,则启动语法检查模块;语法检查模块,用于对所述SQL语句进行语法检查,若语法错误返回错误信息给用户,否则,语义检查模块,用于对所述SQL语句进行语义检查,若语义错误返回错误信息给用户,否则,转换模块,用于对所述SQL语句进行视图以及表达式转换,获得对应的转化结果;优化器选择模块,用于根据所述转换结果选择优化器,获得对应的优化器选择结果;连接选择模块,用于根据所述优化器选择结果选择对应的数据连接方式以及连接顺序;路径选择模块,用于根据连接方式和连接顺序选择搜索的路径;执行计划输出模块,用于根据搜索路径生成执行计划,并输出执行计划。与现有技术相比,本专利技术公开的一种执行单元,首先通过缓存判断模块判断共享缓存池中是否存在与SQL语句相对应的预存SQL语句,若是,则输出与SQL语句对应的执行计划,若否,则依次通过语法检查模块和语义检查模块对SQL语句进行语法检查、语义检查,然后在语法检查和语义检查无误的情况下,通过转换模块对SQL语句进行视图以及表达式转换;接着通过优化器选择模块根据转换结果选择优化器;再接着通过连接选择模块根据优化器选择结果选择对应的数据连接方式以及连接顺序;通过路径选择模块根据连接方式和连接顺序选择搜索的路径;最后通过执行计划输出模块根据搜索路径生成执行计划,并输出执行计划的技术方案,解决了现有技术中用户需要通过API编程访问HBase,对于复杂应用使用成本过高,以及不支持标准JDBC/ODBC接口,ETL过程十分复杂的问题,获得了降低成本、简化了ETL过程的有益效果。进一步的,所述执行单元还包括:SQL语句编译模块,用于解析用户请求,并通过SQL引擎编译SQL语句。本专利技术实施例还提供一种分布式NewSQL数据库系统,包括上述本专利技术实施例提供的一种计划单元,还包括:数据库接口,用于接入用户请求;控制单元,用于接收所述数据库接口所接入的所述用户请求,并将所述用户请求发送给计划单元,并将接收到的执行单元返回的执行结果返回给用户;分布式事务管理器,用于当所述执行计划中涉及事务时,协调所述执行计划中的多方完成分布式事务管理。执行单元,用于执行所述执行计划,并将所述执行计划的执行结果返回给控制单元。与现有技术相比,本专利技术公开的一种分布式NewSQL数据库系统,首先通过控制单元接入用户请求,然后将用户请求发送至计划单元;由计划单元根据用户请求定制执行计划发送至控制单元;控制单元根据执行计划的内容判断是否需要分布式事务管理器的介入;接着,通过执行单元执行计划单元所生成的执行计划;最后,通过执行单元将执行结果返回至控制单元的技术方案,解决hbase使用成本高、不支持复杂查询、可用性较低的问题,获得了极大的降低了使用成本,。极大的简化了ETL过程的技术效果。进一步的,还包括数据库接口,所述数据库接口与所述控制单元连接,所述数据库接口用于接收用户请求,还用于接收所述控制单元返回的执行结果返回给用户。进一步的,所述数据库接口为JDBC或ODBC。进一步的,所述控制单元还连接一监视器,用于负责元数据管理以及用于监控底层hbaseRegion的负载,避免特定的region负载过高,以及利用hbase协同处理模块重新分配Region。进一步的,所述执行单元通过hbase和搜索引擎服务器向数据库获取数据。附图说明图1是本专利技术实施例1提供的一种生成执行计划的方法的流程示意图;图2是本专利技术实施例2提供的一种计划单元的结构示意图;图3是本专利技术实施例3提供的一种分布式NewSQL数据库系统的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。参见图1,图1是本专利技术实施例1提供的一种生成执行计划的方法的流程示意图;本专利技术实施例1包括步骤:S1、判断共享缓存池中是否存在与SQL语句相对应的预存SQL语句,若是,则输出与SQL语句对应的执行计划,若否,则S2、对SQL语句进行语法检查,若语法错误返回错误信息给用户,否则,S3、对SQL语本文档来自技高网...
生成执行计划的方法、计划单元和分布式NewSQL数据库系统

【技术保护点】
一种生成执行计划的方法,其特征在于,包括:判断共享缓存池中是否存在与SQL语句相对应的预存SQL语句,若是,则输出与所述SQL语句对应的执行计划,若否,则对所述SQL语句进行语法检查,若语法错误返回错误信息给用户,否则,对所述SQL语句进行语义检查,若语义错误返回错误信息给用户,否则,对所述SQL语句进行视图以及表达式转换,获得对应的转化结果;根据所述转换结果选择优化器,获得对应的优化器选择结果;根据所述优化器选择结果选择对应的数据连接方式以及连接顺序;根据连接方式和连接顺序选择搜索的路径;根据搜索路径生成执行计划,并输出执行计划。

【技术特征摘要】
2016.09.21 CN 20161084239971.一种生成执行计划的方法,其特征在于,包括:判断共享缓存池中是否存在与SQL语句相对应的预存SQL语句,若是,则输出与所述SQL语句对应的执行计划,若否,则对所述SQL语句进行语法检查,若语法错误返回错误信息给用户,否则,对所述SQL语句进行语义检查,若语义错误返回错误信息给用户,否则,对所述SQL语句进行视图以及表达式转换,获得对应的转化结果;根据所述转换结果选择优化器,获得对应的优化器选择结果;根据所述优化器选择结果选择对应的数据连接方式以及连接顺序;根据连接方式和连接顺序选择搜索的路径;根据搜索路径生成执行计划,并输出执行计划。2.如权利要求1所述的生成执行计划的方法,其特征在于,所述判断共享缓存池中是否存在与SQL语句相对应的预存SQL语句前还包括:解析用户请求,通过SQL引擎编译SQL语句。3.一种计划单元,其特征在于,包括:缓存判断模块,用于判断共享缓存池中是否存在接收的SQL语句,若是,则输出与所述SQL语句对应的执行计划,若否,则启动语法检查模块;语法检查模块,用于对所述SQL语句进行语法检查,若语法错误返回错误信息给用户,否则,语义检查模块,用于对所述SQL语句进行语义检查,若语义错误返回错误信息给用户,否则,转换模块,用于对所述SQL语句进行视图以及表达式转换,获得对应的转化结果;优化器选择模块,用于根据所述转换结...

【专利技术属性】
技术研发人员:晋彤谭恒亮
申请(专利权)人:广州特道信息科技有限公司
类型:发明
国别省市:广东,44

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

1