一种数据库处理方法、系统、电子设备及存储介质技术方案

技术编号:35479270 阅读:15 留言:0更新日期:2022-11-05 16:29
本申请提出一种数据库处理方法、系统、电子设备及存储介质,属于大数据查询领域,方法包括:接收结构化查询语言SQL并获取所述SQL的数据库列表和数据信息;判断所述SQL是否存在跨数据库操作情况;若所述SQL存在跨数据库操作,基于所述SQL的数据库列表选择ETL工具,基于所述SQL的数据信息选择执行引擎;用所选择的ETL工具将所述SQL翻译为对应所述执行引擎的执行计划;基于所述执行计划执行任务并反馈执行情况。系统包括:SQL接收模块、跨库判断模块、跨库选择模块、SQL翻译模块、执行反馈模块。本申请将各种数据处理工作仅通过标准SQL查询语句完成对任务执行的解析,屏蔽底层执行引擎的差异。的差异。的差异。

【技术实现步骤摘要】
一种数据库处理方法、系统、电子设备及存储介质


[0001]本申请属于大数据查询领域,具体涉及一种数据库处理方法、系统、电子设备及存储介质。

技术介绍

[0002]在当前数据爆发增长的时代,怎样合理利用大数据变得至关重要。于是,越来越多的数据存储方案和数据查询引擎便因此而生,以应对各种不同场景下的数据使用需求。
[0003]数据仓库工作,也就是将各种各样来源的数据统一组织和使用的工作。数据仓库工作大部分都属于ETL工作,即对数据的抽取、清洗转换及存储。在同一数据库内部通常都是直接使用SQL来进行数据仓库工作的,可是对于某些跨数据库的数据仓库工作,通常无法使用SQL,而要使用某些工具如Kettle、Sqoop等。这些工具不能使用SQL,用法都要单独学习,具有较高的使用成本。
[0004]现有技术中,通过输入数据库信息,提交SQL查询语句,校验白名单,返回结果集。该方案可以不使用堡垒机,统一校验白名单来提交SQL查询语句。但是该方案没有涉及到多种执行方案的自动选择,缺少数据链路监控,也不涉及到数据血缘追踪,所以无法适应大数据场景的数据仓库工作。
[0005]现有技术中存在的问题如下:在跨数据库类型的ETL工作中,无法使用SQL来进行数据处理的工作;在数据处理中,很多情况下不同的工具能达到相同的效果,而开发人员一般是选择自己最熟悉的方式,这有可能导致资源使用的不均衡;不同的数据库、数据工具有不同的入口,这对元数据的管理和作业的统计和资源的管控都会造成困难。

技术实现思路

[0006]基于以上技术问题,本申请提出一种数据库处理方法、系统、电子设备及存储介质。
[0007]第一方面,本申请提出一种数据库处理方法,包括如下步骤:
[0008]接收结构化查询语言SQL并获取所述SQL的数据库列表和数据信息;
[0009]判断所述SQL是否存在跨数据库操作情况;
[0010]若所述SQL存在跨数据库操作,基于所述SQL的数据库列表选择ETL工具,基于所述SQL的数据信息选择执行引擎;
[0011]采用所选择的ETL工具将所述SQL翻译为对应所述执行引擎的执行计划;
[0012]基于所述执行计划执行任务并反馈执行情况。
[0013]所述数据信息包括数据源和数据目的的种类中的至少一种。
[0014]所述判断所述SQL是否存在跨数据库操作情况包括:
[0015]获取所述SQL的类型,若所述SQL的类型为插入,判断是否存在跨数据库插入。
[0016]所述基于所述SQL的数据信息选择执行引擎的步骤包括:判断当前资源是否充足;若当前资源充足,则根据第一规则选择执行引擎;否则,根据第二规则选择执行引擎。
[0017]所述第一规则为历史成功率最高或者历史执行速度最快;所述第二规则为相应资源占用最少规则。
[0018]若所述SQL不存在跨数据库查询,将所述SQL翻译为符合对应数据库语法的SQL。
[0019]在所述采用所选择的ETL工具将所述SQL翻译为对应所述执行引擎的执行计划的步骤之前,还包括:对所述SQL对应的数据库进行权限检验,若未通过权限检验,则SQL不允许被执行;若通过权限检验,则所述SQL允许被执行。
[0020]在所述基于所述执行计划执行任务并反馈执行情况之后,还包括如下步骤:记录所述SQL执行情况和所述SQL涉及的数据库表的血缘关系。
[0021]所述记录所述SQL涉及的数据库表的血缘关系,包括:调取各个数据库的元数据,在所述元数据中记录数据库表与表之间的关系。
[0022]所述的数据库处理方法,还包括:若所述执行情况为成功,则完成此次SQL查询,等待下一次SQL查询;若所述执行情况为失败,则去掉执行失败的执行引擎选择方案,根据第一规则或第二规则对剩余执行引擎选择方案进行排序,选择最优的执行引擎再次执行查询,若失败次数达到失败次数阈值,则退出本次SQL查询。
[0023]第二方面,本申请提出一种数据库处理系统,包括:SQL接收模块、跨库判断模块、跨库选择模块、SQL翻译模块、执行反馈模块;
[0024]所述SQL接收模块、跨库判断模块、跨库选择模块、SQL翻译模块、执行反馈模块依次顺序相连接;
[0025]所述SQL接收模块用于接收结构化查询语言SQL并获取所述SQL的数据库列表和数据信息;
[0026]所述跨库判断模块用于判断所述SQL是否存在跨数据库操作情况;
[0027]所述跨库选择模块用于若所述SQL存在跨数据库操作,基于所述SQL的数据库列表选择ETL工具,基于所述SQL的数据信息选择执行引擎;
[0028]所述SQL翻译模块用于采用所选择的ETL工具将所述SQL翻译为对应所述执行引擎的执行计划;
[0029]所述执行反馈模块用于基于所述执行计划执行任务并反馈执行情况。
[0030]在所述执行反馈模块之前,还应包括权限检验模块,分别与所述SQL翻译模块与所述执行反馈模块相连接,对所述SQL对应的数据库进行权限检验,若未通过权限检验,则SQL不允许被执行;若通过权限检验,则所述SQL允许被执行。
[0031]在所述执行反馈模块之后,还应包括记录模块,与所述执行反馈模块相连接,用于记录所述SQL执行情况和所述SQL涉及的数据库表的血缘关系。
[0032]所述跨库选择模块包括:ETL选择单元、执行引擎选择单元;
[0033]所述ETL选择单元用于基于所述SQL的数据库列表选择ETL工具;
[0034]所述执行引擎选择单元用于基于所述SQL的数据信息选择执行引擎,具体为:判断当前资源是否充足;若当前资源充足,则根据第一规则选择执行引擎;否则,根据第二规则选择执行引擎。
[0035]第三方面,本申请提出一种电子设备,包括:一个或多个处理器,以及存储器,所述存储器存储指令,当所述指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如上所述的数据库处理方法。
[0036]第四方面,本申请提出一种存储介质,其存储有可执行指令,所述指令当被执行时使得机器执行如上所述的数据库处理方法。
[0037]有益技术效果:
[0038]本申请降低了ETL工具的学习成本,使得开发人员通过标准SQL查询语句就可以完成绝大多数的数据处理工作。
[0039]通过统一入口能够记录所有的SQL操作,结合各个数据库的元数据,可以建立起一个完整的数据仓库的元数据管理系统,数据血缘与数据链路的监控。
[0040]通过统一入口加上自适应的解析,结合当前的资源使用情况,平台可以自动选择最适配当前情况的数据处理方案。
[0041]本申请将各种数据处理工作仅通过标准SQL查询语句提交,后台完成对任务执行的解析,屏蔽底层执行引擎的差异。
附图说明
[0042]图1为本申请实施例的一种数据库处理方法流程图;
[0043]图2为本申请实施例1的流程图;
[004本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库处理方法,其特征在于,包括如下步骤:接收结构化查询语言SQL并获取所述SQL的数据库列表和数据信息;判断所述SQL是否存在跨数据库操作情况;若所述SQL存在跨数据库操作,基于所述SQL的数据库列表选择ETL工具,基于所述SQL的数据信息选择执行引擎;采用所选择的ETL工具将所述SQL翻译为对应所述执行引擎的执行计划;基于所述执行计划执行任务并反馈执行情况。2.根据权利要求1所述的数据库处理方法,其特征在于,所述数据信息包括数据源和数据目的的种类中的至少一种。3.根据权利要求1所述的数据库处理方法,其特征在于,所述判断所述SQL是否存在跨数据库操作情况包括:获取所述SQL的类型,若所述SQL的类型为插入,判断所述SQL是否存在跨数据库插入。4.根据权利要求1所述的数据库处理方法,其特征在于,所述基于所述SQL的数据信息选择执行引擎的步骤包括:判断当前资源是否充足;若当前资源充足,则根据第一规则选择执行引擎;否则,根据第二规则选择执行引擎。5.根据权利要求4所述的数据库处理方法,其特征在于,所述第一规则为历史成功率最高或者历史执行速度最快;所述第二规则为相应资源占用最少规则。6.根据权利要求1所述的数据库处理方法,其特征在于,还包括:若所述SQL不存在跨数据库查询,将所述SQL翻译为符合对应数据库语法的SQL。7.根据权利...

【专利技术属性】
技术研发人员:田地赵化臣
申请(专利权)人:珠海联云科技有限公司
类型:发明
国别省市:

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

1