一种基于petri网的多源异构数据质量检测方法及系统转让专利

申请号 : CN202011592682.1

文献号 : CN112540975B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 贵恒冯凯王元卓王洪显

申请人 : 中科大数据研究院

摘要 :

本发明公开了一种基于petri网的多源异构数据质量检测方法及系统,可以使用调度计划模块,配置数据质量作业,再利用petri网的消息反馈机制,针对每次质量作业,形成表格、图表形式的质量分析报告,最后,积累数据质量检测的问题,形成数据质量问题知识库,为后续的数据质量检测提供可持续发展的意见和建议,保证了各数据源相互独立,统一了SQL形式,解决了多源异构数据针对不同数据源需要特定查询方法的难题,为使用者提供一种图形化、可拖拽的质量任务、作业管理方法,可配置质量检测调度计划,生成数据质量分析结果供使用者查看,并建立数据质量知识库提升解决质量问题的能力。为系统数据质量提升提供有效支撑,从而提升数据价值。

权利要求 :

1.一种基于petri网的多源异构数据质量检测方法,其特征在于:包括如下步骤步骤1、配置数据源

对系统所管理的数据湖中连接的异构数据源进行配置,使多个异构数据源与数据湖连接,将所有的异构数据源连接本地的多源异构数据处理服务器;

步骤2、元数据标准的制定

多源异构数据处理服务器的数据库采用自主扩展的PostgreSQL数据库,数据格式采用向大转型的原则,通过对多源异构数据库实行元数据采集任务得到元数据,元数据包括元数据表信息、字段信息、索引信息和约束信息;将采集来的元数据转为PostgreSQL的数据格式入库,从而使多源异构数据具有统一的数据标准;

步骤3,建立外部表连接

根据步骤1的数据源信息与步骤2的元数据信息,通过自主扩展的PostgreSQL数据库,建立外部表连接;通过配置外部表服务,建立查询用户,创建外部表到外部数据映射的方式实现多源异构数据的查询;

步骤4,制定数据质量规则

根据质量规则或者质量任务构建加入信息反馈的petri网模型,利用外部表查询获得检测数据源,petri网模型中一次质量任务中,起始为质量任务的检测数据源,以质量规则作为变迁,规则变迁之间为消息库所,产出规则检测结果,多个质量规则与消息库所组成一个质量任务,实现了单一数据源的质量任务检测;再以质量任务作为变迁,任务变迁之间为消息库所,产出任务检测结果,多个质量任务与消息库所组成一个质量作业,通过质量作业、质量任务、质量规则的三层结构,实现多源异构数据质量的检测;

步骤5,形成数据质量分析报告

根据步骤4消息库所的实时反馈,实现了实时监测数据质量检测过程,将每一次的数据质量作业形成数据质量分析报告,以表格和图表的形式帮助使用者分析管理的数据源中数据的完整性、一致性、准确性、及时性与有效性。

2.根据权利要求1所述的基于petri网的多源异构数据质量检测方法,其特征在于:步骤1中,异构数据源包括关系型数据库、NoSQL数据库和结构化数据文件。

3.根据权利要求1所述的基于petri网的多源异构数据质量检测方法,其特征在于:步骤4中,数据质量作业为自动执行,实现了针对被管理数据源的自动化数据质量检测。

4.根据权利要求1所述的基于petri网的多源异构数据质量检测方法,其特征在于:根据步骤5中的实时反馈内容,已存在的质量问题的产生原因、解决方案进行记录,逐渐积累形成数据质量知识库。

5.一种基于petri网的多源异构数据检测系统,其特征在于:包括数据质量规则库模块、数据质量任务管理模块、数据质量作业模块、调度计划管理模块、数据质量分析模块与数据质量知识库模块;所述数据质量规则库模块作为数据质量规则的集合,为质量检测提供质量规则;数据质量任务管理模块作为数据质量检测的执行单元,在执行时首先选择稽查对象,稽查对象为多源异构处理服务器管理的数据源,通过元数据选到外部数据源的数据表;然后,将想要检测的质量规则通过拖动、连线的方式进行串并联的图形化编排;数据质量作业管理模块以petri网模型为基础,在数据质量作业中配置质量任务,每一个质量任务对应一种多源异构数据源,利用petri网的可达图生成Oozie工作流串并联调度执行质量任务,从而通过质量作业、质量任务、质量规则的三层结构稽查多源异构数据源;调度计划管理模块通过选择调度作业、调度方式,执行计划来构建调度计划;数据质量分析模块用于接收并记录质量任务消息库所输出的质量规则检测信息和质量作业消息库所输出的质量任务检测信息,并对质量规则检测信息和质量任务检测信息进行统计和评分;数据质量知识库模块根据数据质量分析模块记录的质量规则检测信息和质量任务检测信息,通过前端接口的方式为使用者提供标记。

6.根据权利要求5所述的基于petri网的多源异构数据质量检测系统,其特征在于:所述数据质量规则库模块中数据质量判别规则包括完整性、一致性、准确性、及时性和有效性。

说明书 :

一种基于petri网的多源异构数据质量检测方法及系统

技术领域

[0001] 本发明属于大数据、数据治理、数据分析技术领域,具体涉及一种基于petri网的多源异构数据质量检测方法及系统。

背景技术

[0002] 信息时代在当今已经过渡到了大数据、人工智能与物联网的时代,在大数据分析、数仓构建、机器学习、神经网络、物联网数据传输领域,数据是这一切的基石。数据质量在数
据的使用过程中至关重要,只有有质量保障的数据,算法才能得到更接近正确的答案。
[0003] 在大数据的背景下,数据治理存在数据量庞大、数据来源多种、数据表述方式多样的问题。随着数据湖(Data Lake)概念的提出,大数据治理无需事先对数据进行结构化的处
理,数据以关系型数据库、NoSQL数据库、非结构化数据和二进制数据进行存储。不同存储方
式内容格式相互独立,无法有效的整合利用。
[0004] 元数据(Metadata)是描述数据的数据,是对数据及信息资源的描述性信息。传统的关系型数据库(Oracle、MySQL、PostgreSQL、SQLServer等)会将元数据存在数据库自带的
系统表当中,非关系型数据库(ElasticSearch、MongoDB等)也会在特定位置存放元数据信
息。这使得通过制定元数据标准、共享元数据将复杂的、变化的分布式环境数据治理成为可
能。
[0005] petri网自20世纪60年代被提出,通过严格的数据表述,直观的图形表达,在描述多模块、多任务的系统时有很大的优势。在云应用平台(Saas)中,数据质量检测往往也是包
含多数据库,多检测任务的并发过程,在大数据、数据湖的环境下,不仅对质量检测的正确
性有要求,对质量检测的效能有要求,对数据质量检测及时的信息反馈也有要求。多源异构
数据质量检测可以通过petri网可视化配置的方式形成行之有效的工作流。
[0006] 当前数据质量检测是数据分析的必要条件,是保证数据应用的基础。现有数据质量检测一般通过完整性、一致性、准确性、及时性四个方面判别数据是否达到预期的质量要
求。往往只针对单一数据源,单一数据格式的质量检测,得到的结果也只是是否达到要求,
缺乏全系统考量、结果可解释,显然在大数据的环境下无法胜任。本发明提供一种全局的、
可配置的、可调度的、可分析的、包含知识库的数据质量检测方法解决上述难题。

发明内容

[0007] 针对现有设备存在的缺陷和问题,本发明提供一种基于petri网的多源异构数据质量检测方法,有效的解决了现有数据质量检测往往只针对单一数据源,单一数据格式的
质量检测,缺乏全系统考量、结果可解释,无法胜任现在的大数据的环境。
[0008] 本发明解决其技术问题所采用的方案是:一种基于petri网的多源异构数据质量检测方法,包括如下步骤
[0009] 步骤1、配置数据源
[0010] 对系统所管理的数据湖中连接的异构数据源进行配置,使多个异构数据源与数据湖连接,将所有的异构数据源连接本地的多源异构数据处理服务器;
[0011] 步骤2、元数据标准的制定
[0012] 多源异构数据处理服务器的数据库采用自主扩展的PostgreSQL数据库,数据格式采用向大转型的原则,通过对多源异构数据库实行元数据采集任务得到元数据,元数据包
括元数据表信息、字段信息、索引信息和约束信息;将采集来的元数据转为PostgreSQL的数
据格式入库,从而使多源异构数据具有统一的数据标准;
[0013] 步骤3,建立外部表连接
[0014] 根据步骤1的数据源信息与步骤2的元数据信息,通过自主扩展的PostgreSQL数据库,建立外部表连接;通过配置外部表服务,建立查询用户,创建外部表到外部数据映射的
方式实现多源异构数据的查询;
[0015] 步骤4,制定数据质量规则
[0016] 根据质量规则或者质量任务构建加入信息反馈的petri网模型,利用外部表查询获得检测数据源,petri网模型中一次质量任务中,起始为质量任务的检测数据源,以质量
规则作为变迁,规则变迁之间为消息库所,产出规则检测结果,多个质量规则与消息库所组
成一个质量任务,实现了单一数据源的质量任务检测;再以质量任务作为变迁,任务变迁之
间为消息库所,产出任务检测结果,多个质量任务与消息库所组成一个质量作业,通过质量
作业、质量任务、质量规则的三层结构,实现多源异构数据质量的检测;
[0017] 步骤5,形成数据质量分析报告
[0018] 根据步骤4消息库所的实时反馈,实现了实时监测数据质量检测过程,将每一次的数据质量作业形成数据质量分析报告,以表格和图表的形式帮助使用者分析管理的数据源
中数据的完整性、一致性、准确性、及时性与有效性。
[0019] 一种基于petri网的多源异构数据检测系统,包括数据质量规则库模块、数据质量任务管理模块、数据质量作业模块、调度计划管理模块、数据质量分析模块与数据质量知识
库模块;所述数据质量规则库模块作为数据质量规则的集合,为质量检测提供质量规则;数
据质量任务管理模块作为数据质量检测的执行单元,在执行时首先选择稽查对象,稽查对
象为多源异构处理服务器管理的数据源,通过元数据选到外部数据源的数据表;然后,将想
要检测的质量规则通过拖动、连线的方式进行串并联的图形化编排;数据质量作业管理模
块以petri网模型为基础,在数据质量作业中配置质量任务,每一个质量任务对应一种多源
异构数据源,利用petri网的可达图生成Oozie工作流串并联调度执行质量任务,从而通过
质量作业、质量任务、质量规则的三层结构稽查多源异构数据源;调度计划管理模块通过选
择调度作业、调度方式,执行计划来构建调度计划;数据质量分析模块用于接收并记录质量
任务消息库所输出的质量规则检测信息和质量作业消息库所输出的质量任务检测信息,并
对质量规则检测信息和质量任务检测信息进行统计和评分;数据质量知识库模块根据数据
质量分析模块记录的质量规则检测信息和质量任务检测信息,通过前端接口的方式为使用
者提供标记。
[0020] 进一步的,步骤1中,异构数据源包括关系型数据库、NoSQL数据库和结构化数据文件。
[0021] 进一步的,步骤4中,数据质量作业为自动执行,实现了针对被管理数据源的自动化数据质量检测。
[0022] 进一步的,根据步骤5中的实时反馈内容,已存在的质量问题的产生原因、解决方案进行记录,逐渐积累形成数据质量知识库。
[0023] 进一步的,所述数据质量规则库模块中数据质量判别规则包括完整性、一致性、准确性、及时性和有效性。
[0024] 本发明的有益效果:
[0025] 数据质量是数据分析、数据挖掘与数据应用的前提,针对当前单一的数据质量检测,本发明提供一种基于petri网的多源异构数据质量检测方法,利用数据湖形式的大数据
治理思想,采用以多源异构数据处理服务器为中心,连接多端多边数据源的方式,充分结合
了元数据标准构建,配置多源异构数据源外部表查询服务,通过中心服务器统一SQL下发至
多源异构数据源进行质量规则的查询,以数据质量规则为变迁,通过petri网使用拖拽的方
式形成可视化、可配置的数据质量任务工作流模型,再以数据质量任务为变迁,形成数据质
量作业的工作流模型,实现多源异构数据的质量检测。
[0026] 同时可以使用调度计划模块,配置数据质量作业,再利用petri网的消息反馈机制,针对每次质量作业,形成表格、图表形式的质量分析报告,最后,积累数据质量检测的问
题,形成数据质量问题知识库,为后续的数据质量检测提供可持续发展的意见和建议,保证
了各数据源相互独立,统一了SQL形式,解决了多源异构数据针对不同数据源需要特定查询
方法的难题,为使用者提供一种图形化、可拖拽的质量任务、作业管理方法,可配置质量检
测调度计划,生成数据质量分析结果供使用者查看,并建立数据质量知识库提升解决质量
问题的能力。为系统数据质量提升提供有效支撑,从而提升数据价值。

附图说明

[0027] 图1为本发明多源异构数据处理服务器架构图。
[0028] 图2为本发明基于petri网的数据质量任务工作流。
[0029] 图3为本发明基于petri网的数据质量作业工作流。

具体实施方式

[0030] 下面结合附图和实施例对本发明进一步说明。
[0031] 实施例1:本实施例旨在提供一种基于petri网的多源异构数据检测方法,针对现有数据质量检测往往只针对单一数据源,单一数据格式的质量检测,缺乏全系统考量、结果
可解释,无法胜任现在的大数据的环境,本实施例一种以petri网模型为基础,适用于多源
异构数据检测的系统。
[0032] 本实施例中一种基于petri网的多源异构数据检测系统包括数据质量规则库模块、数据质量任务管理模块、数据质量作业模块、调度计划管理模块、数据质量分析模块与
数据质量知识库模块;所述数据质量规则库模块作为数据质量规则的集合,为质量检测提
供质量规则;数据质量任务管理模块作为数据质量检测的执行单元,在执行时首先选择稽
查对象,稽查对象为多源异构处理服务器管理的数据源,通过元数据选到(前端选择)外部
数据源的数据表;然后,将想要检测的质量规则通过拖动、连线的方式进行串并联的图形化
编排;数据质量作业管理模块以petri网模型为基础,在数据质量作业中配置质量任务,每
一个质量任务对应一种多源异构数据源,利用petri网的可达图生成Oozie工作流串并联调
度执行质量任务,从而通过质量作业、质量任务、质量规则的三层结构稽查多源异构数据
源;调度计划管理模块通过选择调度作业、调度方式,执行计划来构建调度计划;数据质量
分析模块用于接收并记录质量任务消息库所输出的质量规则检测信息和质量作业消息库
所输出的质量任务检测信息,并对质量规则检测信息和质量任务检测信息进行统计和评
分;数据质量知识库模块根据数据质量分析模块记录的质量规则检测信息和质量任务检测
信息,通过前端接口的方式为使用者提供标记。
[0033] 其中数据质量规则库模块的具体实施方式为:数据质量判别规则为完整性、一致性、准确性、及时性,在此基础上加入有效性,可以实现数据极值、特殊数据格式、数据枚举
等数据质量的检测;在规则属性上,集成了现有通用数据质量规则检测方法,并允许使用者
自定义质量规则,允许可配置的质量规则输出。采用统一SQL的形式进行查询,统一SQL依靠
自主扩展的PostgreSQL数据库外部表服务(fdw)实现,多源异构处理服务器架构如图1所
示,实现方式通过配置外部表服务‑创建多源异构处理服务器的外部查询用户‑创建外部表
数据映射,在建立连接后,使用者可以直接在多源异构处理服务器上使用PostgreSQL这一
传统关系型数据库实现对多源异构数据库的质量规则查询,值得一提的是,本发明实现了
对MySQL、Oracle、PostgreSQL、MongoDB、ElasticSearch、数据文件等的聚合函数下推,将查
询SQL传递到外部数据源执行,充分利用了各种不同数据库的优秀性能,在大数据的场景
下,仅将查询结果返回,不仅大大减少了数据的传输,还显著提升了查询性能。自定义规则
仅需要写关系型数据库的SQL语句就可以检测系统提供的所有类型的数据库与结构化数据
文件的数据质量,降低了用户的使用难度。
[0034] 数据质量任务管理模块的具体实施方式为:首先多源异构处理服务器对数据的管理采用元数据管理方式,指定统一的元数据标准,对多源异构的数据进行描述。元数据为数
据质量任务的图形化编排数据质量规则奠定了基础。应用petri网构建数据质量任务工作
流如图2所示。先选择稽查对象,稽查对象为多源异构处理服务器管理的数据源,通过元数
据选到外部数据源的数据表。然后,将想要检测的质量规则通过拖动、连线的方式进行串并
联的图形化编排。针对每一个质量规则,可以配置规则的元数据字段、参数配置,可多选质
量检测的告警条件。为了给使用者更直观的图形显示,后台自动补充消息库所并在图形上
隐藏了消息库所,这样,使用者只用关心质量任务所编排的质量规则。
[0035] petri网是由一个四元组(P,T,f,m0)组成,分别代表了库所、变迁、流关系和初始标记。其中f:(P×T)∪(T×P)→N0是流关系m0:P→N0是初始标记。petri网的引发规则:当m
(p)≥f(p,t),∀p∈lt时,迁移t在标记m下被激活,记作m[t>,否则迁移不被激活,一个激活
的迁移可以被引发,当t在m下被引发后,一个新的标记m’到达,记作m[t>m’,且有m’(p)=m
(p)‑f(p,t)+f(t,p),其中∀p∈P,petri网的引发过程,不消耗时间。
[0036] 质量规则在变迁过程中发现问题,之后在消息库所对质量规则问题进行记录,实时反映数据质量规则检测的状态,每一个数据质量规则的执行通过Oozie进行调度,Oozie
作为一个工作流调度框架,必须是一个有向无环图,将petri网的库所改为消息库所适应系
统需求,实现了检测信息的实时发出与接收,这里再将petri网针对Oozie进行改造以适应
本系统。用petri网的可达图(Reachability Graph)来表示有向无环图的工作流,则G=(V,
E,R),其中V是节点的集合,v∈V表示一类可达的标识;E是有向弧的集合,e∈E标识从一类
可达标识到另一类可达标识的有向弧;R是一个转换关系,R:E→V×V。Oozie调度系统的两
大核心分别为依赖和触发,前端在通过拖拽构建图2、图3petri网工作流模型时,明确记录
图关系的依赖和触发条件。触发即petri网变迁可达,依赖详细的记录了当前变迁可达所需
依赖链。采用快慢指针法,若快指针走向末尾(next指向NULL)没追上慢指针,则说明依赖链
无环,Oozie可调度经改造的petri网模型。这样就实现了Oozie调度执行数据质量规则的串
并联工作流。
[0037] 数据质量作业管理模块的具体实施方式为:根据数据质量任务管理模块已配置的数据质量任务,可以看出,一个质量任务对应一个稽查数据源,为解决多源异构数据源的质
量检测,类似于数据质量任务配置质量规则,在数据质量作业中配置质量任务,每一个质量
任务对应一种多源异构数据源,利用petri网的可达图生成Oozie工作流串并联调度执行质
量任务,这样就可以稽查多源异构数据源。应用petri网构建数据质量作业工作流如图3所
示。质量任务在变迁过程中发现问题,之后在消息库所对质量任务问题进行记录,实时反映
数据质量任务检测的状态。完成数据质量作业的图形化构建,实际上形成了质量作业‑质量
任务‑质量规则三层包含关系,以此完成多源异构数据质量的检测。
[0038] 调度计划管理模块的具体实施方式为:在生产环境中,例如:有针对数据分析的一次性数据检测,也有针对数据开发的数据定期维护,还有数据挖掘得到流式或批量数据的
及时验证。因此对数据质量作业提出了更具体的自动化要求,在本发明中,使用者可以自行
配置调度计划。通过选择调度作业,调度方式(单次或周期),执行计划(立即执行或定时执
行)来构建一个调度计划。还引入了订阅配置的模块,可以将数据质量检测的结果在消息系
统显示,并发送至创建质量作业者的邮箱。
[0039] 数据质量分析模块的具体实施方式为:数据质量分析接收并记录质量任务消息库所输出的质量规则检测信息与质量作业消息库所输出的质量任务检测信息。数据质量分析
模块以列表的形式进行质量任务统计;以饼状图的形式展现问题数和问题数据量的质量问
题分布;以折线图的形式展现问题数和问题数据量的质量问题趋势;最后,以有效性、准确
性、完整性、唯一性、一致性与及时性作为维度,对各个维度进行计分,对数据质量检测存在
的问题,以百分制的形式加权扣除,使用六芒星图展示数据质量评分模块。
[0040] 数据质量知识库模块的具体实施方式为:根据数据质量分析模块记录的质量规则检测信息和质量任务检测信息,通过前端接口的方式,为使用者提供标记。自动提供问题来
源规则、任务,允许使用者对记录的质量问题产生原因、解决方案进行记录,配置问题字典
目录管理质量问题知识库。这为后续质量问题检测提供了参考,有效提升了使用者处理数
据质量问题的能力。
[0041] 本实施例具体实施时,包括如下步骤
[0042] 步骤1、配置数据源
[0043] 对系统所管理的数据湖中连接的异构数据源进行配置,使多个异构数据源与数据湖连接,将所有的异构数据源连接本地的多源异构数据处理服务器;异构数据源包括关系
型数据库、NoSQL数据库和结构化数据文件。
[0044] 步骤2、元数据标准的制定
[0045] 多源异构数据处理服务器的数据库采用自主扩展的PostgreSQL数据库,数据格式采用向大转型的原则,通过对多源异构数据库实行元数据采集任务得到元数据,元数据包
括元数据表信息、字段信息、索引信息和约束信息;将采集来的元数据转为PostgreSQL的数
据格式入库,从而使多源异构数据具有统一的数据标准。
[0046] 步骤3,建立外部表连接
[0047] 根据步骤1的数据源信息与步骤2的元数据信息,通过自主扩展的PostgreSQL数据库,建立外部表连接;通过配置外部表服务,建立查询用户,创建外部表到外部数据映射的
方式实现多源异构数据的查询。
[0048] 步骤4,制定数据质量规则
[0049] 根据质量规则或者质量任务构建加入信息反馈的petri网模型,利用外部表查询获得检测数据源,petri网模型中一次质量任务中,起始为质量任务的检测数据源,以质量
规则作为变迁,规则变迁之间为消息库所,产出规则检测结果,多个质量规则与消息库所组
成一个质量任务,实现了单一数据源的质量任务检测;再以质量任务作为变迁,任务变迁之
间为消息库所,产出任务检测结果,多个质量任务与消息库所组成一个质量作业,通过质量
作业、质量任务、质量规则的三层结构,实现多源异构数据质量的检测;本实施例中数据质
量作业为自动执行,实现了针对被管理数据源的自动化数据质量检测。
[0050] 步骤5,形成数据质量分析报告
[0051] 根据步骤4消息库所的实时反馈,实现了实时监测数据质量检测过程,将每一次的数据质量作业形成数据质量分析报告,以表格和图表的形式帮助使用者分析管理的数据源
中数据的完整性、一致性、准确性、及时性与有效性;同时根据实时反馈内容,已存在的质量
问题的产生原因、解决方案等进行记录,逐渐积累形成数据质量知识库。
[0052] 下面结合具体实例进行说明如图2所示,图2首先配置了稽查对象PostgreSQL数据源,并加入了字段最大值、字段最小值、字段平均值、字段汇总值与字段空值校验五个质量
规则,构成了一个质量任务。
[0053] 图3首先配置开始事件,并加入了自媒体库数据范围、舆情库名称空值、科技情报数据格式与分析库数据格式四个质量任务,最后加入结束事件,构成了一个质量作业。
[0054] 由此,本发明提供了一种基于petri网的多源异构数据质量检测方法,利用数据湖形式的大数据治理思想,采用以多源异构数据处理服务器为中心,连接多端多边数据源的
方式,充分结合了元数据标准构建,配置多源异构数据源外部表查询服务,通过中心服务器
统一SQL下发至多源异构数据源进行质量规则的查询,以数据质量规则为变迁,通过petri
网使用拖拽的方式形成可视化、可配置的数据质量任务工作流模型,再以数据质量任务为
变迁,形成数据质量作业的工作流模型,实现多源异构数据的质量检测。可以使用调度计划
模块,配置数据质量作业。再利用petri网的消息反馈机制,针对每次质量作业,形成表格、
图表形式的质量分析报告。最后,积累数据质量检测的问题,形成数据质量问题知识库,为
后续的数据质量检测提供可持续发展的意见和建议。