[发明专利]基于多数据引擎动态装载的查询方法和系统有效
申请号: | 202110597528.1 | 申请日: | 2021-05-31 |
公开(公告)号: | CN113032423B | 公开(公告)日: | 2021-08-17 |
发明(设计)人: | 杨刚;郑磊;孙文烨 | 申请(专利权)人: | 北京谷数科技股份有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2455;G06F16/25;G06F16/28 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王宇杨 |
地址: | 100094 北京市海淀区西*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 多数 引擎 动态 装载 查询 方法 系统 | ||
本发明提供一种基于多数据引擎动态装载的查询方法和系统,方法包括:注册引擎类型,将数据引擎类型动态装载至数据库服务中;接收用户引擎实例的指令,将指令数据引擎实例连接信息保存和/或删除;接收用户输入的查询语句,生成查询计划树;逆解析出统一抽象SQL语句保存到查询任务中,将抽象SQL语句转换成符合数据引擎类型的本地操作,构造执行任务;将本地操作转发到各个数据引擎中执行,实现执行任务。本发明在效率上可以接近主程序函数的直接调用,而且通过动态装载方式简化了程序的占用空间。同时本发明将统一SQL和函数接口调用转至数据引擎原语,下发至计算节点引擎,可动态接入引擎执行本地化解释,避免了核心调度引擎的修改。
技术领域
本发明涉及异构引擎集成技术领域,尤其涉及一种基于多数据引擎动态装载的查询方法和系统。
背景技术
随着大数据分析技术的蓬勃发展,数据量急剧膨胀,数据类型也复杂多样,传统的单一关系型数据库已经无法满足大数据存储和计算的需要。使用多引擎数据库兼容结构化、半结构化与非结构化数据存储与融合查询是一种有效的解决方案。
但是多种数据类型结构各异,各类数据引擎的调用与操作方式也是千差万别,对不固定维度、多维度查询,各数据库架构还需要一个融合的过程。
目前还没有一种通用的SQL和NoSQL数据库引擎的统一管理方案,在性能、扩展性、容错能力等方面遭遇到了不小的挑战,并且在现有模式下,维护数据库系统整体一致性和学习成本也很高。目前缺少一种方案,可以实现业务数据的统一管理和数据融合,应对多种数据存储模式需求,提供统一的SQL或类SQL语法,整合各引擎实例入口操作,解决多类型数据存储引擎与核心调度引擎的有机融合的问题以及核心调度引擎管理异构多数据引擎的性能问题。
因此,提供一种支持统一SQL语法进行融合查询,既适用于多模数据库系统,也适用于多引擎融合查询框架的多数据引擎动态管理方法和系统具有较高的实用价值和意义。
发明内容
针对现有技术存在的问题,本发明提供一种基于多数据引擎动态装载的查询方法和系统
本发明提供一种基于多数据引擎动态装载的查询方法,包括:
注册数据引擎类型和/或读取数据引擎类型,并基于统一通信接口库将数据引擎类型动态装载至数据库服务中;
接收用户注册和/或删除数据引擎实例的指令,在数据引擎实例元数据表中将指令对应的数据引擎实例连接信息保存和/或删除;
接收用户输入的查询语句,生成查询计划树;
将查询计划树逆解析成统一抽象SQL语句保存到查询任务中,并遍历查询任务列表,将抽象SQL语句转换成符合数据引擎类型的本地操作,构造执行任务;
将所述符合数据引擎类型的本地操作转发到各个数据引擎中执行,实现执行任务;
所述本地操作包括SQL语句或者数据引擎接口调用。
根据本发明提供的一种基于多数据引擎动态装载的查询方法,所述注册数据引擎类型和/或读取数据引擎类型,并基于统一通信接口库将数据引擎类型动态装载至数据库服务中的步骤包括:
接收用户注册数据引擎类型指令,经过词法分析、语法分析以及语义分析后提取数据引擎类型名称和动态链接库的存储路径;
以设定模式打开动态链接库文件,返回句柄给调用进程,并注册所有接口方法;
将所有接口方法的地址存储在与数据引擎类型对应的数据结构里以便后续调用;
将所述数据引擎类型名称和动态链接库的存储路径保存到数据引擎类型元数据表中,完成数据引擎统一通信接口库的动态装载;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京谷数科技股份有限公司,未经北京谷数科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110597528.1/2.html,转载请声明来源钻瓜专利网。