一种大数据sql任务批量自动回归优化方法技术

技术编号:36094375 阅读:16 留言:0更新日期:2022-12-24 11:12
本发明专利技术公开了一种大数据sql任务批量自动回归优化方法,它涉及大数据离线分布式计算领域。对日常生产sql自动回归验证,以及优化,包括以下步骤:(1).从sql任务导入到任务准备执行阶段;(2).任务准备执行到计算引擎流程。本发明专利技术提出了sql任务回归自动改造,镜像库替换,以及任务回归后自动追加crc32算法校验结果,节省了大量的人力和底层spark引擎的物理层镜像库校验,提升了sql任务回归的安全保障。提出了spark sql可控制实际数据输入大小的方法,方便全局统一设置,不需要再每个任务中涉及的输入表行数和列数去推算设置,提升了开发效率和可控性。提出了sql任务回归组方式,可以满足不同回归需求,而且可以回溯之前回归情况,方便对比,调优sql任务。调优sql任务。调优sql任务。

【技术实现步骤摘要】
一种大数据sql任务批量自动回归优化方法


[0001]本专利技术涉及的是大数据离线分布式计算领域,具体涉及一种大数据sql任务批量自动回归优化方法。

技术介绍

[0002]大数据从数据分层建设,一般有ODS原始数据层、DWD明细数据层、DWS公共汇总层、ADS数据应用层,每一层都需要每天有大量的sql任务去运行,再者还有数据分析,日常也有很多报表也需要大量sql任务,而且随着公司业务不断发展,任务会越来越多,中小体量公司日常也会有几千上万的sql任务需要跑,大体量公司更是可以达到几十万以上。
[0003]对于sql任务的计算引擎,目前有hive,spark,flink,其中flink更多是用在实时领域,一般数据日常离线任务更多是用spark sql或hive,而对于hive,处于对性能的考虑,是用hive on spark,物理计算层还是用spark。spark从2009年诞生到2013年成为apache基金项目,到现在自身技术和周围生态都比较成熟,很多公司在离线计算领域都会选择spark。
[0004]日常大量调度sql任务的维护和优化如果依靠人工会非常耗时,而且也会有疏漏。不仅如此,当集群环境或组件参数发生改变或者要进行相关组件升级调整,也需要对这些sql任务有保障。
[0005]因此,本专利技术提出了一种大数据sql任务批量自动回归优化方法。

技术实现思路

[0006]针对现有技术上存在的不足,本专利技术目的是在于提供一种大数据sql任务批量自动回归优化方法,节省了大量的人力和底层spark引擎的物理层镜像库校验,提升了sql任务回归的安全保障,方便全局统一设置,不需要再每个任务中涉及的输入表行数和列数去推算设置,提升了开发效率和可控性,可以满足不同回归需求,而且可以回溯之前回归情况,方便对比,调优sql任务。
[0007]为了实现上述目的,本专利技术是通过如下的技术方案来实现:一种大数据sql任务批量自动回归优化方法,对日常生产sql自动回归验证,以及优化,包括以下步骤:
[0008]1.从sql任务导入到任务准备执行阶段;
[0009]2.任务准备执行到计算引擎流程。
[0010]所述的步骤2具体包括:
[0011]1、改造生产sql,使用antlr4框架解析sql,将写入的目标库表替换成镜像库,临时表引用也替换成镜像库,以及对于insert语句,在前面补上一条create table like语句;
[0012]2、添加回归分组,按照不同回归需求或者优化,创建不同分组。每次回归会建立一个回归组,回归组下面包含本次回归的任务,如果需要优化的任务,可以在回归组挑选任务再建立一个对应调优的回归组;
[0013]3、批量自动执行功能,上万个任务如果手动一个个,或者一页页执行,也是很费精
力的,所以结合底层引擎做自动批量执行,并根据资源和提交任务数量控制并发;
[0014]4、生产库表安全验证,避免因为改造sql异常或其他因素,在回归的时候对生产库表造成数据增删,甚至是删库表的影响。这里改造spark引擎源码,在统一的入口,对物理计划做限制,对于写的操作只限制在镜像库;
[0015]5、数据抽样优化,针对spark抽样缺陷改善,在spark物理层读取的数据的时候,根据分区读取指定参数;
[0016]6、数据验证,回归后任务,需要对数据校验,来判断回归是否成功。在每个回归sql任务运行结束后,会自动追加一个任务,去比较输出的镜像库的数据与正式库的数据做crc32算法比较。
[0017]本专利技术具有以下有益效果:
[0018]1.自动解析改造后sql,镜像库多次回归运行,不会对生产的库表产生影响。如果对上万个sql任务人工改造,不仅效率低,而且可能出错,直接会影响到生产数据。
[0019]2.自动追加任务用crc32算法校验回归任务结果数据和生产数据,节省人力,这个功能还可以辅助数据治理。
[0020]3.对spark引擎的改造,物理层级别的镜像库校验,直接在底层将修改生产数据的入口封住,避免上层业务行为的bug,这个是回归的一个重要安全保障。
[0021]4.读取的数据分区均匀,不同分区的数据都会读取到,避免有些业务逻辑没有触发到,因为有时候不同分区的业务数据是有一定差异的,而原来技术读取的数据都是表前面固定的一些数据。
附图说明
[0022]下面结合附图和具体实施方式来详细说明本专利技术;
[0023]图1为sql任务从业务平台一键导入到准备执行的阶段示意图;
[0024]图2为sql任务准备执行到底层计算引擎流程图。
具体实施方式
[0025]为使本专利技术实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本专利技术。
[0026]参照图1

2,本具体实施方式采用以下技术方案:一种大数据sql任务批量自动回归优化方法,对日常生产sql自动回归验证,以及优化,主要流程分为两个阶段:
[0027]1.从sql任务导入到任务准备执行阶段,如图1所示;
[0028]2.任务准备执行到计算引擎流程,如图2所示。
[0029]重点流程功能点说明如下:
[0030]1、改造生产sql,使用antlr4框架解析sql,将写入的目标库表替换成镜像库,临时表引用也替换成镜像库,以及对于insert语句,在前面补上一条create table like语句等等。
[0031]2、添加回归分组,按照不同回归需求或者优化,创建不同分组。每次回归会建立一个回归组,回归组下面包含本次回归的任务,如果需要优化的任务,可以在回归组挑选任务再建立一个对应调优的回归组。
[0032]3、批量自动执行功能,上万个任务如果手动一个个,或者一页页执行,也是很费精力的,所以结合底层引擎做自动批量执行,并根据资源和提交任务数量控制并发。
[0033]4、生产库表安全验证,避免因为改造sql异常或其他因素,在回归的时候对生产库表造成数据增删,甚至是删库表的影响。这里改造spark引擎源码,在统一的入口,对物理计划做限制,对于写的操作只限制在镜像库。
[0034]5、数据抽样优化,针对spark抽样缺陷改善,在spark物理层读取的数据的时候,根据分区读取指定参数。这块抽样对于非全量数据任务回归还是很重要,可以大大节省集群资源和回归时间。
[0035]6、数据验证,回归后任务,需要对数据校验,来判断回归是否成功。在每个回归sql任务运行结束后,会自动追加一个任务,去比较输出的镜像库的数据与正式库的数据做crc32算法比较。
[0036]本具体实施方式提出了sql任务回归自动改造,镜像库替换,以及任务回归后自动追加crc32算法校验结果,节省了大量的人力和底层spark引擎的物理层镜像库校验,提升了sql任务回归的安全保障。提出了spark sql可控制实际数据输入大小的方本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种大数据sql任务批量自动回归优化方法,其特征在于,对日常生产sql自动回归验证,以及优化,包括以下步骤:(1).从sql任务导入到任务准备执行阶段;(2).任务准备执行到计算引擎流程。2.根据权利要求1所述的一种大数据sql任务批量自动回归优化方法,其特征在于,所述的步骤(2)具体包括:(1)、改造生产sql,使用antlr4框架解析sql,将写入的目标库表替换成镜像库,临时表引用也替换成镜像库,以及对于insert语句,在前面补上一条create table like语句;(2)、添加回归分组,按照不同回归需求或者优化,创建不同分组;每次回归会建立一个回归组,回归组下面包含本次回归的任务,如果需要优化的任务,可以在回归组挑选任务再建立一个对应调...

【专利技术属性】
技术研发人员:林传艺张璐波
申请(专利权)人:天翼电子商务有限公司
类型:发明
国别省市:

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

1