SQL代码缺陷的检测方法及装置制造方法及图纸

技术编号:24497521 阅读:56 留言:0更新日期:2020-06-13 03:38
本发明专利技术公开了一种SQL代码缺陷的检测方法及装置,包括:分析SQL代码访问的主数据表和从数据表;判断主数据表的数据分布是否均匀,若不均匀,则输出主数据表存在数据倾斜的提示;分别统计主数据表的第一数据量与从数据表的第二数据量,若第二数据量大于第一数据量且第二数据量与第一数据量之间的差值超过预设阈值,则输出存在内存溢出风险的提示。从而实现自动检测SQL的性能缺陷,方便用户快速找出问题和解决问题,改善SQL代码质量,进而提升数据批处理作业的效率。

Detection method and device of SQL code defect

【技术实现步骤摘要】
SQL代码缺陷的检测方法及装置
本专利技术涉及计算机
,具体涉及一种SQL代码缺陷的检测方法及装置。
技术介绍
随着大数据生态圈的不断发展,只有通过对大数据进行分析才能获取更多智能的、有价值的信息,而有效的数据分析离不开高质量的数据,只有基于高质量的数据才能保证分析结果的真实性和有效性,否则可能会影响企业的快策,甚至造成经济利益的损失。目前,通常使用HIVE(数据仓库工具)的批处理作业来实现提高数据质量的目的,而HIVE的批处理作业是通过研发人员编写的SQL代码实现的,由于批处理作业所操作的数据量非常庞大,因此SQL代码的质量是影响批处理作业效率的关键因素。然而,在将编写的SQL(结构化查询语言)代码导入HIVE后,HIVE只是对SQL代码进行语法检测并告知错误的详细信息,但无法对SQL代码的性能缺陷进行检测,进而无法进一步改善SQL代码的质量。
技术实现思路
本专利技术的目的是针对上述现有技术的不足提出的一种SQL代码缺陷的检测方法及装置,该目的是通过以下技术方案实现的。本专利技术的第一方面提本文档来自技高网...

【技术保护点】
1.一种SQL代码缺陷的检测方法,其特征在于,所述方法包括:/n分析SQL代码访问的主数据表和从数据表;/n判断所述主数据表的数据分布是否均匀,若不均匀,则输出所述主数据表存在数据倾斜的提示;/n分别统计主数据表的第一数据量与从数据表的第二数据量,若第二数据量大于第一数据量且第二数据量与第一数据量之间的差值超过预设阈值,则输出存在内存溢出风险的提示。/n

【技术特征摘要】
1.一种SQL代码缺陷的检测方法,其特征在于,所述方法包括:
分析SQL代码访问的主数据表和从数据表;
判断所述主数据表的数据分布是否均匀,若不均匀,则输出所述主数据表存在数据倾斜的提示;
分别统计主数据表的第一数据量与从数据表的第二数据量,若第二数据量大于第一数据量且第二数据量与第一数据量之间的差值超过预设阈值,则输出存在内存溢出风险的提示。


2.根据权利要求1所述的方法,其特征在于,分析SQL代码访问的主数据表和从数据表,包括:
根据所述SQL代码包含的SQL语句中的语法关键字提取主数据表的标识和从数据表的标识。


3.根据权利要求1所述的方法,其特征在于,判断所述主数据表的数据分布是否均匀,包括:
从所述SQL代码包含的SQL语句中获取被访问的主数据表字段;
统计该主数据表字段中每一字段值在所述主数据表中的出现次数;
若存在任意两个出现次数的差值超过预设阈值的情况,则确定所述主数据表的数据分布不均匀。


4.根据权利要求3所述的方法,其特征在于,在确定所述主数据表的数据分布不均匀之后,所述方法还包括:
判断差值超过预设阈值的两个出现次数中较大出现次数对应的字段值是否为空值;
若是,则输出清洗该字段值为空的数据的修改建议,或输出将该字段值重新赋值的修改建议;
若否,则输出修改SQL语句的修改建议。


5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若第二数据量大于第一数据量且第二数据量与第一数据量之间的差值超过预设阈值,则输出需要将主数据表和从数据表调换的修改建议。


6.一种SQL代...

【专利技术属性】
技术研发人员:韩建宝
申请(专利权)人:重庆特斯联智慧科技股份有限公司
类型:发明
国别省市:重庆;50

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

1