CN108170707A - 一种数据质量检测的方法和系统 - Google Patents
一种数据质量检测的方法和系统 Download PDFInfo
- Publication number
- CN108170707A CN108170707A CN201711174529.5A CN201711174529A CN108170707A CN 108170707 A CN108170707 A CN 108170707A CN 201711174529 A CN201711174529 A CN 201711174529A CN 108170707 A CN108170707 A CN 108170707A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- real
- sex index
- covering
- 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.)
- Pending
Links
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/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
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)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种数据质量检测的方法和系统,所述方法包括如下步骤:步骤一、搜集数据并建立数据库;步骤二、检测所述数据库中的数据的覆盖性,获得数据的覆盖性指数;步骤三、检测所述数据库中的数据的实时性,获得数据的实时性指数;步骤四、检测所述数据库中的数据的准确性,获得数据的准确性指数;步骤五、对上述覆盖性指数、实时性指数、准确性指数做加权平均,评估数据质量。通过本发明可以有效进行数据质量检测,能够同时根据数据的覆盖性、实时性、准确性三个方面检测数据质量,有力的提高了数据质量检测的速度和效果,为各个行业数据质量检测提供了工具和依据。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据质量检测的方法和系统。
背景技术
数据质量指的是“数据对其在操作、决策支持和规划中扮演角色的适应程度”。数据质量包括三个维度:覆盖性、实时性、准确性。基于数据质量的三个维度要素,可以对数据进行审核,其中数据的实时性主要跟数据的同步和处理过程的效率相关,更多的是通过监控ETL任务的方式来保证数据的及时性,所以这里的数据审核主要指的是评估数据的覆盖性、实时性和准确性,包括采用:数据质量评估技术、数据自动修复技术、实体识别技术。
目前已有一些国内外公司或个人针对数据质量检测申请了一些专利,例如中国专利公开号CN104820720A,公开了一种数据质量检测方法和装置,先单独从源库中抽取数据;然后再根据预设的质量规则,对所述抽取得到的数据进行质量检测;最后再将通过所述质量检测的数据,进行整合处理。采用本发明,可以提高数据抽取效率和数据质量,并且易于质量检测规则的扩展。
虽然目前的数据质量检测分别涉及了数据的覆盖性、实时性、准确性,然而,现有技术中仍然没有同时根据数据的覆盖性、实时性、准确性三个方面同时检测数据质量的方法或系统。
发明内容
为解决以上问题,本发明的目的是通过以下技术方案实现的。
本发明提出了一种数据质量检测的方法,其包括如下步骤:
步骤一、搜集数据并建立数据库;
步骤二、检测所述数据库中的数据的覆盖性,获得数据的覆盖性指数;
步骤三、检测所述数据库中的数据的实时性,获得数据的实时性指数;
步骤四、检测所述数据库中的数据的准确性,获得数据的准确性指数;
步骤五、对上述覆盖性指数、实时性指数、准确性指数做加权平均,评估数据质量。
优选的,搜索数据时采用主题网络爬虫算法。
优选的,所述数据的覆盖性检测采用基于匹配树的松散覆盖算法,包括以下步骤:
(1)构造PADRES匹配树;将数据插入匹配树之前,首先将数据中的谓词构成谓词节点;然后将谓词节点按属性名称的字母顺序插入虚拟节点之后、叶子节点之前;如果过个谓词节点具有相同的前驱,则共享前驱;具有相同前驱的多个谓词节点具有相同的属性名称,则共享属性名称;插入所有的谓词节点后,插入叶子节点来代表数据的终止;
(2)扩展匹配树以支持覆盖性检测;为了记录数据间的覆盖关系,在叶子节点中增加两个指针链表;其中,第一个指针链表记录覆盖自己的数据,第二个指针链表记录自己所覆盖的数据;
(3)对数据进行松散覆盖检测,首先找出一个覆盖自己的节点,然后找出所有的被自己覆盖的节点,如此循环,根据上述两种节点的占比情况获得覆盖性指数。
优选的,所述数据的实时性检测采用数据流滑动窗口平均值算法,包括以下步骤:
(1)对数据流进行单次扫描,对输入数据流滑动窗口中的数据取算术平均值,得到一条第一更新数据流;
(2)对上述第一更新数据流的滑动窗口中的数据取算数平均值得到第二更新数据流;
(3)根据上述两条数据流得到数据线性预测模型中的参数,结合预测步长获取数据的实时性指数。
优选的,所述数据的数据准确性检测具体包括以下步骤:
(1)查询数据语句的逻辑要求是否正确;根据每个表提供的某个具有唯一性的字段进行关联时检查语句的逻辑顺序;当遇到一个查询语句的逻辑关系无法满足统计要求时,用临时表关联出正确的逻辑要求;
(2)查询的条件是否符合数据定义;根据既存的数据定义对相关字段加条件限制,以达到筛选出正确的数据结果集;检查条件是否都满足了数据定义的要求,如果是则提出进行确认,直到所写条件满足这个数据定义;
(3)数据对比,获得数据准确性指数。
根据本发明的另一个方面,还提供了一种数据质量检测的系统,其包括顺序连接的如下模块:
数据搜集模块,用于搜集数据并建立数据库;
覆盖性检测模块,用于检测所述数据库中的数据的覆盖性,获得数据的覆盖性指数;
实时性检测模块,用于检测所述数据库中的数据的实时性,获得数据的实时性指数;
准确性检测模块,用于检测所述数据库中的数据的准确性,获得数据的准确性指数;
数据质量评估模块,用于对上述覆盖性指数、实时性指数、准确性指数做加权平均,评估数据质量。
优选的,其中所述覆盖性检测模块包括顺序连接的如下单元:
匹配树构造单元,用于构造PADRES匹配树;将数据插入匹配树之前,首先将数据中的谓词构成谓词节点;然后将谓词节点按属性名称的字母顺序插入虚拟节点之后、叶子节点之前;如果过个谓词节点具有相同的前驱,则共享前驱;具有相同前驱的多个谓词节点具有相同的属性名称,则共享属性名称;插入所有的谓词节点后,插入叶子节点来代表数据的终止;
匹配树扩展单元,用于扩展匹配树以支持覆盖性检测;为了记录数据间的覆盖关系,在叶子节点中增加两个指针链表;其中,第一个指针链表记录覆盖自己的数据,第二个指针链表记录自己所覆盖的数据;
松散覆盖检测单元,用于对数据进行松散覆盖检测,首先找出一个覆盖自己的节点,然后找出所有的被自己覆盖的节点,如此循环,根据上述两种节点的占比情况获得覆盖性指数。
优选的,所述实时性检测模块包括顺序连接的如下单元:
第一更新单元,用于对数据流进行单次扫描,对输入数据流滑动窗口中的数据取算术平均值,得到一条第一更新数据流;
第二更新单元,用于对上述第一更新数据流的滑动窗口中的数据取算数平均值得到第二更新数据流;
实时性指数计算单元,用于根据上述两条数据流得到数据线性预测模型中的参数,结合预测步长获取数据的实时性指数。
优选的,所述数据准确性检测具体包括以下步骤:
逻辑检查单元,用于查询数据语句的逻辑要求是否正确;根据每个表提供的某个具有唯一性的字段进行关联时检查语句的逻辑顺序;当遇到一个查询语句的逻辑关系无法满足统计要求时,用临时表关联出正确的逻辑要求;
条件检查单元,用于检查条件是否符合数据定义;根据既存的数据定义对相关字段加条件限制,以达到筛选出正确的数据结果集;检查条件是否都满足了数据定义的要求,如果是则提出进行确认,直到所写条件满足这个数据定义;
数据对比单元,用于对比数据,获得数据准确性指数。
优选的,所述搜索数据时采用主题网络爬虫算法。
通过本发明可以有效进行数据质量检测,能够同时根据数据的覆盖性、实时性、准确性三个方面检测数据质量,有力的提高了数据质量检测的速度和效果,为各个行业数据质量检测提供了工具和依据。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
附图1示出了根据本发明实施方式的数据质量检测的方法流程图。
附图2示出了根据本发明实施方式的检测数据覆盖性的方法流程图。
附图3示出了根据本发明实施方式的检测数据实时性的方法流程图。
附图4示出了根据本发明实施方式的检测数据准确性的方法流程图。
附图5示出了根据本发明实施方式的数据质量检测的系统结构图。
附图6示出了根据本发明实施方式的覆盖性检测模块的结构图。
附图7示出了根据本发明实施方式的实时性检测模块的结构图。
附图8示出了根据本发明实施方式的准确性检测模块的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
具体的,如图1所示,本发明提出了一种数据质量检测的方法,其包括如下步骤:
步骤S1、搜集数据并建立数据库;
步骤S2、检测所述数据库中的数据的覆盖性,获得数据的覆盖性指数;
步骤S3、检测所述数据库中的数据的实时性,获得数据的实时性指数;
步骤S4、检测所述数据库中的数据的准确性,获得数据的准确性指数;
步骤S5、对上述覆盖性指数、实时性指数、准确性指数做加权平均,评估数据质量。
以下对每个步骤的具体实现方式进行详细说明:
步骤S1、搜集数据以建立数据库;这里的数据可以覆盖各个行业范围,可以来自多个不同的行业,例如新闻、地图导航、统计、农业、地质等等。只要是需要数据质量检测的行业或研究方向,都是可以搜集并提取对应的数据,并建立数据库。所述搜集的方法可以统计本行业内的众多专业数据库,也可以通过爬虫算法从网络上抓取。
在本发明的优选实施例中,上述数据搜集采用网络爬虫技术进行目标抓取。网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫(General Purpose Web Crawler)、聚焦网络爬虫(Focused Web Crawler)、增量式网络爬虫(Incremental Web Crawler)、深层网络爬虫(Deep Web Crawler)。实际的网络爬虫系统通常是几种爬虫技术相结合实现的。
通用网络爬虫又称全网爬虫(Scalable Web Crawler),爬行对象从一些种子URL扩充到整个Web,主要为门户站点搜索引擎和大型Web服务提供商采集数据。由于商业原因,它们的技术细节很少公布出来。这类网络爬虫的爬行范围和数量巨大,对于爬行速度和存储空间要求较高,对于爬行页面的顺序要求相对较低,同时由于待刷新的页面太多,通常采用并行工作方式,但需要较长时间才能刷新一次页面。虽然存在一定缺陷,通用网络爬虫适用于为搜索引擎搜索广泛的主题,有较强的应用价值。
聚焦网络爬虫(Focused Crawler),又称主题网络爬虫(Topical Crawler),是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫。和通用网络爬虫相比,聚焦爬虫只需要爬行与主题相关的页面,极大地节省了硬件和网络资源,保存的页面也由于数量少而更新快,还可以很好地满足一些特定人群对特定领域信息的需求。
聚焦网络爬虫和通用网络爬虫相比,增加了链接评价模块以及内容评价模块。聚焦爬虫爬行策略实现的关键是评价页面内容和链接的重要性,不同的方法计算出的重要性不同,由此导致链接的访问顺序也不同。
由于本发明面向特定的数据源,因此属于主题网络爬虫算法。本发明把网页正文,锚文本、锚文本附近信息、反向网页、反向链接的兄弟链接、URL链接结合起来,使用一种混合爬行策略。针对每步待抓取网页的特点,采用差异化的URL预测方法来提高网页与主题的相关度。
步骤S2、检测所述数据库中的数据的覆盖性,获得数据的覆盖性指数。
在这个步骤,本发明创新性的提出了一种数据覆盖性检测算法,即基于匹配树的松散覆盖算法。如图2所示,所述基于匹配树的松散覆盖算法具体包括以下步骤:
S21、构造PADRES匹配树。
本发明实施例中,PADRES匹配树由谓词构成的节点组成。使用一个虚拟节点来表示树的根节点,在匹配树中,虚拟节点(根节点)代表所有数据的起点,叶子节点代表单个数据的终点,谓词节点在虚拟节点和叶子节点的中间。数据的内容可以通过从根节点到叶子节点之间的谓词节点构成的路径来表示。与谓词一样,谓词节点包括属性名称、属性符号、属性值三个部分。
在本发明的匹配树中,如果能够事先知道各个谓词的出现概率,并根据概率来对谓词排序,可以增加数据共享谓词的可能性。然而,统计谓词出现的概率并进行排序,需要更复杂的处理过程,包括额外的算法、数据结构等等。
本发明的构造PADRES匹配树的过程如下:将数据插入匹配树之前,首先将数据中的谓词构成谓词节点;然后将谓词节点按属性名称的字母顺序插入虚拟节点之后、叶子节点之前。特别地,如果过个谓词节点具有相同的前驱,则共享前驱;具有相同前驱的多个谓词节点具有相同的属性名称,则共享属性名称。插入所有的谓词节点后,必需插入叶子节点来代表数据的终止。由于一个叶子节点对应一个数据,因此叶子节点中可以记录与数据相关的其他信息。
S22、扩展匹配树以支持覆盖性检测。本发明优选实施例中,扩展匹配树以充当有序集的角色。在匹配树中,一个叶子节点对应一个数据。为了记录数据间的覆盖关系,可以在叶子节点中增加两个指针链表。其中,第一个指针链表记录覆盖自己的数据,称之为父亲节点。第二个指针链表记录自己所覆盖的数据,称之为孩子节点。
S23、对数据进行松散覆盖检测,首先找出一个覆盖自己的节点(父节点),然后找出所有的被自己覆盖的节点(子节点),如此循环,根据上述两种节点的占比情况获得覆盖性指数。
松散覆盖路由在PADRES中,也称为懒惰的覆盖路由。在松散覆盖路由中,当代理节点收到一个数据a时,代理节点检查有序集中的所有数据,看看是否存在数据覆盖该数据a。如果存在数据覆盖a,则a可以停止传播;如果a不被覆盖,则a将加入路由表,并传播出去。
例如,可以设定一个阈值(例如50%),如果父节点的覆盖比例超过这个阈值,则可以认为数据的覆盖性较好。
步骤S3、检测所述数据库中的数据的实时性,获得数据的实时性指数。
在这个步骤,本发明创新性的提出了一种数据实时性检测算法,即数据流滑动窗口平均值算法。如图3所示,所述数据实时性检测算法具体包括以下步骤:
S31、对数据流进行单次扫描,对输入数据流滑动窗口中的数据取算术平均值,得到一条第一更新数据流;
S32、对上述第一更新数据流的滑动窗口中的数据取算数平均值得到第二更新数据流;
S33、根据上述两条数据流得到数据线性预测模型中的参数,结合预测步长获取数据的实时性指数。所述数据线性预测模型可以为AR模型(P阶自回归模型)、MA模型(q阶自回归模型)、ARMA模型(自回归移动平均模型)。所述预测步长可由用户自己设定,也可以根据实际数据的应用领域选取。所述实时性指数可以根据上述参数分别和预测步长卷积再加权平均而获得,加权平均的权数可由用户自己设定,也可以根据实际数据的应用领域选取。
该数据流滑动窗口平均值算法拓展自指数直方图算法,相对于指数直方图算法,本发明的算法时间性能更好,且同样能够保证优先的误差。
步骤S4、检测所述数据库中的数据的准确性,获得数据的准确性指数;
在这个步骤,本发明创新性的提出了一种数据准确性检测算法。如图3所示,所述数据准确性检测算法具体包括以下步骤:
S41、查询数据语句的逻辑要求是否正确。一般的数据需求很少是单表查询,往往都是涉及几个表,或跨数据库,抑或跨服务器等,这样就要求对这些表进行关联。表之间关联就是一种逻辑顺序。本发明根据每个表提供的某个具有唯一性的字段进行关联时检查这种逻辑顺序。关联好之后可以根据系统提供的查询语句执行过程进行查看。检查这个执行过程是否是按照既定的要求进行关联的。不能盲目的根据已存在的字段随意进行关联,那样查询出来结果固然有了,但是是否正确值得商榷。此外当遇到一个查询语句的逻辑关系无法满足统计要求时,本发明用临时表关联出正确的逻辑要求,而不能因为一个查询语句简便致使逻辑语句出现明显的错误。
S42、查询的条件是否符合数据定义。表之间的逻辑顺序处理好之后,本发明根据既存的数据定义对相关字段加条件限制,以达到筛选出正确的数据结果集。根据已经存在的数据定义在编写查询语句时如果出现偏差,如某个(些)数据没统计进去,或不该出现的数据反而出现了。这时本发明检查条件是否都满足了数据定义的要求。如果是,则对数据定义的理解出现了问题,或者在对这个数据进行定义时本身就有问题,此时需要提出进行确认。直到所写条件满足这个数据定义。
S43、数据对比,获得数据准确性指数。在完成了对数据的需求明确,逻辑清楚,条件正确等步骤之后,统计出的结果集是否就是需求者所需数据,这里就有比较重要一步:数据对比。本发明的数据对比有多种形式,下面依次列出。
(1)往期数据对比
与以往数据进行对比,一般检查这个数据的百分比,例如成交率,完成率,接通率等。当某一时间段的成交率超出或低于往期范围,可以确定其为异常数据,从而查找产生异常的原因。这些统计数据范围都是有据可循的,因此在进行对比时并非无凭无据,例如某行业热线部成交率介于25%~45%之间,这些范围通常取几个月甚至一年12个月中其最大值和最小值作参考。通过取样的方法对这些数据的整理然后得出相应阀值是有一定理论依据的。此外如果涉及相关历史数据我们也可以进行分组对比,如某行业增值部某几个月的销售业绩与去年这几个月的数据进行对比,根据每月的差值或者环比来进一步确定这几个月的销售数据是否正常,当差值或环比处于某个值之内,如高于或低于上月业绩的30%以内,可以判断业绩处于正常范围,不在此范围之内的就要反映是什么原因造成了这种异常数据。也可以根据以往的数据走势,判断本月或本周的一个大概走势,相比上月或上周是增是减还是基本持平。具体操作方法可以提出具体数据对比的需求,将一些常用报表的常用数据项作为检测参数,经过计算后超出正常范围内的数据予以警示。往期数据对比虽然其准确性不高,但是可以根据与往期数据对比预估出当前数据的大概范围,低于或超出太多则这个数据就需要重新审视检查。
(2)当前数据对比
这个对比其实和往期没多大差别,只是有些数据在统计第一次后,可能会统计第二次或第三次。这时候第一次的数据就可以作为一个参考。如果之后统计的数据和第一次有出入,检查有出入的原因并予以更正。在排除已知的各种因素后还是不能达到前后一致,那我们就认为这个数据是浮动变化的,比如每日下单数据。这样的数据下次就不在对比范围之列了。如果这些数据经过几次查询都能保持一致,那么认为这个数据在某个时间段内是固定。下次统计时可以以某个时间段的统计数据为标准,其他关于这个数据的查询可以以此作为参考。比如产品和原料的每月发货,当确定一次统计数据之后,其他与之相关联的数据需求基本可以确定了。
(3)系统平台数据对比
系统平台数据通常就是数据报表。这些数据虽然都是从后台数据库中抓取以页面的形式显示出来的,但是其具体逻辑查询语句部分是不可知的。因其使用范围广及正确性相对比较高,可以作为一般查询语句的对比对象。比如进线量,财务月报等。根据其提供的报表样式以及部门确定的查询条件,可以编写出对应的查询语句以方便某些特殊需求。需要注意的是当系统里的参数变化之后,本地的查询也要及时修改相关逻辑或查询条件,保证不会因为系统更新而还使用原始查询造成两者数据不一致。
(4)查询代码的对比
一些查询语句通常以存储过程的形式存放在后台数据库中,在提取业务上的相关数据,可对比参考存储过程中的相关查询语句。以目的明确的查询形式显示出具体结果集。这需要对相关的数据存储过程比较了解。因为存储过程很多以变量形式存在,而不是具体的查询语句,而且一个存储过程往往涉及多个查询。具体哪一个才是所需的对比对象,也需要对存储过程进行仔细阅读。
步骤S5、对上述覆盖性指数、实时性指数、准确性指数做加权平均,评估数据质量。本发明的发明思想是,对于复杂的多元维度的评估,可采用对维度中各类指标进行加权平均的方法,与最大最小值法相比,加权平均充分考虑到了各类指标的影响。如果可以区分和量化衡量某一维度的每个指标的重要性,加权平均就是比较合适的评估方法。上述覆盖性指数、实时性指数、准确性指数分别对应一个权数a、b、c,为了确保评估值是标准化的,本发明每个指标的权数a、b、c介于0和1之间,并且权数的和等于1,即a+b+c=1。
具体的,本发明中,如果设数据质量为Q,覆盖性指数为f、实时性指数s、准确性指数z,则有Q=(af+bs+cz)。
本发明数据所提及的相关机构可以涉及很多机构,包括公安、银行、工商、教育、保险、电信等等。这些机构主要是国家部门或单位,例如,公安系统、教育系统、征信系统、诚信系统、金融系统、投融资系统等等。包括公安局、各大银行、大学、保险公司、中国移动、中国联通等等常见机构。
如图5所示,本发明还提供了一种数据质量检测的系统100,其包括顺序连接的如下模块:
数据搜集模块101,用于搜集数据并建立数据库;
覆盖性检测模块102,用于检测所述数据库中的数据的覆盖性,获得数据的覆盖性指数;
实时性检测模块103,用于检测所述数据库中的数据的实时性,获得数据的实时性指数;
准确性检测模块104,用于检测所述数据库中的数据的准确性,获得数据的准确性指数;
数据质量评估模块105,用于对上述覆盖性指数、实时性指数、准确性指数做加权平均,评估数据质量。
如图6所示,其中所述覆盖性检测模块102包括顺序连接的如下单元:
匹配树构造单元1021,用于构造PADRES匹配树。
本发明实施例中,PADRES匹配树由谓词构成的节点组成。使用一个虚拟节点来表示树的根节点,在匹配树中,虚拟节点(根节点)代表所有数据的起点,叶子节点代表单个数据的终点,谓词节点在虚拟节点和叶子节点的中间。数据的内容可以通过从根节点到叶子节点之间的谓词节点构成的路径来表示。与谓词一样,谓词节点包括属性名称、属性符号、属性值三个部分。
在本发明的匹配树中,如果能够事先知道各个谓词的出现概率,并根据概率来对谓词排序,可以增加数据共享谓词的可能性。然而,统计谓词出现的概率并进行排序,需要更复杂的处理过程,包括额外的算法、数据结构等等。
本发明的构造PADRES匹配树的过程如下:将数据插入匹配树之前,首先将数据中的谓词构成谓词节点;然后将谓词节点按属性名称的字母顺序插入虚拟节点之后、叶子节点之前。特别地,如果过个谓词节点具有相同的前驱,则共享前驱;具有相同前驱的多个谓词节点具有相同的属性名称,则共享属性名称。插入所有的谓词节点后,必需插入叶子节点来代表数据的终止。由于一个叶子节点对应一个数据,因此叶子节点中可以记录与数据相关的其他信息。
匹配树扩展单元1022,用于扩展匹配树以支持覆盖性检测。本发明优选实施例中,扩展匹配树以充当有序集的角色。在匹配树中,一个叶子节点对应一个数据。为了记录数据间的覆盖关系,可以在叶子节点中增加两个指针链表。其中,第一个指针链表记录覆盖自己的数据,称之为父亲节点。第二个指针链表记录自己所覆盖的数据,称之为孩子节点。
松散覆盖检测单元1023,用于对数据进行松散覆盖检测,首先找出一个覆盖自己的节点(父节点),然后找出所有的被自己覆盖的节点(子节点),如此循环,根据上述两种节点的占比情况获得覆盖性指数。
松散覆盖路由在PADRES中,也称为懒惰的覆盖路由。在松散覆盖路由中,当代理节点收到一个数据a时,代理节点检查有序集中的所有数据,看看是否存在数据覆盖该数据a。如果存在数据覆盖a,则a可以停止传播;如果a不被覆盖,则a将加入路由表,并传播出去。
例如,可以设定一个阈值(例如50%),如果父节点的覆盖比例超过这个阈值,则可以认为数据的覆盖性较好。
如图7所示,其中所述实时性检测模块103包括顺序连接的如下单元:
第一更新单元1031,用于对数据流进行单次扫描,对输入数据流滑动窗口中的数据取算术平均值,得到一条第一更新数据流;
第二更新单元1032,用于对上述第一更新数据流的滑动窗口中的数据取算数平均值得到第二更新数据流;
实时性指数计算单元1033,用于根据上述两条数据流得到数据线性预测模型中的参数,结合预测步长获取数据的实时性指数。所述数据线性预测模型可以为AR模型(P阶自回归模型)、MA模型(q阶自回归模型)、ARMA模型(自回归移动平均模型)。所述预测步长可由用户自己设定,也可以根据实际数据的应用领域选取。
该数据流滑动窗口平均值算法拓展自指数直方图算法,相对于指数直方图算法,本发明的算法时间性能更好,且同样能够保证优先的误差。
如图8所示,其中所述准确性检测模块104包括顺序连接的如下单元:
逻辑检查单元1041,用于检查数据语句的逻辑要求是否正确。一般的数据需求很少是单表查询,往往都是涉及几个表,或跨数据库,抑或跨服务器等,这样就要求对这些表进行关联。表之间关联就是一种逻辑顺序。本发明根据每个表提供的某个具有唯一性的字段进行关联时检查这种逻辑顺序。关联好之后可以根据系统提供的查询语句执行过程进行查看。检查这个执行过程是否是按照既定的要求进行关联的。不能盲目的根据已存在的字段随意进行关联,那样查询出来结果固然有了,但是是否正确值得商榷。此外当遇到一个查询语句的逻辑关系无法满足统计要求时,本发明用临时表关联出正确的逻辑要求,而不能因为一个查询语句简便致使逻辑语句出现明显的错误。
条件检查单元1042,用于检查查询的条件是否符合数据定义。表之间的逻辑顺序处理好之后,本发明根据既存的数据定义对相关字段加条件限制,以达到筛选出正确的数据结果集。根据已经存在的数据定义在编写查询语句时如果出现偏差,如某个(些)数据没统计进去,或不该出现的数据反而出现了。这时本发明检查条件是否都满足了数据定义的要求。如果是,则对数据定义的理解出现了问题,或者在对这个数据进行定义时本身就有问题,此时需要提出进行确认。直到所写条件满足这个数据定义。
数据对比单元1043,用于对比数据,获得数据准确性指数。在完成了对数据的需求明确,逻辑清楚,条件正确等步骤之后,统计出的结果集是否就是需求者所需数据,这里就有比较重要一步:数据对比。本发明的数据对比有多种形式,下面依次列出。
(1)往期数据对比
与以往数据进行对比,一般检查这个数据的百分比,例如成交率,完成率,接通率等。当某一时间段的成交率超出或低于往期范围,可以确定其为异常数据,从而查找产生异常的原因。这些统计数据范围都是有据可循的,因此在进行对比时并非无凭无据,例如某行业热线部成交率介于25%~45%之间,这些范围通常取几个月甚至一年12个月中其最大值和最小值作参考。通过取样的方法对这些数据的整理然后得出相应阀值是有一定理论依据的。此外如果涉及相关历史数据我们也可以进行分组对比,如某行业增值部某几个月的销售业绩与去年这几个月的数据进行对比,根据每月的差值或者环比来进一步确定这几个月的销售数据是否正常,当差值或环比处于某个值之内,如高于或低于上月业绩的30%以内,可以判断业绩处于正常范围,不在此范围之内的就要反映是什么原因造成了这种异常数据。也可以根据以往的数据走势,判断本月或本周的一个大概走势,相比上月或上周是增是减还是基本持平。具体操作方法可以提出具体数据对比的需求,将一些常用报表的常用数据项作为检测参数,经过计算后超出正常范围内的数据予以警示。往期数据对比虽然其准确性不高,但是可以根据与往期数据对比预估出当前数据的大概范围,低于或超出太多则这个数据就需要重新审视检查。
(2)当前数据对比
这个对比其实和往期没多大差别,只是有些数据在统计第一次后,可能会统计第二次或第三次。这时候第一次的数据就可以作为一个参考。如果之后统计的数据和第一次有出入,检查有出入的原因并予以更正。在排除已知的各种因素后还是不能达到前后一致,那我们就认为这个数据是浮动变化的,比如每日下单数据。这样的数据下次就不在对比范围之列了。如果这些数据经过几次查询都能保持一致,那么认为这个数据在某个时间段内是固定。下次统计时可以以某个时间段的统计数据为标准,其他关于这个数据的查询可以以此作为参考。比如产品和原料的每月发货,当确定一次统计数据之后,其他与之相关联的数据需求基本可以确定了。
(3)系统平台数据对比
系统平台数据通常就是数据报表。这些数据虽然都是从后台数据库中抓取以页面的形式显示出来的,但是其具体逻辑查询语句部分是不可知的。因其使用范围广及正确性相对比较高,可以作为一般查询语句的对比对象。比如进线量,财务月报等。根据其提供的报表样式以及部门确定的查询条件,可以编写出对应的查询语句以方便某些特殊需求。需要注意的是当系统里的参数变化之后,本地的查询也要及时修改相关逻辑或查询条件,保证不会因为系统更新而还使用原始查询造成两者数据不一致。
(4)查询代码的对比
一些查询语句通常以存储过程的形式存放在后台数据库中,在提取业务上的相关数据,可对比参考存储过程中的相关查询语句。以目的明确的查询形式显示出具体结果集。这需要对相关的数据存储过程比较了解。因为存储过程很多以变量形式存在,而不是具体的查询语句,而且一个存储过程往往涉及多个查询。具体哪一个才是所需的对比对象,也需要对存储过程进行仔细阅读。
通过本发明可以有效进行数据质量检测,能够同时根据数据的覆盖性、实时性、准确性三个方面检测数据质量,有力的提高了数据质量检测的速度和效果,为各个行业数据质量检测提供了工具和依据。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据质量检测的方法,其包括如下步骤:
步骤一、搜集数据并建立数据库;
步骤二、检测所述数据库中的数据的覆盖性,获得数据的覆盖性指数;
步骤三、检测所述数据库中的数据的实时性,获得数据的实时性指数;
步骤四、检测所述数据库中的数据的准确性,获得数据的准确性指数;
步骤五、对上述覆盖性指数、实时性指数、准确性指数做加权平均,评估数据质量。
2.如权利要求1所述的数据质量检测的方法,其特征在于:搜索数据时采用主题网络爬虫算法。
3.如权利要求1或2所述的数据质量检测的方法,其特征在于:所述数据的覆盖性检测采用基于匹配树的松散覆盖算法,包括以下步骤:
(1)构造PADRES匹配树;将数据插入匹配树之前,首先将数据中的谓词构成谓词节点;然后将谓词节点按属性名称的字母顺序插入虚拟节点之后、叶子节点之前;如果过个谓词节点具有相同的前驱,则共享前驱;具有相同前驱的多个谓词节点具有相同的属性名称,则共享属性名称;插入所有的谓词节点后,插入叶子节点来代表数据的终止;
(2)扩展匹配树以支持覆盖性检测;为了记录数据间的覆盖关系,在叶子节点中增加两个指针链表;其中,第一个指针链表记录覆盖自己的数据,第二个指针链表记录自己所覆盖的数据;
(3)对数据进行松散覆盖检测,首先找出一个覆盖自己的节点,然后找出所有的被自己覆盖的节点,如此循环,根据上述两种节点的占比情况获得覆盖性指数。
4.如权利要求1或2所述的数据质量检测的方法,其特征在于:所述数据的实时性检测采用数据流滑动窗口平均值算法,包括以下步骤:
(1)对数据流进行单次扫描,对输入数据流滑动窗口中的数据取算术平均值,得到一条第一更新数据流;
(2)对上述第一更新数据流的滑动窗口中的数据取算数平均值得到第二更新数据流;
(3)根据上述两条数据流得到数据线性预测模型中的参数,结合预测步长获取数据的实时性指数。
5.如权利要求1或2所述的数据质量检测的方法,其特征在于:所述数据的数据准确性检测具体包括以下步骤:
(1)查询数据语句的逻辑要求是否正确;根据每个表提供的某个具有唯一性的字段进行关联时检查语句的逻辑顺序;当遇到一个查询语句的逻辑关系无法满足统计要求时,用临时表关联出正确的逻辑要求;
(2)查询的条件是否符合数据定义;根据既存的数据定义对相关字段加条件限制,以达到筛选出正确的数据结果集;检查条件是否都满足了数据定义的要求,如果是则提出进行确认,直到所写条件满足这个数据定义;
(3)数据对比,获得数据准确性指数。
6.一种数据质量检测的系统,其包括顺序连接的如下模块:
数据搜集模块,用于搜集数据并建立数据库;
覆盖性检测模块,用于检测所述数据库中的数据的覆盖性,获得数据的覆盖性指数;
实时性检测模块,用于检测所述数据库中的数据的实时性,获得数据的实时性指数;
准确性检测模块,用于检测所述数据库中的数据的准确性,获得数据的准确性指数;
数据质量评估模块,用于对上述覆盖性指数、实时性指数、准确性指数做加权平均,评估数据质量。
7.如权利要求6所述的数据质量检测的系统,其特征在于:其中所述覆盖性检测模块包括顺序连接的如下单元:
匹配树构造单元,用于构造PADRES匹配树;将数据插入匹配树之前,首先将数据中的谓词构成谓词节点;然后将谓词节点按属性名称的字母顺序插入虚拟节点之后、叶子节点之前;如果过个谓词节点具有相同的前驱,则共享前驱;具有相同前驱的多个谓词节点具有相同的属性名称,则共享属性名称;插入所有的谓词节点后,插入叶子节点来代表数据的终止;
匹配树扩展单元,用于扩展匹配树以支持覆盖性检测;为了记录数据间的覆盖关系,在叶子节点中增加两个指针链表;其中,第一个指针链表记录覆盖自己的数据,第二个指针链表记录自己所覆盖的数据;
松散覆盖检测单元,用于对数据进行松散覆盖检测,首先找出一个覆盖自己的节点,然后找出所有的被自己覆盖的节点,如此循环,根据上述两种节点的占比情况获得覆盖性指数。
8.如权利要求6所述的数据质量检测的系统,其特征在于:所述实时性检测模块包括顺序连接的如下单元:
第一更新单元,用于对数据流进行单次扫描,对输入数据流滑动窗口中的数据取算术平均值,得到一条第一更新数据流;
第二更新单元,用于对上述第一更新数据流的滑动窗口中的数据取算数平均值得到第二更新数据流;
实时性指数计算单元,用于根据上述两条数据流得到数据线性预测模型中的参数,结合预测步长获取数据的实时性指数。
9.如权利要求6所述的数据质量检测的系统,其特征在于:所述数据准确性检测具体包括以下步骤:
逻辑检查单元,用于查询数据语句的逻辑要求是否正确;根据每个表提供的某个具有唯一性的字段进行关联时检查语句的逻辑顺序;当遇到一个查询语句的逻辑关系无法满足统计要求时,用临时表关联出正确的逻辑要求;
条件检查单元,用于检查条件是否符合数据定义;根据既存的数据定义对相关字段加条件限制,以达到筛选出正确的数据结果集;检查条件是否都满足了数据定义的要求,如果是则提出进行确认,直到所写条件满足这个数据定义;
数据对比单元,用于对比数据,获得数据准确性指数。
10.如权利要求6所述的数据质量检测的系统,其特征在于:所述搜索数据时采用主题网络爬虫算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711174529.5A CN108170707A (zh) | 2017-11-22 | 2017-11-22 | 一种数据质量检测的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711174529.5A CN108170707A (zh) | 2017-11-22 | 2017-11-22 | 一种数据质量检测的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108170707A true CN108170707A (zh) | 2018-06-15 |
Family
ID=62527260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711174529.5A Pending CN108170707A (zh) | 2017-11-22 | 2017-11-22 | 一种数据质量检测的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108170707A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109460421A (zh) * | 2018-10-09 | 2019-03-12 | 四川航天信息有限公司 | 商户交易数据管理方法及装置 |
CN110737650A (zh) * | 2019-09-27 | 2020-01-31 | 北京明略软件系统有限公司 | 数据质量检测方法及装置 |
CN111083010A (zh) * | 2019-12-17 | 2020-04-28 | 深圳市网心科技有限公司 | 一种测速方法、装置和计算机可读存储介质 |
CN111241486A (zh) * | 2020-01-14 | 2020-06-05 | 航科院中宇(北京)新技术发展有限公司 | 一种导航数据生产的质量评估方法及系统 |
CN111813837A (zh) * | 2020-09-11 | 2020-10-23 | 成都寻道科技有限公司 | 一种智能检测数据质量的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609537A (zh) * | 2012-02-17 | 2012-07-25 | 广东电网公司电力科学研究院 | 一种基于数据库模式下的数据质量审计方法 |
CN102708149A (zh) * | 2012-04-01 | 2012-10-03 | 河海大学 | 数据质量管理方法和系统 |
CN106503097A (zh) * | 2016-10-14 | 2017-03-15 | 国政通科技股份有限公司 | 一种提高数据质量的方法及系统 |
-
2017
- 2017-11-22 CN CN201711174529.5A patent/CN108170707A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609537A (zh) * | 2012-02-17 | 2012-07-25 | 广东电网公司电力科学研究院 | 一种基于数据库模式下的数据质量审计方法 |
CN102708149A (zh) * | 2012-04-01 | 2012-10-03 | 河海大学 | 数据质量管理方法和系统 |
CN106503097A (zh) * | 2016-10-14 | 2017-03-15 | 国政通科技股份有限公司 | 一种提高数据质量的方法及系统 |
Non-Patent Citations (1)
Title |
---|
陈明文 等: "大规模事件数据处理的覆盖检测优化算法", 《计算机研究与发展》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109460421A (zh) * | 2018-10-09 | 2019-03-12 | 四川航天信息有限公司 | 商户交易数据管理方法及装置 |
CN110737650A (zh) * | 2019-09-27 | 2020-01-31 | 北京明略软件系统有限公司 | 数据质量检测方法及装置 |
CN111083010A (zh) * | 2019-12-17 | 2020-04-28 | 深圳市网心科技有限公司 | 一种测速方法、装置和计算机可读存储介质 |
CN111083010B (zh) * | 2019-12-17 | 2021-09-24 | 深圳市网心科技有限公司 | 一种测速方法、装置和计算机可读存储介质 |
CN111241486A (zh) * | 2020-01-14 | 2020-06-05 | 航科院中宇(北京)新技术发展有限公司 | 一种导航数据生产的质量评估方法及系统 |
CN111241486B (zh) * | 2020-01-14 | 2023-07-07 | 航科院中宇(北京)新技术发展有限公司 | 一种导航数据生产的质量评估方法及系统 |
CN111813837A (zh) * | 2020-09-11 | 2020-10-23 | 成都寻道科技有限公司 | 一种智能检测数据质量的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108170707A (zh) | 一种数据质量检测的方法和系统 | |
US11928733B2 (en) | Systems and user interfaces for holistic, data-driven investigation of bad actor behavior based on clustering and scoring of related data | |
Gao et al. | Big data validation and quality assurance--issuses, challenges, and needs | |
CA2978488C (en) | Systems and methods for managing data | |
Japec et al. | Big data in survey research: AAPOR task force report | |
EP3477906A1 (en) | Systems and methods for identifying and mitigating outlier network activity | |
CN106656536A (zh) | 一种用于处理服务调用信息的方法与设备 | |
CA3042926A1 (en) | Technology incident management platform | |
CN109858740A (zh) | 企业风险的评估方法、装置、计算机设备及存储介质 | |
CN103605738A (zh) | 网页访问数据统计方法及装置 | |
CN109559231A (zh) | 一种面向区块链的追溯查询方法 | |
CN108460598A (zh) | 一种基于双链架构区块链的实时自动化监管报告系统 | |
CN106204127A (zh) | 针对应用的用户评价方法及装置 | |
Yu et al. | Regional anti‐corruption effort, political connections and firm innovation effort: evidence from China | |
CN110458324A (zh) | 风险概率的计算方法、装置和计算机设备 | |
US20180025428A1 (en) | Methods and systems for analyzing financial risk factors for companies within an industry | |
CN110728301A (zh) | 一种个人用户的信用评分方法、装置、终端及存储介质 | |
CN110443459A (zh) | 预警信息推送方法、装置、计算机设备和存储介质 | |
CN110059126B (zh) | 基于lkj异常值数据的复杂关联网络分析方法及系统 | |
CN113609011A (zh) | 一种保险产品工厂的测试方法、装置、介质和设备 | |
CN108984754A (zh) | 客户信息更新方法、装置、计算机设备及存储介质 | |
US10509809B1 (en) | Constructing ground truth when classifying data | |
CN108647288A (zh) | 企业关系的挖掘方法、装置、计算机设备及存储介质 | |
CN113407734A (zh) | 基于实时大数据的知识图谱系统的构建方法 | |
CN110544165A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180615 |