数据质量检查方法、装置、计算机设备及存储介质与流程

文档序号:28809671发布日期:2022-02-09 03:34阅读:66来源:国知局
数据质量检查方法、装置、计算机设备及存储介质与流程

1.本发明涉及数据处理方法,更具体地说是指数据质量检查方法、装置、计算机设备及存储介质。


背景技术:

2.数据质量检查是数据管理中的常用手段,通过一定的规则校验数据是否符合质量要求,常见的检验类型如下:完整性、规范性、一致性、准确性、唯一性以及关联性,其中,完整性用于度量哪些数据丢失了或者哪些数据不可用;一致性用于度量哪些数据的值在信息含义上是冲突的;准确性用于度量哪些数据和信息是不正确的,或者数据是超期的;唯一性用于度量哪些数据是重复数据或者数据的哪些属性是重复的;关联性用于度量哪些关联的数据缺失或者未建立索引。因此,校验类型种类较多,需要适配的数据库类型也较多,导致数据质量检查技术较为复杂,实现困难,面临着各种各样的适配问题。
3.传统的数据质量检查方法只能利用jdbc(java数据库连接,java database connectivity)连接获取数据,再直接进行数据的计算,并且还需要适配各种数据库类型,不仅成本更高、实现复杂,从而导致维护性差,效率低下等各种问题。
4.因此,有必要设计一种新的方法,实现数据质量检查的成本低,维护性强,且可提高效率。


技术实现要素:

5.本发明的目的在于克服现有技术的缺陷,提供数据质量检查方法、装置、计算机设备及存储介质。
6.为实现上述目的,本发明采用以下技术方案:数据质量检查方法,包括:
7.配置数据质量计算规则;
8.获取待检查数据;
9.将所述待检查数据转换为sql语句;
10.将所述sql语句提交至flink集群,由flink集群结合所述数据质量计算规则进行数据质量检查,以得到检查结果。
11.其进一步技术方案为:所述将所述sql语句提交至flink集群,由flink集群结合所述数据质量计算规则进行数据质量检查,以得到检查结果之后,还包括:
12.将所述检查结果写入指定的数据库;
13.生成通知信息,并发送所述通知信息至终端,以通知所述终端到指定的数据库获取所述检查结果。
14.其进一步技术方案为:所述数据质量计算规则包括需要校验的数据库的连接方式、需要校验的字段、需要校验的表格以及具体校验规则。
15.其进一步技术方案为:所述将所述待检查数据转换为sql语句,包括:
16.根据所述数据质量计算规则将所述待检查数据转换为sql语句。
17.其进一步技术方案为:所述根据所述数据质量计算规则将所述待检查数据转换为sql语句,包括:
18.根据所述数据质量计算规则且利用flink的函数将所述待检查数据转换为sql语句。
19.本发明还提供了数据质量检查装置,包括:
20.规则配置单元,用于配置数据质量计算规则;
21.数据获取单元,用于获取待检查数据;
22.数据转换单元,用于将所述待检查数据转换为sql语句;
23.执行单元,用于将所述sql语句提交至flink集群,由flink集群结合所述数据质量计算规则进行数据质量检查,以得到检查结果。
24.其进一步技术方案为:还包括:
25.写入单元,用于将所述检查结果写入指定的数据库;
26.信息生成单元,用于生成通知信息,并发送所述通知信息至终端,以通知所述终端到指定的数据库获取所述检查结果。
27.其进一步技术方案为:所述数据转换单元,用于根据所述数据质量计算规则将所述待检查数据转换为sql语句。
28.本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
29.本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述的方法。
30.本发明与现有技术相比的有益效果是:本发明通过设定数据质量计算规则,再将待检查数据转换为flink所能识别的sql语句,利用flink集群执行对应的sql语句,以进行数据质量检查,实现数据质量检查的成本低,维护性强,且可提高效率。
31.下面结合附图和具体实施例对本发明作进一步描述。
附图说明
32.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
33.图1为本发明实施例提供的数据质量检查方法的应用场景示意图;
34.图2为本发明实施例提供的数据质量检查方法的流程示意图;
35.图3为本发明另一实施例提供的数据质量检查方法的流程示意图;
36.图4为本发明实施例提供的数据质量检查装置的示意性框图;
37.图5为本发明另一实施例提供的数据质量检查装置的示意性框图;
38.图6为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
39.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发
明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
40.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
41.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
42.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
43.请参阅图1和图2,图1为本发明实施例提供的数据质量检查方法的应用场景示意图。图2为本发明实施例提供的数据质量检查方法的示意性流程图。该数据质量检查方法应用于服务器中。该服务器与终端进行数据交互,从终端获取待检查数据,对这些数据进行转换,并由flink集群进行数据质量检查,结合flink进行数据质量检查还能充分利用flink集群的计算资源,进行大数据量的计算,加快检查速度。
44.图2是本发明实施例提供的数据质量检查方法的流程示意图。如图2所示,该方法包括以下步骤s110至s140。
45.s110、配置数据质量计算规则。
46.在本实施例中,所述数据质量计算规则包括需要校验的数据库的连接方式、需要校验的字段、需要校验的表格以及具体校验规则。
47.具体地,借助终端界面进行数据质量计算规则,事先配置好数据质量计算规则,可利于数据质量的检查。
48.s120、获取待检查数据。
49.在本实施例中,待检查数据是指由终端输入的待进行质量检查的数据。
50.s130、将所述待检查数据转换为sql语句。
51.在本实施例中,sql语句是指flink集群可以识别的查询语句。
52.具体地,根据所述数据质量计算规则将所述待检查数据转换为sql语句。
53.另外,根据所述数据质量计算规则且利用flink的函数将所述待检查数据转换为sql语句。
54.通过将数据转换成flink集群能识别的sql语句。例如,检查员工表a的姓名字段不能为空,通过配置数据库连接方式、表名、字段名即可生成sql语句:select*from a where name is null,这样flink集群就会把所有为空的数据查询出来,根据各个字段的不同检查规则设定对应的数据质量计算规则,借助flink集群将不符合要求的字段查询出来。
55.转换成flink sql时,充分利用flink的函数,而不是数据库自带的函数,可以屏蔽掉不同数据库的差异,减少数据库类型的适配工作。通过flink提供的exactly-once语义可以保证数据状态的一致性,防止数据丢失、不一致的问题发生。
56.s140、将所述sql语句提交至flink集群,由flink集群结合所述数据质量计算规则进行数据质量检查,以得到检查结果。
57.apache flink是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进
行有状态的计算。flink能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。apache flink擅长处理无界和有界数据集精确的时间控制和状态化使得flink的运行时能够运行任何处理无界流的应用。有界流则由一些专为固定大小数据集特殊设计的算法和数据结构进行内部处理,产生了出色的性能。apache flink是一个分布式系统,它需要计算资源来执行应用程序。flink集成了所有常见的集群资源管理器,例如hadoop yarn、apache mesos和kubernetes,但同时也可以作为独立集群运行。flink旨在任意规模上运行有状态流式应用。因此,应用程序被并行化为可能数千个任务,这些任务分布在集群中并发执行。所以应用程序能够充分利用无尽的cpu、内存、磁盘和网络io。而且flink很容易维护非常大的应用程序状态。其异步和增量的检查点算法对处理延迟产生最小的影响,同时保证精确一次状态的一致性。有状态的flink程序针对本地状态访问进行了优化。任务的状态始终保留在内存中,如果状态大小超过可用内存,则会保存在能高效访问的磁盘数据结构中。任务通过访问本地状态来进行所有的计算,从而产生非常低的处理延迟。flink通过定期和异步地对本地状态进行持久化存储来保证故障场景下精确一次的状态一致性。
58.而基于flink的数据质量检查技术,可以天然的利用flink的优势,避免很多技术细节,通过统一的flink sql可以天然的适配各种数据库类型,进一步简化了开发成本。基于flink具备同时支持高吞吐、低延迟、高性能;支持事件时间概念,非常利于及时性的检查;支持高度灵活的窗口操作;save points保存点机制,任务重启或失败也能继续处理
59.在分布式系统中,服务故障是常有的事,为了保证服务能够7*24小时稳定运行,像flink这样的流处理器故障恢复机制是必须要有的。显然这就意味着,这类流处理器不仅要能在服务出现故障时候能够重启服务,而且还要当故障发生时,保证能够持久化服务内部各个组件的当前状态,只有这样才能保证在故障恢复时候,服务能够继续正常运行,好像故障就没有发生过一样。驱动关键业务服务的流应用是经常需要维护的,比如需要修复系统漏洞,改进功能,或开发新功能,然而升级一个有状态的流应用并不是简单的事情,因为在我们为了升级一个改进后版本而简单停止当前流应用并重启时,我们还不能丢失掉当前流应用的所处于的状态信息。如其它应用服务一样,持续运行的流应用服务也需要监控及集成到一些基础设施资源管理服务中,例如一个组件的监控服务及日志服务等。监控服务有助于预测问题并提前做出反应,日志服务提供日志记录能够帮助追踪、调查、分析故障发生的根本原因。最后,便捷易用的访问控制应用服务运行的接口也是flink的一个重要的亮点特征。有了flink的一致性、检查点机制、集群、性能保证,更加方便了数据质量检查功能的实现,而且成本低,实现简单,可使得维护性强。
60.上述的数据质量检查方法,通过设定数据质量计算规则,再将待检查数据转换为flink所能识别的sql语句,利用flink集群执行对应的sql语句,以进行数据质量检查,实现数据质量检查的成本低,维护性强,且可提高效率。
61.图3是本发明另一实施例提供的一种数据质量检查方法的流程示意图。如图3所示,本实施例的数据质量检查方法包括步骤s210-s260。其中步骤s210-s240与上述实施例中的步骤s110-s140类似,在此不再赘述。下面详细说明本实施例中所增加的步骤s250-s260。
62.s250、将所述检查结果写入指定的数据库;
63.s260、生成通知信息,并发送所述通知信息至终端,以通知所述终端到指定的数据
库获取所述检查结果。
64.将sql语句提交给flink集群执行,等待flink集群计算完成后,将计算后的结果写入到指定数据库中,然后通知程序去获取结果,程序拿取flink集群的计算结果,将结果通过邮件的方式发送给终端,告知用户具体哪些字段不符合要求,不符合要求的原因。至此,完成整个校验流程。
65.图4是本发明实施例提供的一种数据质量检查装置300的示意性框图。如图4所示,对应于以上数据质量检查方法,本发明还提供一种数据质量检查装置300。该数据质量检查装置300包括用于执行上述数据质量检查方法的单元,该装置可以被配置于服务器中。具体地,请参阅图4,该数据质量检查装置300包括规则配置单元301、数据获取单元302、数据转换单元303以及执行单元304。
66.规则配置单元301,用于配置数据质量计算规则;数据获取单元302,用于获取待检查数据;数据转换单元303,用于将所述待检查数据转换为sql语句;执行单元304,用于将所述sql语句提交至flink集群,由flink集群结合所述数据质量计算规则进行数据质量检查,以得到检查结果。
67.在一实施例中,所述数据转换单元303,用于根据所述数据质量计算规则将所述待检查数据转换为sql语句。
68.在一实施例中,所述数据转换单元303,用于根据所述数据质量计算规则且利用flink的函数将所述待检查数据转换为sql语句。
69.图5是本发明另一实施例提供的一种数据质量检查装置300的示意性框图。如图5所示,本实施例的数据质量检查装置300是上述实施例的基础上增加了写入单元305以及信息生成单元306。
70.写入单元305,用于将所述检查结果写入指定的数据库;信息生成单元306,用于生成通知信息,并发送所述通知信息至终端,以通知所述终端到指定的数据库获取所述检查结果。
71.需要说明的是,所属领域的技术人员可以清楚地了解到,上述数据质量检查装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
72.上述数据质量检查装置300可以实现为一种计算机程序的形式,该计算机程序可以在如图6所示的计算机设备上运行。
73.请参阅图6,图6是本技术实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是服务器,其中,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
74.参阅图6,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
75.该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种数据质量检查方法。
76.该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
77.该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种数据质量检查方法。
78.该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
79.其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:
80.配置数据质量计算规则;获取待检查数据;将所述待检查数据转换为sql语句;将所述sql语句提交至flink集群,由flink集群结合所述数据质量计算规则进行数据质量检查,以得到检查结果。
81.其中,所述数据质量计算规则包括需要校验的数据库的连接方式、需要校验的字段、需要校验的表格以及具体校验规则。
82.在一实施例中,处理器502在实现所述将所述sql语句提交至flink集群,由flink集群结合所述数据质量计算规则进行数据质量检查,以得到检查结果步骤之后,还实现如下步骤:
83.将所述检查结果写入指定的数据库;生成通知信息,并发送所述通知信息至终端,以通知所述终端到指定的数据库获取所述检查结果。
84.在一实施例中,处理器502在实现所述将所述待检查数据转换为sql语句步骤时,具体实现如下步骤:
85.根据所述数据质量计算规则将所述待检查数据转换为sql语句。
86.在一实施例中,处理器502在实现所述根据所述数据质量计算规则将所述待检查数据转换为sql语句步骤时,具体实现如下步骤:
87.根据所述数据质量计算规则且利用flink的函数将所述待检查数据转换为sql语句。
88.应当理解,在本技术实施例中,处理器502可以是中央处理单元(central processing unit,cpu),该处理器502还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
89.本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
90.因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理器执行如下步骤:
91.配置数据质量计算规则;获取待检查数据;将所述待检查数据转换为sql语句;将所述sql语句提交至flink集群,由flink集群结合所述数据质量计算规则进行数据质量检查,以得到检查结果。
92.其中,所述数据质量计算规则包括需要校验的数据库的连接方式、需要校验的字
段、需要校验的表格以及具体校验规则。
93.在一实施例中,所述处理器在执行所述计算机程序而实现所述将所述sql语句提交至flink集群,由flink集群结合所述数据质量计算规则进行数据质量检查,以得到检查结果步骤之后,还实现如下步骤:
94.将所述检查结果写入指定的数据库;生成通知信息,并发送所述通知信息至终端,以通知所述终端到指定的数据库获取所述检查结果。
95.在一实施例中,所述处理器在执行所述计算机程序而实现所述将所述待检查数据转换为sql语句步骤时,具体实现如下步骤:
96.根据所述数据质量计算规则将所述待检查数据转换为sql语句。
97.在一实施例中,所述处理器在执行所述计算机程序而实现所述根据所述数据质量计算规则将所述待检查数据转换为sql语句步骤时,具体实现如下步骤:
98.根据所述数据质量计算规则且利用flink的函数将所述待检查数据转换为sql语句。
99.所述存储介质可以是u盘、移动硬盘、只读存储器(read-only memory,rom)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
100.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
101.在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
102.本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
103.该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
104.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1