CN113553320B - 数据质量监控方法及装置 - Google Patents
数据质量监控方法及装置 Download PDFInfo
- Publication number
- CN113553320B CN113553320B CN202110866720.6A CN202110866720A CN113553320B CN 113553320 B CN113553320 B CN 113553320B CN 202110866720 A CN202110866720 A CN 202110866720A CN 113553320 B CN113553320 B CN 113553320B
- Authority
- CN
- China
- Prior art keywords
- data
- quality monitoring
- hudi
- storage node
- lake
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据质量监控方法,所述方法包括:判断在同一事务时间同步输出的源数据的条数及同步输入的数据的条数是否相同;若相同,则每隔第一预设时间从起始数据存储节点中获取在第一事务时间同步输出的第一数据及从HUDI中获取在第一事务时间同步至HUDI中的第二数据;根据第一数据和第二数据确定第一监控结果;每隔第二预设时间从HUDI中抽取出具有模拟标识信息的数据;根据抽取出的数据与所有预先***至起始数据存储节点中的模拟数据确定第二监控结果;根据第一监控结果与第二监控结果确定最终的数据质量监控结果。本申请可以提高数据质量。
Description
技术领域
本申请实施例涉及数据处理技术领域,尤其涉及一种数据质量监控方法及装置。
背景技术
随着网络技术的飞速发展,许多企业和团体通过构建工作流引擎来将每一天通过各种应用***收集到的各种类型的数据同步至数据湖(HUDI)中,以解决数据共享及数据信息孤岛的问题。现有技术中,工作流引擎一般包括多个数据计算节点以及多个数据存储节点,通过工作流引擎中的多个数据计算节点和数据存储节点的处理可以将存储在起始数据存储节点中的各种类型的源数据同步至数据湖(HUDI)中。
为了提升数据湖(HUDI)中的数据质量,现有技术中,在数据湖获取到来自各种应用***的源数据后,通过对源数据进行清洗整合来实现对数据的治理,以提高数据质量。但该方法,由于源数据量一般非常巨大,而数据湖进行清洗整合的运算资源较为有限,使得数据的清洗整合效率较低,不能满足数据湖中大数据量的清洗整合需求。
因此,为了提高数据湖中的数据质量,亟需一种对数据入湖的过程中及时对数据质量进行审计的方案来发现数据入湖时存在的问题,以提高数据入湖的质量。
发明内容
本申请实施例的目的是提供一种数据质量监控方法,可以解决现有技术在数据入湖时不能及时发现数据入湖时存在的数据质量的问题。
本申请实施例的一个方面提供了一种数据质量监控方法,应用于工作流引擎中,所述工作流引擎用于将存储在起始数据存储节点中的源数据同步至数据湖HUDI中,所述数据质量监控方法包括:
判断在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数是否相同;
若判定出数据的条数相同,则每隔第一预设时间从所述起始数据存储节点中获取在第一事务时间同步输出的第一数据及从所述数据湖HUDI中获取在所述第一事务时间同步至所述数据湖HUDI中的第二数据;
根据所述第一数据和所述第二数据确定第一数据质量监控结果;
每隔第二预设时间从所述数据湖HUDI中抽取出具有模拟标识信息的数据;
根据抽取出的数据与所有预先***至所述起始数据存储节点中的模拟数据确定第二数据质量监控结果;
根据所述第一数据质量监控结果与所述第二数据质量监控结果确定最终的数据质量监控结果。
可选的,所述方法还包括:
在将所述源数据同步至所述数据湖HUDI的过程中,统计在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数,其中,所述源数据包括预先***至所述起始数据存储节点中的具有模拟标识信息的模拟数据。
可选的,所述工作流引擎包括至少一个数据计算节点及至少一个数据存储节点,所述数据存储节点与所述数据计算节点一一对应,所述起始数据存储节点为所述工作流引擎中的第一个数据存储节点,所述在将所述源数据同步至所述数据湖HUDI的过程中,统计在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数包括:
在将所述源数据同步至所述数据湖HUDI的过程中,统计在同一事务时间各个数据计算节点的输入及输出数据的条数;
判断在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数是否相同包括:
分别判断在同一事务时间各个数据计算节点的输入及输出数据的条数是否相同。
可选的,所述第一预设时间中包含有多个第一事务时间,所述每隔第一预设时间从所述起始数据存储节点中获取在第一事务时间同步输出的第一数据及从所述数据湖HUDI中获取在所述第一事务时间同步至所述数据湖HUDI中的第二数据包括:
每隔第一预设时间从所述起始数据存储节点中随机获取在第二事务时间同步输出的第一数据及从所述数据湖HUDI中获取在所述第二事务时间同步至所述数据湖HUDI中的第二数据,其中,所述第二事务时间为多个第一事务时间中的一个事务时间。
可选的,所述方法还包括:
每隔第三预设时间向所述起始数据存储节点中***预设条数的模拟数据,其中,所述模拟数据具有模拟标识信息。
可选的,所述每隔第三预设时间向所述起始数据存储节点中***预设条数的模拟数据的步骤之前,还包括:
采用预设的数据模拟器模拟生成所述模拟数据。
可选的,所述根据所述第一数据质量监控结果与所述第二数据质量监控结果确定最终的数据质量监控结果包括:
在所述第一数据质量监控结果为所述第一数据与所述第二数据相同,且所述第二数据质量监控结果为抽取出的数据与所有预先***至所述起始数据存储节点中的模拟数据相同时,确定所述最终的数据质量监控结果为数据质量不存在问题。
本申请还提供一种数据质量监控装置,应用于工作流引擎中,所述工作流引擎用于将存储在起始数据存储节点中的源数据同步至数据湖HUDI中,数据质量监控装置包括:
判断模块,用于判断在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数是否相同;
获取模块,用于若判定出数据的条数相同,则每隔第一预设时间从所述起始数据存储节点中获取在第一事务时间同步输出的第一数据及从所述数据湖HUDI中获取在所述第一事务时间同步至所述数据湖HUDI中的第二数据;
第一确定模块,用于根据所述第一数据和第二数据确定第一数据质量监控结果;
抽取模块,用于每隔第二预设时间从所述数据湖HUDI中抽取出具有模拟标识信息的数据;
第二确定模块,用于根据抽取出的数据与所有预先***至所述起始数据存储节点中的模拟数据确定第二数据质量监控结果;
第三确定模块,用于根据所述第一数据质量监控结果与所述第二数据质量监控结果确定最终的数据质量监控结果。
本申请实施例提供的数据质量监控方法,通过在将源数据写入至数据湖的过程中,判断在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数是否相同,并在判定出数据的条数相同,进一步比较每隔第一预设时间从所述起始数据存储节点中获取在第一事务时间同步输出的第一数据及从所述数据湖HUDI中获取在所述第一事务时间同步至所述数据湖HUDI中的第二数据是否相同,并根据第一比较结果输出第一数据质量监控结果。本实施例通过在数据入湖的过程中,对数据进行监测,从而可以及时准确地发现数据入湖时存在的数据质量问题,避免后续对数据湖中的数据进行清洗整合,提高数据湖中的数据质量。
附图说明
图1示意性示出了本申请一实施方式中的数据质量监控方法的应用环境示意图;
图2示意性示出了本申请一实施方式的数据质量监控方法的流程图;
图3为意性示出了本申请实施例中的工作流引擎的架构示意图;
图4示意性示出了本申请一实施方式的数据质量监控装置的程序模块图;
图5示意性示出了根据本申请实施例的适于实现数据质量监控方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
图1示意性示出了本申请一实施方式中的数据质量监控方法的应用环境架构图,在示例性的实施方式中,该应用环境的***可以包括以下几部分:工作流引擎1、HUDI 2、数据质量监控装置3(Data Quality Center,数据质量中心)。
所述工作流引擎1或者称为数据流计算引擎,可以为Airflow,Airflow是一个可编程,调度和监控的工作流平台,基于有向无环图(DAG),airflow可以定义一组有依赖的任务,按照依赖依次执行。
HUDI 2是一个数据湖或是数据库,但它又不是数据湖或是数据库。众所周知,Hive是一个计算框架,但是现在我们更多的是使用Spark基于Hive对HDFS中文件提供的Schema信息和元数据进行计算,而Hive作为计算引擎的功能逐渐被忽略,更多的是将Hive视作一个“数据库”(尽管它并不是),而Hudi则是完善了Hive的这部分功能,甚至可以提供近实时的数据抽取与查询。
使用Hudi对HDFS或是其他存储***中的文件进行管理,使用Hudi创建相应的表,一样可以使用Hive或是Spark对这些表进行计算。但是却解决了Hadoop的小文件问题,查询缓慢问题等。
Hudi具有以下特性:快速upsert、可***索引、以原子方式操作数据并具有回滚功能、写入器之间的快照隔离、savepoint用户数据恢复的保存点、管理文件大小,使用统计数据布局、数据行的异步压缩和柱状数据、时间轴数据跟踪血统。
所述数据质量监控装置3,可以为数据质量中心(Data Quality Center,DQC),用于对数据质量进行监测,可以通过配置数据质量校验规则,自动在数据处理任务过程中进行数据质量方面的监控。
DQC主要有数据监控和数据清洗两大功能。数据监控,指的是能监控数据质量并报警,其本身不对数据产出进行处理,需要报警接收人判断并决定如何处理;而数据清洗则是将不符合既定规则的数据清洗掉,以保证最终数据产出不含“脏数据”,数据清洗不会触发报警。
图2示意性示出了根据本申请实施例一实施方式的数据质量监控方法的流程图。该方法应用于工作流引擎中,所述工作流引擎用于将存储在起始数据存储节点中的源数据同步至数据湖HUDI中。
参阅图2所示,该数据质量监控方法包括:
步骤S21,判断在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数是否相同。
具体地,工作流引擎在将存储在起始数据存储节点中的源数据同步至数据湖HUDI中时,是以一个事务时间为单位来将数据同步至数据湖中的。
其中,所述事务时间为数据湖HUDI在数据集上执行的所有操作的时间轴(Timeline)上的时间点(或者称为commit time)。Timeline是由一组作用在某个表上的Instant对象组成。Instant表示在某个时间点对表进行操作的,从而达到某一个状态的表示,所以Instant包含Instant Action,Instant Time和Instant State这三个内容,它们的含义如下所示:
Instant Action:对Hudi表执行的操作类型,目前包括COMMITS、CLEANS、DELTA_COMMIT、COMPACTION、ROLLBACK、SAVEPOINT这6种操作类型。
Instant Time:表示一个时间戳,这个时间戳必须是按照Instant Action开始执行的时间顺序单调递增的。
Instant State:表示在指定的时间点(Instant Time)对Hudi表执行操作(Instant Action)后,表所处的状态,目前包括REQUESTED(已调度但未初始化)、INFLIGHT(当前正在执行)、COMPLETED(操作执行完成)这3种状态。
在一示例性的实施方式中,所述方法还包括:
在将所述源数据同步至所述数据湖HUDI的过程中,统计在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数,其中,所述源数据包括预先***至所述起始数据存储节点中的具有模拟标识信息的模拟数据。
具体地,所述源数据包括通过各种应用***收集到的存储于工作流引擎中的起始数据存储节点中的各种业务数据,以及预先***至所述起始数据存储节点中的具有模拟标识信息的模拟数据。其中,模拟标识信息可以用于区分真实的业务数据和模拟的业务数据。
可以理解的是,用于存储源数据的起始数据存储节点可以包括一个或者多个数据存储***,数据存储***可以为Mysql、Kafka、Redis或hive等。在本实施例中,该起始数据存储节点优选为Mysql数据库。
在本实施例中,在将所述源数据同步至所述数据湖HUDI的过程中,每一个数据在同步至数据湖HUDI时都具有一个事务时间,假设,在一天之内可以分为200个事务时间,则不同时间同步的数据具有的事务时间则为该200个事务时间中的一个。因此,在实施例中,在将数据同步至数据湖的过程中,可以统计在同一个事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数,比如,在事务时间10:05分内从所述起始数据存储节点中同步输出的源数据的条数为20000条,在事务时间10:05分内同步输入至所述数据湖HUDI的数据的条数也为20000条。
在一示例性的实施方式中,所述工作流引擎包括至少一个数据计算节点及至少一个数据存储节点,所述数据存储节点与所述数据计算节点一一对应,所述工作流引擎用于将存储于起始数据存储节点中的源数据同步至数据湖HUDI中,所述起始数据存储节点为所述工作流引擎中的第一个数据存储节点。
在本实施例中,每一个数据计算节点用于从对应的数据存储节点中获取数据,并按照预设的规则对获取到的数据进行处理,得到数据处理结果。数据计算节点可以为Spark或Spark。
Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎,其可以对对无界和有界数据流进行有状态计算。Flink设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算。Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。
Spark是UC Berkeley AMP lab(加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架。Spark拥有Hadoop MapReduce所具有的优点,但不同于MapReduce的是:Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。Spark也是一种与Hadoop相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使Spark在某些工作负载方面表现得更加优越,换句话说,Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。Spark是在Scala语言中实现的,它将Scala用作其应用程序框架。与Hadoop不同,Spark和Scala能够紧密集成,其中的Scala可以像操作本地集合对象一样轻松地操作分布式数据集。
需要说明是,上述Flink或Spark一般通过Flink集群或者Spark集群的方式对外提供数据计算服务。
在本实施例中,所述数据存储节点与数据计算节点一一对应,用于存储数据。数据存储节点可以为Mysql、Kafka、Redis或hive等。
其中,MySQL是一种关系型数据库管理***,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息***,它可以处理获取者在网站中的所有动作流数据,其中,动作流数据包括网页浏览,搜索和其他行为数据。
Redis是一个key-value存储***。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set--有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。Hive十分适合对数据仓库进行统计分析。
作为示例,参照图3,所述工作流引擎包括Mysql 30(第一数据存储节点,也是起始数据存储节点)、CDC Flink 31(第一数据计算节点)、kafka 32(第二数据存储节点)、HUDIFlink 33(第二数据计算节点)。
在本实施例中,为了提高数据质量,所述在将所述源数据同步至所述数据湖HUDI的过程中,统计在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数可以包括:
在将所述源数据同步至所述数据湖HUDI的过程中,统计在同一事务时间各个数据计算节点的输入及输出数据的条数。
具体地,若工作流引擎中包含有2个数据计算节点,则在统计的过程中,可以分别对这两个数据计算节点在同一事务时间输入及输出数据的条数进行统计。
在本实施例中,在得到同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数后,可以将这两个条数进行比较,以判断两者的条数是否相同。
在另一实施例中,若统计了多个数据计算节点的输入及输出数据的条数,则所述判断在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数是否相同可以包括:
分别判断在同一事务时间各个数据计算节点的输入及输出数据的条数是否相同。
具体地,在判定时,需要对各个数据计算节点输入及输出数据的条数进行判断,同理,假设工作流引擎中包含有两个数据计算节点,则需要对该两个数据计算节点输入及输出数据的条数进行判断,只有两个数据计算节点的输入输出的条数都相同时,才可以判定在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数是相同的。
步骤S22,若判定出数据的条数相同,则每隔第一预设时间从所述起始数据存储节点中获取在第一事务时间同步输出的第一数据及从所述数据湖HUDI中获取在所述第一事务时间同步至所述数据湖HUDI中的第二数据。
具体地,所述第一预设时间为预先设定的,可以根据实际情况进行设定与修改,比如,所述第一预设时间为5分钟。所述第一事务时间为在所述第一预设时间中包含的一个事务时间,比如,在5分钟内存在5个第一事务时间,则该第一事务时间可以为按照预设规则所选定的一个事务时间。
在一示例性的实施方式中,所述第一预设时间中包含有多个第一事务时间,所述每隔第一预设时间从所述起始数据存储节点中获取在第一事务时间同步输出的第一数据及从所述数据湖HUDI中获取在所述第一事务时间同步至所述数据湖HUDI中的第二数据可以包括:
每隔第一预设时间从所述起始数据存储节点中随机获取在第二事务时间同步输出的第一数据及从所述数据湖HUDI中获取在所述第二事务时间同步至所述数据湖HUDI中的第二数据,其中,所述第二事务时间为多个第一事务时间中的一个事务时间。
作为示例,假设第一时间时间中包含有5个事务时间,分别为事务时间A、事务时间B、事务时间C、事务时间D及事务时间E,则在获取数据时,可以先随机中该5个事务时间中选取一个事务时间作为所述第二事务时间,假设随机选定的事务时间为事务时间E,则在实际获取数据时,可以从所述起始数据存储节点中获取在事务时间E输入至对应的数据存储节点的第一数据及从所述数据湖HUDI中获取在事务时间E同步至所述数据湖HUDI中的第二数据。
在一示例性的实施方式中,所述方法还包括:
若判定出数据的条数不相同,则输出告警信息。
具体地,所述告警信息可以通过短信、邮件等方式输入至管理员,以便管理员可以及时了解到告警情况。
步骤S23,根据所述第一数据和第二数据确定第一数据质量监控结果。
具体地,在获取到第一数据与第二数据之后,可以对第一数据与第二数据进行一一比对,以确定第一数据与第二数据是否相同,在不相同时,可以将不同的数据输出,以作为所述第一数据质量监控结果;在相同时,可以输出预设信息作为所述第一数据质量监控结果,比如输出“当前数据质量较好”。
在一实施方式中,在比较出第一数据与第二数据中存在不同时,也可以不直接输出该不相同的数据,而是直接输出不相同数据的数量以及占比,比如,第一数据与第二数据都有1000条,其中,不相同的数据条数为10条,则可以将10,1%作为所述第一数据质量监测结果。
步骤S24,每隔第二预设时间从所述数据湖HUDI中抽取出具有所述模拟标识信息的数据。
具体地,所述第二预设时间可以为checkpoint时间,比如,checkpoint时间为5分钟一次,则所述第三时间间隔为5分钟。当然,所述第二预设时间也可以为其他设定的时间,在本实施例中不作限定。
本实施例中,可以在每次进行checkpoint时,从数据湖中抽取出具有所述模拟标识信息的数据。
步骤S25,根据抽取出的数据与所有预先***至所述起始数据存储节点中的模拟数据确定第二数据质量监控结果。
具体地,在从数据湖中抽取到数据后,可以将抽取得到的数据和***至所述起始数据存储节点中的模拟数据进行一一比较,得到第二比较结果,并根据比较结果确定第二数据质量监控结果。
其中,所述第二数据质量监控结果可以和第一数据质量监控结果一样,在数据不相同时,将包含不相同数据的数量以及占比作为所述第二数据质量监控结果。
在一示例性的实施方式中,所述方法还包括:
每隔第三预设时间向所述起始数据存储节点中***预设条数的模拟数据,其中,所述模拟数据具有模拟标识信息。
具体地,所述第二预设时间为预先设定的,其可以根据实际情况进行设定与修改,比如,所述第二预设时间为5分钟。
所述预设条数也是预先设定的,其可以以根据实际情况进行设定与修改,比如,所述预设条数为1000条。
所述模拟数据可以为各种类型的业务数据,具体数据的类型在本实施例中不作限定。每一条模拟数据都具有一个模拟标识信息,该模拟标识信息可以用于区分真实的业务数据和模拟的业务数据。
需要说明的是,真实的业务数据指的是线上真实产生的业务数据,模拟数据为通过模拟器模拟产生的业务数据。
作为示例,可以每隔5分钟就向起始数据存储节点中***1000条模拟数据。
在一示例性的实施方式中,为了得到所述模拟数据,所述方法还包括:
采用预设的数据模拟器模拟生成所述模拟数据。
所述数据模拟器可以为现有的各类数据模拟器,在本实施例中不作限定。
步骤S26,根据所述第一数据质量监控结果与所述第二数据质量监控结果确定最终的数据质量监控结果。
具体地,可以预先为第一数据质量监测结果和第二数据质量监测结果设定对应的权重值,比如,设定第一数据质量监测结果和第二数据质量监测结果的权重值分别为0.7与0.3,这样,最终的数据质量监控结果=0.7*第一数据质量监控结果+0.3*第二数据质量监控结果。
可以理解的是,在所述第一数据质量监控结果为所述第一数据与所述第二数据相同,且所述第二数据质量监控结果为抽取出的数据与所有预先***至所述起始数据存储节点中的模拟数据相同时,确定所述最终的数据质量监控结果为数据质量不存在问题。
也就是说,当第一数据质量监控结果与第二数据质量监控结果都为数据相同时,则即使第一数据质量监控结果与第二数据质量监控结果存在对应的权重值,其最终输出的质量监控结果仍为数据质量不存在问题。
本实施例中,通过结合数据采样检测与数据全量检测相结合的方式来判定数据同步至数据湖的数据质量,从而可以更加准确地发现数据入湖时存在的问题,以提高数据入湖的质量。
本申请实施例提供的数据质量监控方法,通过在将源数据写入至数据湖的过程中,判断在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数是否相同,并在判定出数据的条数相同,进一步比较每隔第一预设时间从所述起始数据存储节点中获取在第一事务时间输入至对应的数据存储节点的第一数据及从所述数据湖HUDI中获取在所述第一事务时间同步至所述数据湖HUDI中的第二数据是否相同,以及根据对抽取出的数据与所有预先***至所述起始数据存储节点中的模拟数据进行比较,最终根据两者的比较结果来确定最终的数据质量监控结果。本实施例通过在数据入湖的过程中,对数据进行监测,从而可以及时准确地发现数据入湖时存在的数据质量问题,避免后续对数据湖中的数据进行清洗整合,提高数据湖中的数据质量。
图4示出了根据本申请实施例的数据质量监控装置400的程序模块图,该数据质量监控装置400应用于工作流引擎中,所述工作流引擎包括至少一个数据计算节点及至少一个数据存储节点,所述数据存储节点与所述数据计算节点一一对应,所述工作流引擎用于将存储于起始数据存储节点中的源数据同步至数据湖HUDI中,所述起始数据存储节点为所述工作流引擎中的第一个数据存储节点,其可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。如图4所示,数据质量监控装置400可以包括:判断模块401、获取模块402及第一确定模块403、抽取模块404、第二确定模块405及第三确定模块406。
判断模块401,用于判断在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数是否相同;
获取模块402,用于若判定出数据的条数相同,则每隔第一预设时间从所述起始数据存储节点中获取在第一事务时间同步输出的第一数据及从所述数据湖HUDI中获取在所述第一事务时间同步至所述数据湖HUDI中的第二数据;
第一确定模块403,用于根据所述第一数据和第二数据确定第一数据质量监控结果。
抽取模块404,用于每隔第二预设时间从所述数据湖HUDI中抽取出具有模拟标识信息的数据;
第二确定模块405,用于根据抽取出的数据与所有预先***至所述起始数据存储节点中的模拟数据确定第二数据质量监控结果;
第三确定模块406,用于根据所述第一数据质量监控结果与所述第二数据质量监控结果确定最终的数据质量监控结果.
在一示例性的实施方式中,所述工作流引擎包括至少一个数据计算节点及至少一个数据存储节点,所述数据存储节点与所述数据计算节点一一对应,所述起始数据存储节点为所述工作流引擎中的第一个数据存储节点,统计模块401,还用于在将所述源数据同步至所述数据湖HUDI的过程中,统计在同一事务时间各个数据计算节点的输入及输出数据的条数。
判断模块401,还用于分别判断在同一事务时间各个数据计算节点的输入及输出数据的条数是否相同。
在一示例性的实施方式中,数据质量监控装置400还包括统计模块。
统计模块,用于在将所述源数据同步至所述数据湖HUDI的过程中,统计在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数,其中,所述源数据包括预先***至所述起始数据存储节点中的具有模拟标识信息的模拟数据;
在一示例性的实施方式中,所述第一预设时间中包含有多个第一事务时间,所述获取模块402,还用于每隔第一预设时间从所述起始数据存储节点中随机获取在第二事务时间输入至对应的数据存储节点的第一数据及从所述数据湖HUDI中获取在所述第二事务时间同步至所述数据湖HUDI中的第二数据,其中,所述第二事务时间为多个第一事务时间中的一个事务时间。
在一示例性的实施方式中,数据质量监控装置400还包括***模块。
所述***模块,用于每隔第三预设时间向所述起始数据存储节点中***预设条数的模拟数据,其中,所述模拟数据具有模拟标识信息。
在一示例性的实施方式中,数据质量监控装置400还包括生成模块。
所述生成模块,用于采用预设的数据模拟器模拟生成所述模拟数据。
在一示例性的实施方式中,所述第三确定模块,还用于在所述第一数据质量监控结果为所述第一数据与所述第二数据相同,且所述第二数据质量监控结果为抽取出的数据与所有预先***至所述起始数据存储节点中的模拟数据相同时,确定所述最终的数据质量监控结果为数据质量不存在问题。
本申请实施例提供的数据质量监控装置,通过在将源数据写入至数据湖的过程中,判断在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数是否相同,并在判定出数据的条数相同,进一步比较每隔第一预设时间从所述起始数据存储节点中获取在第一事务时间同步输出的第一数据及从所述数据湖HUDI中获取在所述第一事务时间同步至所述数据湖HUDI中的第二数据是否相同,并根据第一比较结果输出第一数据质量监控结果。本实施例通过在数据入湖的过程中,对数据进行监测,从而可以及时准确地发现数据入湖时存在的数据质量问题,避免后续对数据湖中的数据进行清洗整合,提高数据湖中的数据质量。
图5示意性示出了根据本申请实施例的适于实现数据质量监控方法的计算机设备的硬件架构示意图。本实施例中,计算机设备20是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是网关等数据转发设备。如图5所示,计算机设备20至少包括但不限于:可通过***总线相互通信连接存储器21、处理器22、网络接口23。其中:
存储器21至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备20的内部存储模块,例如该计算机设备20的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备20的外部存储设备,例如该计算机设备20上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(FlashCard)等。当然,存储器21还可以既包括计算机设备20的内部存储模块也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备20的操作***和各类应用软件,例如数据质量监控方法的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备20的总体操作,例如执行与计算机设备20进行数据交互或者通信相关的控制和处理等。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据。
网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在计算机设备20与其他计算机设备之间建立通信连接。例如,网络接口23用于通过网络将计算机设备20与外部终端相连,在计算机设备20与外部终端之间的建立数据质量监控通道和通信连接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯***(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图5仅示出了具有部件21-23的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的数据质量监控方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的数据质量监控方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作***和各类应用软件,例如实施例中的数据质量监控方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据质量监控方法,应用于工作流引擎中,所述工作流引擎用于将存储在起始数据存储节点中的源数据同步至数据湖HUDI中,其特征在于,所述数据质量监控方法包括:
判断在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数是否相同;
若判定出数据的条数相同,则每隔第一预设时间从所述起始数据存储节点中获取在第一事务时间同步输出的第一数据及从所述数据湖HUDI中获取在所述第一事务时间同步至所述数据湖HUDI中的第二数据;
根据所述第一数据和所述第二数据确定第一数据质量监控结果;
每隔第二预设时间从所述数据湖HUDI中抽取出具有模拟标识信息的数据,所述模拟标识信息用于区分真实的业务数据和模拟的业务数据;
根据抽取出的数据与所有预先***至所述起始数据存储节点中的模拟数据确定第二数据质量监控结果;
根据所述第一数据质量监控结果与所述第二数据质量监控结果确定最终的数据质量监控结果。
2.根据权利要求1所述的数据质量监控方法,其特征在于,所述方法还包括:
在将所述源数据同步至所述数据湖HUDI的过程中,统计在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数,其中,所述源数据包括预先***至所述起始数据存储节点中的具有模拟标识信息的模拟数据。
3.根据权利要求2所述的数据质量监控方法,其特征在于,所述工作流引擎包括至少一个数据计算节点及至少一个数据存储节点,所述数据存储节点与所述数据计算节点一一对应,所述起始数据存储节点为所述工作流引擎中的第一个数据存储节点,所述在将所述源数据同步至所述数据湖HUDI的过程中,统计在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数包括:
在将所述源数据同步至所述数据湖HUDI的过程中,统计在同一事务时间各个数据计算节点的输入及输出数据的条数;
所述判断在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数是否相同包括:
分别判断在同一事务时间各个数据计算节点的输入及输出数据的条数是否相同。
4.根据权利要求1所述的数据质量监控方法,其特征在于,所述第一预设时间中包含有多个第一事务时间,所述每隔第一预设时间从所述起始数据存储节点中获取在第一事务时间同步输出的第一数据及从所述数据湖HUDI中获取在所述第一事务时间同步至所述数据湖HUDI中的第二数据包括:
每隔第一预设时间从所述起始数据存储节点中随机获取在第二事务时间同步输出的第一数据及从所述数据湖HUDI中获取在所述第二事务时间同步至所述数据湖HUDI中的第二数据,其中,所述第二事务时间为多个第一事务时间中的一个事务时间。
5.根据权利要求1至4任一项所述的数据质量监控方法,其特征在于,所述方法还包括:
每隔第三预设时间向所述起始数据存储节点中***预设条数的模拟数据,其中,所述模拟数据具有模拟标识信息。
6.根据权利要求5所述的数据质量监控方法,其特征在于,所述每隔第三预设时间向所述起始数据存储节点中***预设条数的模拟数据的步骤之前,还包括:
采用预设的数据模拟器模拟生成所述模拟数据。
7.根据权利要求1所述的数据质量监控方法,其特征在于,所述根据所述第一数据质量监控结果与所述第二数据质量监控结果确定最终的数据质量监控结果包括:
在所述第一数据质量监控结果为所述第一数据与所述第二数据相同,且所述第二数据质量监控结果为抽取出的数据与所有预先***至所述起始数据存储节点中的模拟数据相同时,确定所述最终的数据质量监控结果为数据质量不存在问题。
8.一种数据质量监控装置,应用于工作流引擎中,所述工作流引擎用于将存储在起始数据存储节点中的源数据同步至数据湖HUDI中,其特征在于,数据质量监控装置包括:
判断模块,用于判断在同一事务时间从所述起始数据存储节点中同步输出的源数据的条数及同步输入至所述数据湖HUDI的数据的条数是否相同;
获取模块,用于若判定出数据的条数相同,则每隔第一预设时间从所述起始数据存储节点中获取在第一事务时间同步输出的第一数据及从所述数据湖HUDI中获取在所述第一事务时间同步至所述数据湖HUDI中的第二数据;
第一确定模块,用于根据所述第一数据和第二数据确定第一数据质量监控结果;
抽取模块,用于每隔第二预设时间从所述数据湖HUDI中抽取出具有模拟标识信息的数据,所述模拟标识信息用于区分真实的业务数据和模拟的业务数据;
第二确定模块,用于根据抽取出的数据与所有预先***至所述起始数据存储节点中的模拟数据确定第二数据质量监控结果;
第三确定模块,用于根据所述第一数据质量监控结果与所述第二数据质量监控结果确定最终的数据质量监控结果。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至7任一项所述数据质量监控的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时用于实现权利要求1至7任一项所述数据质量监控的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110866720.6A CN113553320B (zh) | 2021-07-29 | 2021-07-29 | 数据质量监控方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110866720.6A CN113553320B (zh) | 2021-07-29 | 2021-07-29 | 数据质量监控方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113553320A CN113553320A (zh) | 2021-10-26 |
CN113553320B true CN113553320B (zh) | 2022-09-02 |
Family
ID=78133241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110866720.6A Active CN113553320B (zh) | 2021-07-29 | 2021-07-29 | 数据质量监控方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113553320B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908883A (zh) * | 2019-11-15 | 2020-03-24 | 江苏满运软件科技有限公司 | 用户画像数据监控方法、***、设备及存储介质 |
CN111459986A (zh) * | 2020-04-07 | 2020-07-28 | 中国建设银行股份有限公司 | 数据计算***及方法 |
CN112181967A (zh) * | 2020-09-29 | 2021-01-05 | 中国平安人寿保险股份有限公司 | 源数据质量的监测方法、装置、计算机设备及介质 |
CN113010495A (zh) * | 2021-03-19 | 2021-06-22 | 北京三快在线科技有限公司 | 一种数据库优化方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649414B (zh) * | 2015-11-04 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 一种数据仓库数据异常的预检测方法和设备 |
CN105956036A (zh) * | 2016-04-26 | 2016-09-21 | ***股份有限公司 | 一种交易质量分析装置以及交易质量分析方法 |
US11321337B2 (en) * | 2018-06-04 | 2022-05-03 | Cisco Technology, Inc. | Crowdsourcing data into a data lake |
CN110659138B (zh) * | 2019-08-26 | 2024-03-15 | 平安科技(深圳)有限公司 | 基于定时任务的数据同步方法、装置、终端及存储介质 |
CN112860506B (zh) * | 2019-11-28 | 2024-05-17 | 阿里巴巴集团控股有限公司 | 监控数据的处理方法、装置、***和存储介质 |
-
2021
- 2021-07-29 CN CN202110866720.6A patent/CN113553320B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908883A (zh) * | 2019-11-15 | 2020-03-24 | 江苏满运软件科技有限公司 | 用户画像数据监控方法、***、设备及存储介质 |
CN111459986A (zh) * | 2020-04-07 | 2020-07-28 | 中国建设银行股份有限公司 | 数据计算***及方法 |
CN112181967A (zh) * | 2020-09-29 | 2021-01-05 | 中国平安人寿保险股份有限公司 | 源数据质量的监测方法、装置、计算机设备及介质 |
CN113010495A (zh) * | 2021-03-19 | 2021-06-22 | 北京三快在线科技有限公司 | 一种数据库优化方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113553320A (zh) | 2021-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10698892B2 (en) | Order-independent multi-record hash generation and data filtering | |
Herodotou et al. | Profiling, what-if analysis, and cost-based optimization of mapreduce programs | |
US9886347B2 (en) | Data replication in a database management system | |
US9367601B2 (en) | Cost-based optimization of configuration parameters and cluster sizing for hadoop | |
CN108694195B (zh) | 一种分布式数据仓库的管理方法及*** | |
CN110569214B (zh) | 用于日志文件的索引构建方法、装置及电子设备 | |
US10572508B2 (en) | Consistent query execution in hybrid DBMS | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
JP2010524060A (ja) | 分散コンピューティングにおけるデータマージング | |
CN111259004B (zh) | 一种存储引擎中数据索引的方法以及相关装置 | |
CN111046036A (zh) | 数据同步方法、装置、***及存储介质 | |
CN116009428A (zh) | 基于流式计算引擎的工业数据监控***和方法、介质 | |
CN113360581A (zh) | 数据处理方法、装置及存储介质 | |
CN107391528B (zh) | 前端组件依赖信息搜索方法及设备 | |
CN113468196B (zh) | 用于处理数据的方法、装置、***、服务器和介质 | |
CN114490554A (zh) | 数据同步方法及其装置、电子设备及存储介质 | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
CN113220530B (zh) | 数据质量监控方法及平台 | |
US11023449B2 (en) | Method and system to search logs that contain a massive number of entries | |
CN104317820B (zh) | 报表的统计方法和装置 | |
CN113553320B (zh) | 数据质量监控方法及装置 | |
CN116010452A (zh) | 基于流式计算引擎的工业数据处理***和方法、介质 | |
CN116628042A (zh) | 数据处理方法、装置、设备及介质 | |
Eyal-Salman et al. | Identifying traceability links between product variants and their features | |
CN114490865A (zh) | 数据库同步方法、装置、设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |