一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于统一SQL的多源异构数据质量校验方法和系统与流程

2021-12-07 21:21:00 来源:中国专利 TAG:
一种基于统一sql的多源异构数据质量校验方法和系统
技术领域
:1.本发明涉及数据质量管理领域,具体来说,涉及一种基于统一sql的多源异构数据质量校验方法和系统。
背景技术
::2.近年来随着大数据技术的蓬勃发展,作为大数据的支撑,各种各样的网络数据体现的价值也越来越大。网络上每天都产生海量数据,这些数据在计划、获取、存储、共享、维护、应用、消亡完整生命周期的每个阶段里都可能引发数据质量问题,这些问题一旦产生,对后续业务流程可能会有灾难性的后果,因此对这些可能产生质量问题的数据进行识别、度量、监控、预警是十分必要的。除此之外,在整个数据的生命周期里,会有不同的存储形式,可能是诸如mysql、postgres、oracle等关系型数据库,也有可能是诸如elasticserch、mongodb等非关系型数据库,这更加增大了数据质量管理的难度。3.因此,如何在异构数据库之间对数据质量进行有效管理,是目前需要解决的问题。4.针对相关技术中的问题,目前尚未提出有效的解决方案。技术实现要素:5.针对相关技术中的问题,本发明提出一种基于统一sql的多源异构数据质量校验方法和系统,以克服现有相关技术所存在的上述技术问题。6.本发明的技术方案是这样实现的:7.根据本发明的一个方面,提供了一种基于统一sql的多源异构数据质量校验方法,包括以下步骤:8.s1、创建质量校验规则;9.s2、创建质量校验任务;10.s3、创建质量检验作业;11.s4、创建质量校验调度计划;12.s5、提交调度计划执行校验逻辑;13.s6、质量报告生成。14.进一步的,所述s1创建质量校验规则包括填写质量规则的基本信息,比如规则名称,规则维度。15.进一步的,所述s2创建质量校验任务包括填写质量检验任务的基本信息,选择要检验的数据库,并选取配置质量校验规则,并配置合适的告警阈阀值。16.进一步的,所述s3创建质量检验作业包括填写质量检验作业的基本信息,选择要检验的任务。17.进一步的,所述s4创建质量校验调度计划包括对步骤s3中创建的作业指定执行计划,分为单次执行、周期串行和周期并行。18.进一步的,所述s5提交调度计划执行校验逻辑包括如果是单次执行,那么提交后执行单元立即执行,并只执行一次;如果是周期串行,那么提交后根据配置会周期调度执行单元,并且上次调度未执行完毕,下一次将不再执行,直到上一次执行完毕,才会再次调度执行单元;如果是周期并行,提交后会根据配置周期调度执行单元,不管上一次调度是否执行完毕,下一次都将再次调度执行单元。执行单元主要负责解析任务配置,进行数据质量校验工作。19.进一步的,所述s6质量报告生成包括根据执行单元的输出,进行数据质量报告的生成,并进行数据质量分析。20.进一步的,所述步骤s5提交调度计划执行校验逻辑的实施具体包括以下步骤:21.s501,生成数据质量校验的配置信息;22.s502,根据上述配置的数据源信息,表名等信息,创建外部表,并将该外部表名添加到数据质量校验的配置信息里;23.s503,对于提交的业务配置进行解析,确定数据核算条件;24.s504,根据提交的配置信息,将伪sql的表名变量,列名变量,参数变量替换成配置的值,组装成标准sql语句,并组装可以获取问题行数的标准sql语句和可以获取总行数的标准sql语句;25.s505,使用java的jdbcapi将步骤s504里的标准sql提交给postgres执行;26.s506,统一sql引擎获取外部表关联的异构数据库、表、字段;27.s507,统一sql引擎优化解析提交的sql语句;28.s508,转化成外部表关联的数据库可执行的查询语句;29.s509,异构数据库执行查询,并将查询结果返回;30.s510,根据步骤s509里的sql返回结果,计算告警数值;31.s511,将步骤s510里的计算结果与设定的阈阀值进行比较,如果超出阈阀值,就达到告警条件,对该条规则进行告警标记,待所有规则执行完毕,发出告警信息;32.s512,满足告警条件则对该条规则进行告警标记,待所有规则执行完毕,发出告警信息;33.s513,将检验结果各种指标进行收集,不论是否满足告警条件,都进行存储。34.根据本发明的另一方面,提供了一种基于统一sql的多源异构数据质量校验系统,包括任务作业配置模块、作业调度模块、校验执行模块、数据质量报告生成与数据质量分析模块;35.其中,所述任务作业配置模块主要负责收集校验规则的配置信息,并将规则信息组装成任务作业,交给调度模块进行调度;36.所述作业调度模块主要负责作业的调度,单次或者周期的将任务配置提交给校验执行模块,进行数据质量校验工作;对于调度方式有三种处理方式:单次调度、周期串行、周期并行;37.所述校验执行模块主要根据配置的任务信息,通过统一sql引擎获取问题数据,数据总行数等指标,并对阈阀值进行比较是否满足告警条件;38.所述数据质量报告生成与数据质量分析模块是根据校验执行模块的输出结果,生成数据质量报告,并对数据质量进行分析。39.该系统进一步的,所述作业配置模块包括规则配置单元、任务配置单元和作业配置单元;40.其中,所述规则配置单元主要是根据业务需求,创建质量规则,并在质量规则里创建伪sql语句,并规范伪sql书写方式41.所述任务配置单元主要是根据业务需求,选择合适质量规则,并配置质量规则,包括选择数据源,稽核表,稽核字段,以及稽核参数值,并配置告警条件,比如问题行数和问题比率。42.所述作业配置单元主要是将多个任务配置到一个作业里,提交给调度模块后,可以在一个调度里完成多个任务的数据质量校验工作。43.本发明的有益效果为:可以对不同存储形式的数据进行直观、灵活、统一的质量管理,同时也能满足复杂的业务需求。本发明结合一种基于统一sql的多源异构数据库数据质量校验方法和系统实现,借助于统一sql,可以在异构数据库之间,简单,灵活的对问题数据进行识别,通过设定阈阀值,可以对问题数据进行监控、预警和质量分析。44.本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。附图说明45.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。46.图1是根据本发明实施例的一种基于统一sql的多源异构数据库数据质量校验方法的流程图;47.图2是根据本发明实施例的一种基于统一sql的多源异构数据库数据质量校验方法中步骤s5的流程图之一;48.图3是根据本发明实施例的一种基于统一sql的多源异构数据库数据质量校验方法中步骤s5的流程图之二;49.图4是根据本发明实施例的一种基于统一sql的多源异构数据库数据质量校验方法中步骤s5的流程框图;50.图5是根据本发明实施例的数据质量管理系统架构示意图;51.图6是根据本发明实施例的伪sql与标准sql对应示意图;52.图7是根据本发明实施例的数据质量校验结果示意图;53.图8是根据本发明实施例的一种基于统一sql的多源异构数据库数据质量校验系统的框图。具体实施方式54.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。55.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。56.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。57.在本发明的上述描述中,需要说明的是,术语“一侧”、“另一侧”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。58.此外,在描述本发明提供的一种基于统一sql的多源异构数据库数据质量校验方法和系统实现之前,先简要对发明中提到的术语进行说明:59.1.伪sql60.伪sql是数据质量规则校验的模板,和普通sql类似,但是可以根据约束,将表名,字段名,或者查询条件等写成变量形式,比如要表达一张表里的某个字段小于某个值的数据,可以将伪sql写成:select*from${schema_table_1}where${column_1}<${parm1}。61.2.表变量62.伪sql里表示表名的变量,比如${schema_table_1}。63.3.列变量64.伪sql里表示列名的变量,比如${column_1}。65.4.参数变量66.伪sql里表示参数值的变量,比如${parm1}。67.5.标准sql68.structuredquerylanguage,访问关系型数据库的标准语言。69.6.统一sql引擎70.能够实现对多个异构数据源之间统一数据访问和业务关联处理的一款大数据统一sql查询引擎产品。该产品基于postgres开发,基于外部表的方式,与异构数据库进行关联。通过查询外部表,统一sql引擎会将查询语句优化解析成目标数据库查询语句,并下发到目标数据库进行查询,返回查询结果。71.7.异构数据库72.不同存储形式的数据库,比如mysql、oracle、postgres、mongodb、elasticsearch等。73.如图1‑4所示,根据本发明的实施例,提供了一种基于统一sql的多源异构数据质量校验方法,包括以下步骤:74.s1、创建质量校验规则;75.填写质量规则的基本信息,比如规则名称,规则维度,伪sql语句,比如创建一个名称是自定义最大值校验,维度是准确性,伪sql是select*from${schema_table_1}wheremax(${column_1})<100。76.s2、创建质量校验任务;77.填写质量检验任务的基本信息,比如任务名称,选择要检验的数据库,并选取配置质量校验规则,主要是把质量校验规则的表名,列名以及参数值确定好,并配置合适的告警阈阀值;一个校验任务可以根据业务需求选取配置多个数据质量校验规则。78.s3、创建质量检验作业;79.填写质量检验作业的基本信息,比如作业名称,选择要检验的任务,一个作业可以选取多个校验任务进行校验。80.s4、创建质量校验调度计划;81.是对步骤三中创建的作业指定执行计划,分为单次执行、周期串行和周期并行。82.s5、提交调度计划执行校验逻辑;83.如果是单次执行,那么提交后执行单元立即执行,并只执行一次;如果是周期串行,那么提交后根据配置会周期调度执行单元,并且上次调度未执行完毕,下一次将不再执行,直到上一次执行完毕,才会再次调度执行单元;如果是周期并行,提交后会根据配置周期调度执行单元,不管上一次调度是否执行完毕,下一次都将再次调度执行单元。执行单元主要负责解析任务配置,进行数据质量校验工作,其中包含的步骤如图2‑3所示:84.步骤s501,生成数据质量校验的配置信息;85.步骤s502,根据步骤s501里配置的数据源信息,表名等信息,创建外部表,并将该外部表名添加到数据质量校验的配置信息里;86.步骤s503,对于提交的业务配置进行解析,确定需要对哪一个数据源,哪一个表,哪一个字段做怎样的质量校验,触发告警的条件是什么;87.步骤s504,根据提交的配置信息,将伪sql的表名变量,列名变量,参数变量替换成配置的值,组装成标准sql语句,并组装可以获取问题行数的标准sql语句和可以获取总行数的标准sql语句。这里的表名是外部表名;88.步骤s505,本方法是用java语言实现,使用java的jdbcapi将步骤s504里的标准sql提交给postgres执行;89.步骤s506,统一sql引擎获取外部表关联的异构数据库,表,字段等信息;90.步骤s507,统一sql引擎优化解析提交的sql语句;91.步骤s508,转化成外部表关联的数据库可执行的查询语句;92.步骤s509,异构数据库执行查询,并将查询结果返回;93.步骤s510,根据步骤s509里的sql返回结果,计算告警数值;94.步骤s511,将步骤s510里的计算结果与设定的阈阀值进行比较,如果超出阈阀值,就达到告警条件,对该条规则进行告警标记,待所有规则执行完毕,发出告警信息;95.步骤s512,满足告警条件则对该条规则进行告警标记,待所有规则执行完毕,发出告警信息;96.步骤s513,将检验结果各种指标进行收集,不论是否满足告警条件,都进行存储。97.s6、质量报告生成;98.根据执行单元的输出,进行数据质量报告的生成,并进行数据质量分析。99.如图8所示,根据本发明的实施例,还提供了一种基于统一sql的多源异构数据质量校验系统,包括任务作业配置模块、作业调度模块、校验执行模块、数据质量报告生成与数据质量分析模块;100.其中,101.一、任务作业配置模块;102.该模块主要负责收集校验规则的配置信息,并将规则信息组装成任务作业,交给调度模块进行调度。主要包括以下单元:103.1、规则配置单元;104.该单元主要是根据业务需求,创建质量规则,并在质量规则里创建伪sql语句,并规范伪sql书写方式:105.(1)、只需要编写问题数据的查询sql,sql语法需遵循postgresql语法;106.(2)、其中${schema_table_*}、${column_*}为保留关键词,分别代表表名、字段名,支持多个表、多个字段,请顺序编号如:schema_table_1、schema_table_2、column_1、column_2;107.(3)、当自定义sql中包含多张表时,${column_*}字段前必须加表名,如:select*from${schema_table_1}where${schema_table_1}.${column_1}>30and${schema_table_1}.idin(selectidfrom${schema_table_2}where${schema_table_2}.${column_2}='山东');108.(4)、不可对表名、字段名进行as重命名。109.2、任务配置单元;110.该单元主要是根据业务需求,选择合适质量规则,并配置质量规则,包括选择数据源,稽核表,稽核字段,以及稽核参数值,并配置告警条件,比如问题行数和问题比率。111.3、作业配置单元;112.该单元主要是将多个任务配置到一个作业里,提交给调度模块后,可以在一个调度里完成多个任务的数据质量校验工作。113.二、作业调度模块;114.该模块主要负责作业的调度,单次或者周期的将任务配置提交给校验执行模块,进行数据质量校验工作;对于调度方式有三种处理方式:115.1、单次调度::是指手动提交调度后,对应的作业里所有的任务只会执行一次;116.2、周期串行:是指手动提交调度后,可以根据配置周期的提交任务配置进行数据质量校验,并且如果上次调度中的数据质量校验任务没有完成,那么下次调度不会提交任务配置给校验执行模块,直到上次调度里的数据质量校验任务完成;117.3、周期并行:是指手动提交调度后,可以根据配置周期的提交任务配置进行数据质量校验,并且无论如果上次调度中的数据质量校验任务是否完成,那么下次调度都会提交任务配置给校验执行模块。118.三、校验执行模块;119.该模块主要根据配置的任务信息,通过统一sql引擎获取问题数据,数据总行数等指标,并对阈阀值进行比较是否满足告警条件。120.四、校验执行模块;121.该模块是根据校验执行模块的输出结果,生成数据质量报告,并对数据质量进行分析:122.1、质量报告详情,针对一个校验任务生成,里面包含:123.(1)、任务信息:体现任务的基本信息,比如任务名称,任务id;124.(2)、检查对象:体现对哪些库,哪些表做稽查;125.(3)、调度信息:体现调度的基本信息,比如调度计划的名称、执行作业的名称、执行作业的id、调度的开始时间、调度的结束时间、调度方式(单次/周期)、调度的cron表达式;126.(4)、问题统计:统计问题数(告警的规则数量)、问题数据量(有问题的数据量)、检查结果。127.2、数据质量分析:对所有校验任务的校验结果做系统分析,里面包含质量任务统计、质量问题分布、数据质量评分;128.(1)、质量任务统计:展示质量任务列表,包含任务基本信息和校验结果129.(2)、质量问题分布:对问题数和问题数据量分别做完整性、准确性、有效性、唯一性、一致性、及时性六个维度的统计分析130.(3)、数据质量评分:对各个维度(完整性、准确性、有效性、唯一性、一致性、及时性)进行积分,对于当前存在的问题,每个问题扣1分131.综上所述,借助于本发明的上述技术方案,可以对不同存储形式的数据进行直观、灵活、统一的质量管理,同时也能满足复杂的业务需求。本发明结合一种基于统一sql的多源异构数据库数据质量校验方法和系统实现,借助于统一sql,可以在异构数据库之间,简单,灵活的对问题数据进行识别,通过设定阈阀值,可以对问题数据进行监控、预警和质量分析。132.最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。133.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献