一种宽表更新方法、装置、设备及计算机可读存储介质制造方法及图纸

技术编号:38763265 阅读:14 留言:0更新日期:2023-09-10 10:36
本发明专利技术公开了一种宽表更新方法、装置、设备及计算机可读存储介质,该方法包括:获取各宽表计算任务的运行信息和sql语句,并根据运行信息和sql语句,筛选待改造的目标宽表计算任务;根据目标宽表计算任务的sql语句,确定目标宽表计算任务引用的当前来源信息,并获取历史来源信息;其中,当前来源信息包括当前来源表和当前字段;对比当前来源信息和所述历史来源信息,确定差异来源信息,并将sql语句中的当前来源信息替换为所述差异来源信息,得到新的sql语句;根据新的sql语句,进行宽表更新。利用本发明专利技术的方法,能够识别需要改造的宽表计算任务,还可以自动完成宽表计算任务sql语句的改写,从而有效地减少不必要的计算,提高数据仓库的运行效率和性能。库的运行效率和性能。库的运行效率和性能。

【技术实现步骤摘要】
一种宽表更新方法、装置、设备及计算机可读存储介质


[0001]本专利技术涉及计算机软件
,具体涉及一种宽表更新方法、装置、设备及计算机可读存储介质。

技术介绍

[0002]在将业务数据库的数据同步至数据仓库的过程中,经常需要对大量的宽表进行更新,而现有技术通常使用历史全量数据重新计算的方案进行宽表的更新,这种重新计算的方式极大地消耗了计算资源和时间。另外,现有技术中还存在一种根据数据更新时间增量更新的方案,但是同步的数据还可能出现以下问题,导致该增量更新方案无法正确取到增量数据,使得宽表更新出错或仍然需要大量消耗计算资源和时间:(1)更新时间为空值;(2)业务系统在更改数据的同时没有同步更新时间;(3)业务系统更改某列数据时,将该列数据的更新时间全部修改为相同时间;(4)业务系统硬删除数据。

技术实现思路

[0003]本专利技术提供一种宽表更新方法、装置、设备及计算机可读存储介质,用于解决现有的宽表计算方案计算资源消耗过大以及数据更新准确度不足的问题。
[0004]为了解决上述技术问题,第一方面,本专利技术提供一种宽表更新方法,该方法包括:
[0005]获取各宽表计算任务的运行信息和sql语句,并根据所述运行信息和sql语句,筛选待改造的目标宽表计算任务;
[0006]根据所述目标宽表计算任务的sql语句,确定所述目标宽表计算任务引用的当前来源信息,并获取历史来源信息;其中,所述当前来源信息包括当前来源表和当前字段;
[0007]对比所述当前来源信息和所述历史来源信息,确定差异来源信息,并将所述sql语句中的当前来源信息替换为所述差异来源信息,得到新的sql语句;
[0008]根据所述新的sql语句,进行宽表更新,并将所述当前来源信息作为新的历史来源信息。
[0009]作为一种可选地实施方式,所述根据所述运行信息和sql语句,筛选待改造的目标宽表计算任务,包括:
[0010]针对每一宽表计算任务,根据当前宽表计算任务的运行信息和sql语句,按照改造价值参数计算公式,计算当前宽表计算任务的改造价值参数;其中,所述改造价值参数计算公式为:
[0011][0012]其中,v表示当前宽表计算任务的改造价值参数,A
i
表示当前宽表计算任务引用的第i个当前来源表读数据的行数,B
i
表示当前宽表计算任务引用的第i个当前来源表的总行数,C表示当前宽表计算任务的执行时间,D表示当前宽表计算任务使用的CPU数量,E表示当前宽表计算任务的平均CPU使用率,F表示当前宽表计算任务的内存使用量的平均值,G表示
当前宽表计算任务的内存使用量的最大值,n表示当前宽表计算任务引用的当前来源表的总数,r
i
表示当前宽表计算任务引用的第i个当前来源表的当前字段的数量与所有字段的数量的比;
[0013]将当前宽表计算任务的改造价值参数与预设阈值进行比较,若当前宽表计算任务的改造价值参数大于所述预设阈值,确定当前宽表计算任务为目标宽表计算任务。
[0014]作为一种可选地实施方式,所述根据所述目标宽表计算任务的sql语句,确定所述目标宽表计算任务引用的当前来源信息,包括:
[0015]对所述目标宽表计算任务的sql语句进行解析,提取所述目标宽表计算任务引用的当前来源表和当前字段;
[0016]针对每一所述当前来源表,生成对应的当前签名表,作为当前来源信息;其中,所述当前签名表包括所述当前来源表的主键和所述当前字段的签名。
[0017]作为一种可选地实施方式,所述针对每一所述当前来源表,生成对应的当前签名表,包括:
[0018]针对每一所述当前来源表,创建对应的初始当前签名表;所述初始当前签名表包括所述当前来源表的主键;
[0019]将所述目标宽表计算任务引用的若干当前字段按照字母顺序排列,拼接为字符串;
[0020]使用MD5消息摘要算法对所述字符串进行转化,选取MD5值的前N位字符并添加前缀作为字段名,并将MD5值作为字段值,得到所述当前字段的签名;其中,N为正整数;
[0021]将所述当前字段的签名插入到所述初始当前签名表中,生成对应的当前签名表。
[0022]作为一种可选地实施方式,所述根据所述目标宽表计算任务的sql语句,确定所述目标宽表计算任务引用的当前来源信息之后,还包括:
[0023]确定最后一个with子句的结束位置,作为将所述sql语句中的当前来源信息替换为所述差异来源信息时生成的with子句的插入位置。
[0024]作为一种可选地实施方式,所述根据所述运行信息和sql语句,筛选待改造的目标宽表计算任务之后,还包括:
[0025]按照预设语法文件规则对HiveSQL语法文件进行改写;
[0026]其中,所述预设语法文件规则包括:
[0027]变量名称支持{$xxx.xxx}插入;和/或,
[0028]移除函数与表达式之下的细粒度语句解析。
[0029]作为一种可选地实施方式,所述根据所述新的sql语句,进行宽表更新之前,还包括:
[0030]根据所述新的sql语句,创建并运行临时任务,获取临时结果表;
[0031]将所述临时结果表与正确结果表进行数据对比,若连续M次的对比结果为正确,确定所述新的sql语句通过校验。
[0032]第二方面,本专利技术提供了一种宽表更新装置,该装置包括:
[0033]目标筛选单元,用于获取各宽表计算任务的运行信息和sql语句,并根据所述运行信息和sql语句,筛选待改造的目标宽表计算任务;
[0034]信息确定单元,用于根据所述目标宽表计算任务的sql语句,确定所述目标宽表计
算任务引用的当前来源信息,并获取历史来源信息;其中,所述当前来源信息包括当前来源表和当前字段;
[0035]差异替换单元,用于对比所述当前来源信息和所述历史来源信息,确定差异来源信息,并将所述sql语句中的当前来源信息替换为所述差异来源信息,得到新的sql语句;
[0036]宽表更新单元,用于根据所述新的sql语句,进行宽表更新,并将所述当前来源信息作为新的历史来源信息。
[0037]第三方面,本专利技术提供一种宽表更新设备,包括存储器和处理器,其中:
[0038]所述存储器用于存储计算机程序;
[0039]所述处理器用于读取所述存储器中的计算机程序,并执行如第一方面所述的宽表更新方法的步骤。
[0040]第四方面,本专利技术提供一种计算机可读存储介质,其上存储有可读的计算机程序,该程序被处理器执行时实现如第一方面所述的宽表更新方法的步骤。
[0041]与现有技术相比,本专利技术提供了一种宽表更新方法、装置、设备及计算机可读存储介质,该方法能够识别需要改造的宽表计算任务,避免人工在海量宽表计算任务中分析,还可以自动完成宽表计算任务sql语句的改写,实现自动比对所用的底层数据,并过滤出所用到的字段中存在更新的记录,可以本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种宽表更新方法,其特征在于,包括:获取各宽表计算任务的运行信息和sql语句,并根据所述运行信息和sql语句,筛选待改造的目标宽表计算任务;根据所述目标宽表计算任务的sql语句,确定所述目标宽表计算任务引用的当前来源信息,并获取历史来源信息;其中,所述当前来源信息包括当前来源表和当前字段;对比所述当前来源信息和所述历史来源信息,确定差异来源信息,并将所述sql语句中的当前来源信息替换为所述差异来源信息,得到新的sql语句;根据所述新的sql语句,进行宽表更新,并将所述当前来源信息作为新的历史来源信息。2.根据权利要求1所述的宽表更新方法,其特征在于,所述根据所述运行信息和sql语句,筛选待改造的目标宽表计算任务,包括:针对每一宽表计算任务,根据当前宽表计算任务的运行信息和sql语句,按照改造价值参数计算公式,计算当前宽表计算任务的改造价值参数;其中,所述改造价值参数计算公式为:其中,v表示当前宽表计算任务的改造价值参数,A
i
表示当前宽表计算任务引用的第i个当前来源表读数据的行数,B
i
表示当前宽表计算任务引用的第i个当前来源表的总行数,C表示当前宽表计算任务的执行时间,D表示当前宽表计算任务使用的CPU数量,E表示当前宽表计算任务的平均CPU使用率,F表示当前宽表计算任务的内存使用量的平均值,G表示当前宽表计算任务的内存使用量的最大值,n表示当前宽表计算任务引用的当前来源表的总数,r
i
表示当前宽表计算任务引用的第i个当前来源表的当前字段的数量与所有字段的数量的比;将当前宽表计算任务的改造价值参数与预设阈值进行比较,若当前宽表计算任务的改造价值参数大于所述预设阈值,确定当前宽表计算任务为目标宽表计算任务。3.根据权利要求1所述的宽表更新方法,其特征在于,所述根据所述目标宽表计算任务的sql语句,确定所述目标宽表计算任务引用的当前来源信息,包括:对所述目标宽表计算任务的sql语句进行解析,提取所述目标宽表计算任务引用的当前来源表和当前字段;针对每一所述当前来源表,生成对应的当前签名表,作为当前来源信息;其中,所述当前签名表包括所述当前来源表的主键和所述当前字段的签名。4.根据权利要求3所述的宽表更新方法,其特征在于,所述针对每一所述当前来源表,生成对应的当前签名表,包括:针对每一所述当前来源表,创建对应的初始当前签名表;所述初始当前签名表包括所述当前来源表的...

【专利技术属性】
技术研发人员:曹智杰鲍贵明商渭清
申请(专利权)人:深圳市跨越新科技有限公司
类型:发明
国别省市:

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

1