CN111190906B - 一种传感网数据异常检测方法 - Google Patents
一种传感网数据异常检测方法 Download PDFInfo
- Publication number
- CN111190906B CN111190906B CN201911417386.5A CN201911417386A CN111190906B CN 111190906 B CN111190906 B CN 111190906B CN 201911417386 A CN201911417386 A CN 201911417386A CN 111190906 B CN111190906 B CN 111190906B
- Authority
- CN
- China
- Prior art keywords
- data
- attribute
- detected
- query statement
- sensor network
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种传感网数据异常检测方法,以解决对海量数据进行高效异常数据检测修复的问题。包括:获取待检测数据以及第一查询语句;基于第一查询语句中的表名称,将第一查询语句转化为带定位标记的第二查询语句;根据第二查询语句,在数据集中查询与待检测数据相关的传感网数据,以用于对待检测数据进行异常检测;当待检测数据存在异常时,基于第二查询语句中的定位标记以及数据集,将待检测数据回溯至与其对应的原始数据。通过在数据中增加定位标识,对数据进行快速定位,之后利用带定位标记的数据与数据集进行对比检测,对异常数据进行针对性检测,以保证在对海量数据进行数据异常检测修复时,能够高效检测出异常数据。
Description
技术领域
本发明涉及数据质量管理技术领域,具体涉及一种传感网数据异常检测方法。
背景技术
随着传感网时代的到来,数据的产生和获取途径的多样化和开放化使得数据质量参差不齐,部分数据存在不一致、缺失、冲突等错误和冗余问题。若要分析并获取数据中蕴藏的价值,首先要对数据进行异常检测和处理,然而异常数据检测是十分困难的。当前对数据质量管理的研究普遍集中在传统的关系数据库等小规模的数据集上,且绝大多数是以单机情形去研究,主要利用数据库提供的完整性约束机制来保障数据质量,但存在以下几个问题:(1)对大规模的数据(PB级、TB级的数据)效率不高;(2)对于更加复杂的、违反数据质量约束规则的异常数据无法进行高效的检测。
而基于规则的数据清洗包含了三个步骤:(1)指定质量约束规则;(2)检测异常数据;(3)修复异常数据。通常情况下,在执行完第一步操作之后,迭代地进行第二步和第三步,直到数据全部修复完成为止。然而,由于数据质量约束规则的多样性,所存储的数据类型***,异常数据的检测逻辑随之不同。而现有的数据质量管理工具中往往是针对某一特定的情况进行处理,缺少对数据进行全面、高效的自动化检测。
发明内容
有鉴于此,本发明实施例提供了一种传感网数据异常检测方法,以解决对海量数据进行高效异常数据检测修复的问题。
根据第一方面,本发明实施例所提供的一种传感网数据处理方法,包括:
获取待检测数据以及第一查询语句;
基于所述第一查询语句中的表名称,将所述第一查询语句转化为带定位标记的第二查询语句;其中,所述表名称用于表示所述传感网数据对应的数据集中的数据表的名称;
根据所述第二查询语句,在所述数据集中查询与所述待检测数据相关的传感网数据,以用于对所述待检测数据进行异常检测;
当所述待检测数据存在异常时,基于所述第二查询语句中的所述定位标记以及所述数据集,将所述待检测数据回溯至与其对应的原始数据。
通过对第一查询语句进行定位转换得到带定位的第二查询语句,利用第二查询语句在所述数据集中查询与待检测数据相关的传感网数据,当所述待检测数据中存在异常,利用第二查询语句中所述定位标记和所述数据集,确定异常数据,并对待检测数据进行数据修复。通过在数据中增加定位标识,对数据进行快速定位,之后利用带定位标记的数据与数据集进行对比检测,对异常数据进行针对性检测,以保证在对海量数据进行数据异常检测修复时,能够高效检测出异常数据。
结合第一方面,在第一方面第一实施方式中,基于所述第一查询语句中的表名称,将所述查询语句转化为带定位标记的第二查询语句,包括:
获取与所述数据集中的数据表对应的主键名以及主键属性名称;
将所述主键属性名称添加至对应的所述数据表上;
在所述第一查询语句中的第一预设字段与第二预设字段之间加上所述数据表对应的主键名以及所述主键属性名称,和在所述第二预设字段之前加上所述主键属性名称,以得到所述带定位标记的第二查询语句。
通过带定位标记的第二查询语句,以保证在数据的唯一性,并通过定位标记保证在进行数据检测/修复能够快递定位到异常数据或是能够通过定位标记进行原始数据回溯;
除此之外,通过获取与所述数据集中的数据表对应的主键名以及主键属性名称,能够防止在多表数据连接中,因为不同数据表存在属性名相同的情况,或是因为在随机查询语句中因更改数据行属性的排列次序所导致与检测方法不匹配的问题。
结合第一方面,在第一方面第二实施方式中,根据所述第二查询语句,在所述数据集中查询与所述待检测数据相关的传感网数据,以用于对所述待检测数据进行异常检测,包括:
利用第二查询语句,从所述数据集提取与所述待检测数据相关的传感网数据;
判断所述待检测数据与提取出的传感网数据是否存在冲突;
当冲突存在时,对所述待检测数据和提取出的传感网数据进行异常检测。
结合第一方面,在第一方面第三实施方式中,对所述待检测数据和提取出的传感网数据进行异常检测,包括:
获取用于存储冲突信息的数据和存在冲突的数据元组,并对所有数据的元组两两进行测试,获得冲突信息;其中冲突信息存储在数据库中;
提取存在冲突的待检测数据中最右方的主键值取出即可对冲突数据进行定位。
结合第一方面,在第一方面第四实施方式中,对数据规则进行面向等式的规则约束,包括:在数据集中找到数据值与待检测数据中相等的数据记录,通过数据检测方法对数据进行判断是否存在冲突。
结合第一方面,在第一方面第五实施方式中,对数据规则进行面向不等式的规则约束,包括:判断在数据集中的数据值是否与待检测数据重合。
通过利用约束规则针对性的对异常数据进行提取对比,以保证能够快速高效的对数据进行检测。
结合第一方面,在第一方面第六实施方式中,在对所有数据的元组两两进行测试时,包括可接受的数据错误,和或,数据遗漏。
结合第一方面,在第一方面第七实施方式中,可接收的数据错误,和或,数据遗漏,包括:
当待检测数据A属性的最大值小于数据集数据中A属性的最小值;
当待检测数据A属性的最小值小于数据集A数据属性的最小值且RDD数据A属性的最大值大于历史数据A属性的最小值但小于历史数据A属性的最大值;当待检测数据A属性的最小值大于等于数据集A属性的最小值且RDD数据A属性的最大值小于等于历史数据A属性的最大值;
当待检测数据A属性的最大值大于历史数据A属性的最大值且RDD数据A属性的最小值大于历史数据A属性的最小值但小于历史数据A属性的最大值;
当待检测数据中A属性的最小值大于历史数据中A属性的最大值;
当待检测数据中A属性的最小值小于历史数据A属性的最小值但RDD数据A属性的最大值大于历史数据A属性的最大值。
对可接受的数据错误,和或,数据遗漏,进行约束,以提高数据检测的执行效率,保证能够进行高效率的进行异常数据检测。
结合第一方面,在第一方面第八实施方式中,基于所述第二查询语句中的所述定位标记以及所述数据集,将所述待检测数据回溯至与其对应的原始数据,包括:利用所述定位标记进行数据抓取,并对所抓取的数据进行数据修正。
通过对数据进行修正保证数据传感数据的完整和正确性。
根据第二方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中所述的传感网数据处理方法。
根据第三方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行第一方面或者第一方面的任意一种实施方式中所述的传感网数据处理方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例提供的传感网数据处理方法的流程图;
图2是根据本发明实施例提供的传感网数据处理方法的流程图A;
图3是根据本发明实施例提供的传感网数据处理方法的流程图B;
图4是根据本发明实施例提供的传感网数据处理方法的结构图;
图5是根据本发明优选实施例提供的传感网数据处理方法的参数;
图6是根据本发明优选实施例提供的传感网数据处理方法的执行示意图;
图7是根据本发明优选实施例提供的传感网数据处理方法的执行结果A;
图8是根据本发明优选实施例提供的传感网数据处理方法的执行结果B;
图9是根据本发明优选实施例提供的传感网数据处理方法的执行结果C;
图10是根据本发明优选实施例提供的传感网数据处理方法的执行结果D;
图11是根据本发明优选实施例提供的传感网数据处理方法的执行结果E;
图12是根据本发明优选实施例提供的传感网数据处理方法的执行结果F;
图13是根据本发明实施例提供的电子设备的结构框图;
附图标记
1-处理器;2-总线;3-通信接口;4-存储器。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例所提供的一种传感网数据处理方法,包括:
S10,获取待检测数据以及第一查询语句;
S20,基于所述第一查询语句中的表名称,将所述第一查询语句转化为带定位标记的第二查询语句;其中,所述表名称用于表示所述传感网数据对应的数据集中的数据表的名称;
S30,根据所述第二查询语句,在所述数据集中查询与所述待检测数据相关的传感网数据,以用于对所述待检测数据进行异常检测;
S40,当所述待检测数据存在异常时,基于所述第二查询语句中的所述定位标记以及所述数据集,将所述待检测数据回溯至与其对应的原始数据。
通过对第一查询语句进行定位转换得到带定位的第二查询语句,利用第二查询语句在所述数据集中查询与待检测数据相关的传感网数据,当所述待检测数据中存在异常,利用第二查询语句中所述定位标记和所述数据集,确定异常数据,并对待检测数据进行数据修复。通过在数据中增加定位标识,对数据进行快速定位,之后利用带定位标记的数据与数据集进行对比检测,对异常数据进行针对性检测,以保证在对海量数据进行数据异常检测修复时,能够高效检测出异常数据。
具体的,如图2所示,第一查询语句中的表名称,将所述查询语句转化为带定位标记的第二查询语句,包括:
S21,获取与所述数据集中的数据表对应的主键名以及主键属性名称;
S22,将所述主键属性名称添加至对应的所述数据表上;
S23,在所述第一查询语句中的第一预设字段与第二预设字段之间加上所述数据表对应的主键名以及所述主键属性名称,和在所述第二预设字段之前加上所述主键属性名称,以得到所述带定位标记的第二查询语句。
通过带定位标记的第二查询语句,以保证在数据的唯一性,并通过定位标记保证在进行数据检测/修复能够快递定位到异常数据或是能够通过定位标记进行原始数据回溯;
除此之外,通过获取与所述数据集中的数据表对应的主键名以及主键属性名称,能够防止在多表数据连接中,因为不同数据表存在属性名相同的情况,或是因为在随机查询语句中因更改数据行属性的排列次序所导致与检测方法不匹配的问题。
具体的,如图3所示,数据集中查询与所述待检测数据相关的传感网数据,以用于对所述待检测数据进行异常检测,包括:
S31,利用第二查询语句,从所述数据集提取与所述待检测数据相关的传感网数据;
S32,判断所述待检测数据与提取出的传感网数据是否存在冲突;
S33,当冲突存在时,对所述待检测数据和提取出的传感网数据进行异常检测。
具体的,待检测数据和提取出的传感网数据进行异常检测,包括:
获取用于存储冲突信息的数据和存在冲突的数据元组,并对所有数据的元组两两进行测试,获得冲突信息;其中冲突信息存储在数据库中;
提取存在冲突的待检测数据中最右方的主键值取出即可对冲突数据进行定位。
具体的,对数据规则进行面向等式的规则约束,包括:在数据集中找到数据值与待检测数据中相等的数据记录,通过数据检测方法对数据进行判断是否存在冲突。
具体的,对数据规则进行面向不等式的规则约束,包括:判断在数据集中的数据值是否与待检测数据重合。
通过利用约束规则针对性的对异常数据进行提取对比,以保证能够快速高效的对数据进行检测。
具体的,在对所有数据的元组两两进行测试时,包括可接受的数据错误,和或,数据遗漏。
可选的,可接收的数据错误,和或,数据遗漏,包括:
当待检测数据A属性的最大值小于数据集数据中A属性的最小值;
当待检测数据A属性的最小值小于数据集A数据属性的最小值且RDD数据A属性的最大值大于历史数据A属性的最小值但小于历史数据A属性的最大
当待检测数据A属性的最小值大于等于数据集A属性的最小值且RDD数据A属性的最大值小于等于历史数据A属性的最大值;
当待检测数据A属性的最大值大于历史数据A属性的最大值且RDD数据A属性的最小值大于历史数据A属性的最小值但小于历史数据A属性的最大值;
当待检测数据中A属性的最小值大于历史数据中A属性的最大值;
当待检测数据中A属性的最小值小于历史数据A属性的最小值但RDD数据A属性的最大值大于历史数据A属性的最大值。
对可接受的数据错误,和或,数据遗漏,进行约束,以提高数据检测的执行效率,保证能够进行高效率的进行异常数据检测。
具体的,基于所述第二查询语句中的所述定位标记以及所述数据集,将所述待检测数据回溯至与其对应的原始数据,包括:利用所述定位标记进行数据抓取,并对所抓取的数据进行数据修正。
可选的,对异常数据进行修复可以是通过用户
通过对数据进行修正保证数据传感数据的完整和正确性。
如图4所示,本发明实施例所提供的一种传感网数据处理方法,可以是:
(1)对异常数据进行定位;
(2)采用历史数据调度算法。
具体的,基于分布式平台Spark设计将Spark Streaming切片得到的RDD数据转换成DataFrame形式,再使用SQL语句进行相应的选择、投影等操作;因为用户提供的SQL语句是随机的,当程序在运行时,框架并不知道用户SQL语句查询的会是什么属性,因此首先要保证用户查询得到的用于后续Detect的数据中一定包含每一条记录的唯一标识,即关系数据表中的主键,也就是只需要中间数据中加上每一条记录的主键值,就可回溯原始数据;但又因为用户提供的SQL语句是以字符串的形式给出的。
因此在程序运行前,对于用户给出的SQL语句需要通过***内部对其进行适当的修改,使其在执行程序时,能顺带查找出每条数据对应的主键值。
具体操作是在“SELECT”和“FROM”字段之间加上表对应的主键名。
但仅添加主键名会有可能出现在不同的表中,可能存在属性名相同的情况或是因为用户给出的SQL语句和他最终实现的Detect方法是存在联系的但因为增加主键会因更改数据行中属性的排列次序,并最终导致与Detect方法对接不上的情况。因此在使用本***进行数据清洗(修复)之前,需要先正确给出数据集对应的表名称及主键属性名称,其中,在SQL语句中表名称仅在“FROM”字段后出现一次,其它地方均可用别名代替。主要操作步骤:
计算表名称在SQL语句中出现的次数,判断SQL语句查询的类型是普通单表查询、单表自连接查询还是多表连接查询;
对SQL语句中出现过的表,将它们的主键属性名添加在“FROM”字段的前端,即保证主键属性值一定出现在查询结果的最右方;
将用户提供的SQL语句替换为***内部修改后的SQL语句对数据进行处理,得到的中间结果集包含用户查询的字段以及隐藏的主键字段。
其中,主键属性是添加在中间结果集的最右方,不影响用户想要查询的属性在结果集中的次序,
可选的,用户可以通过自身所提供的SQL语句为标准来实现Detect()方法,应用在实际得到的中间结果集上。
具体的,在生成冲突修复提示信息时,只需要将存在冲突的多个元组最右方的主键值取出即可对冲突数据进行定位。
当有新数据进入时,将新数据中的关键部分和数据结构中存储的信息进行比对,以此来判断它是否和历史数据可能存在冲突,如果可能存在冲突,则将历史数据中可能存在冲突的记录取出和新数据进行异常检测。这样才能在进行大规模量级的异常数据检测过程中,能够支持新增数据的流入并且避免在检测过程中历史数据中出现大量重复检测的情况。
可选的,本传感网数据处理方法可根据数据质量约束规则大致可以把数据区分为三类:即基于属性依赖关系的规则,基于不等式大小比较的规则和用户自定义的规则。
具体的,本发明实施例所提供的一种传感网数据处理方法,通过数据源获取数据流,对数据进行目标数据的预处理,并进行数据切片,转换成数据集,对数据集进行数据检测,输出数据结果集,对数据结果继续数据保存,对数据结果集的数据进行数据异常检测,定位利用预处理的数据对异常数据进行定位,并提取异常数据集,把异常数据集与所保存的数据中与异常数据相关的数据进行提取的对比,获得异常数据,并对异常数据进行数据修正,把修正后的数据存入数据库中。
优选的实施方式
如图5所示,图5表示的是一个景点数据集的样本,其中的每一条记录都表示某个景点的信息。它受到以下规则约束:Rule(D):zipcode->city,即属性city依赖于属性zipcode,对于某个确定的zipcode,city也应该确定,不存在多个city属性与zipcode属性对应。依据这条约束规则,利用本框架对其进行异常检测。
预设该表命名为building,则用户输入的SQL语句为:
SELECT zipcode,city FROM scenic;
利用SQL语句对数据进行投影和选择操作后由用户联系规则和结果集,利用可的实现解决方法并声明异常数据检测逻辑。在框架中规定:解决方法包含三个参数,分别是Row类型的变量r1,r2和String类型的变量info;且解决方法返回值类型为Violation。r1、r2分别表示结果集中的某行数据;info表示冲突检测信息,也可以是规则约束信息;Violation是框架内部定义的数据结构,它包含一个String变量和一个List变量,分别用于存储冲突信息和存在冲突的数据元组。然后用户实现解决方法,解决方法将对所有数据的元组两两进行检测,并给出冲突信息。之后,框架会将所有的冲突信息存入MYSQL数据库中,至此结束整个异常数据检测的过程。
其中,利用解决方法将对所有数据的元组两两进行检测,包括:对于不等式大小比较的规则,如:
即当某元组的rank属性大于另一元组的rank属性时,该元组的level属性也必定比另一元组的level要大。而用户自定义的规则就比较多样,举例如下所示:
即当数据集中不存在name和city这两列属性完全相等的数据情况时,通过用户定义的规则还可能在上面的基础上添加不等式的比较,如:
虽然,用户定义的数据约束规则会十分复杂,但它也可以是等式比较和不等式比较两种操作的结合。
具体的,数据约束规则只有等式比较和不等式比较两种类型。在处理数据增量问题时,框架也将规则分为等式比较和不等式比较两类,分别进行不同的操作。
优先的,在面向等式比较规则的历史数据调度时,需要对每一条新数据,找出历史数据中A属性值与它的A属性值相等的记录,然后再通过解决方法判定是否它们是否真的存在冲突。
其中,等式比较规则指的是,对于属性A和属性B,当两个元组的A属性值相等时,它们的B属性值必须相等或不相等,否则,就认为这两个元组基于规则存在异常。
优选的,对于某一时刻Spark Streaming切片得到的新数据,首先查看新数据中元组ri中A属性的值Ai是否在容器中出现过;如果在容器中不存在key为Ai的记录,说明历史数据中没有任何一条记录的A属性值为Ai,即历史数据与元组ri不可能存在异常,因此无需将元组ri与历史数据进行比对,只需要将元组ri中属性A的值Ai更新到Set容器中即可;如果在容器中存在key为Ai的记录,说明历史数据中存在可能与元组ri有冲突的数据,那么,使用SQL语句将这部分数据从MYSQL读出即可,SQL语句如下所示:
SELECT*FROM historytable WHERE A='Ai'AND B?'Bi';
可选的,等式比较也分为两种情况,例如依赖关系A->B就要求两个元组属性A值相等时它们的属性B值也应该相等;而在前文用户定义的规则则要求数据集中不存在属性A和B值都相等的元组。***需要用户给出是那种情况,针对第一种情况,***执行如下所示的SQL语句:
SELECT*FROM historytable WHERE A='Ai'AND B!='Bi';
针对第二种情况,***将会执行下面的SQL语句:
SELECT*FROM historytable WHERE A='Ai'AND B='Bi';
这样查询MYSQL读出的所有历史记录都是与新元组ri存在冲突的,使用解决算子对它们进行处理,就能够获得一系列的Violation数据。
但为了避免过多进行重复操作,是需要遍历新数据,并存储其中的关键信息,在遍历结束之后,才统一从MYSQL中读取数据。
优选的在面向不等式比较规则的历史数据调度时。不等式比较和等式比较有点类似,但也存在不同。对于属性A和属性B,存在以下两种情况:当Ai大于等于Aj时,必须满足Bi也大于等于Bj;或者当Ai大于等于Aj时,必须满足Bi小于Bj。
其中,主要考虑第一种情况。
首先,只考虑属性A,并对A做出假设:历史数据和RDD数据都是基于属性A的值进行了排序,数据随属性A呈递增排列。那么,RDD数据和历史数据的关系如图6所示,其中,灰色部分表示RDD数据,白色部分表示历史数据,黑色部分表示RDD数据与历史数据中属性A的值相等的数据,即重合的数据。
在整个过程中,RDD数据和历史数据均是不存在内部异常的数据,因为RDD数据内部存在的冲突,会在之后进行检测,而对于历史数据来说,内部存在的冲突已经在之前的检测过程中检测完毕。这样可能会导致不能将数据中所有的冲突情况都检测出来,但对于存在异常的数据,是一定可以将其检测出来的,只是可能会遗漏掉该异常数据与其它数据可能也存在冲突的情况。在大量的数据中,错误数据是比较少数的部分,遗漏的也只是极其个别的情况,因此这是完全可以接受的。下面分别对6类可可接受的情形进行说明。
对于情形一,表示RDD数据A属性的最大值小于历史数据中A属性的最小值,用式子表示为:
RDD.MAX(A)<History.MIN(A)
可选的,如果按照属性A递增排序,那么对应的属性B也应该依次递增,因为RDD数据和历史数据内部是不存在异常的。假设RDD.MAX(A)对应的记录为r1,History.MIN(A)对应的记录为r2。根据规则:Ai>Aj则Bi>Bj,易知r2.B也应该大于r1.B,如果RDD数据和历史数据存在冲突,那么必然是因为在历史数据中存在B属性值比r1.B小的记录,因此,取出这部分数据与RDD数据进行解决就行了。执行的SQL语句如下所示:
SELECT*FROM historytable WHERE B<'r1.B'
如果规则是:Ai>Aj则Bi<Bj,则使用下面的SQL语句:
SELECT*FROM historytable WHERE B>'r1.B'
对于情形二,表示RDD数据A属性的最小值小于历史数据A属性的最小值且RDD数据A属性的最大值大于历史数据A属性的最小值但小于历史数据A属性的最大值,用式子表示为:
RDD.MIN(A)<History.MIN(A)∧RDD.MAX(A)>History.MIN(A)∧
RDD.MAX(A)<History.MAX(A)
可选的,假设History.MIN(A)对应的记录为r1,RDD.MAX(A)对应的记录为r2,那么只需要将历史数据中属性A的值在区间[r1.A,r2.A]范围内的记录取出与RDD进行比对即可。虽然r2.B可能和情形一表示的一样,比重合部分的历史数据的所有属性B的值都要大,即r1与历史数据中除重合部分之外的数据也存在冲突,但如果这样,r1也一定与历史数据中重合部分的数据存在冲突,那么,r1一定会作为异常数据被检测到,因此,上述的思路是可行的。执行的SQL语句如下所示:
SELECT*FROM historytable WHERE A>='r1.A'AND A<='r2.A'
如果规则是:Ai>Aj则Bi<Bj,执行的SQL语句相同。
对于情形三,表示RDD数据A属性的最小值大于等于历史数据A属性的最小值且RDD数据A属性的最大值小于等于历史数据A属性的最大值,用式子表示为:
RDD.MIN(A)>=History.MIN(A)∧RDD.MAX(A)<=History.MAX(A)
假设RDD.MIN(A)对应的记录为r1,RDD,MAX(A)对应的记录为r2。因为RDD数据与历史数据完全相交,根据情形二中的思路,对于类似r2的记录,虽然和除重合部分之外的历史数据也会有冲突,但无关紧要,因为r2本身是一定会被检测出来的。因此只需要将历史数据中属性A的值在区间[r1.A,r2.A]范围内的记录取出与RDD进行比对即可。执行的SQL语句为:
SELECT*FROM historytable WHERE A>='r1.A'AND A<='r2.A'
如果规则是:Ai>Aj则Bi<Bj,执行的SQL语句相同。
对于情形四,表示RDD数据A属性的最大值大于历史数据A属性的最大值且RDD数据A属性的最小值大于历史数据A属性的最小值但小于历史数据A属性的最大值,用式子表示为:
RDD.MAX(A)>History.MAX(A)∧RDD.MIN(A)>History.MIN(A)∧
RDD.MIN(A)<History.MAX(A)
具体的,思路与情形二类似,假设RDD.MIN(A)对应的记录为r1,History.MAX(A)对应的记录为r2,则只需要将历史数据中属性A的值在区间[r1.A,r2.A]范围内的记录取出与RDD进行比对即可。执行的SQL语句为:
SELECT*FROM historytable WHERE A>='r1.A'AND A<='r2.A'
如果规则是:Ai>Aj则Bi<Bj,执行的SQL语句相同。
对于情形五,表示RDD数据中A属性的最小值大于历史数据中A属性的最大值,用式子表示为:
RDD.MIN(A)>History.MAX(A)
假设RDD.MIN(A)对应的记录为r2,则只需要取出历史数据中属性B的值大于r2.B的记录与RDD数据进行比对即可。执行的SQL语句为:
SELECT*FROM historytable WHERE B>'r2.B'
如果规则是:Ai>Aj则Bi<Bj,则使用下面的SQL语句:
SELECT*FROM historytable WHERE B<'r2.B'
对于情形六,表示RDD数据中A属性的最小值小于历史数据A属性的最小值但RDD数据A属性的最大值大于历史数据A属性的最大值,用式子表示为:
RDD.MIN(A)<History.MIN(A)∧RDD.MAX(A)>History.MAX(A)
因为RDD数据和历史数据都被认为是不存在内部异常的数据,所以思路与情形三类似。假设History.MIN(A)对应的记录为r1,History.MAX(A)对应的记录为r2,只需要将历史数据中属性A的值在区间[r1.A,r2.A]范围内的记录取出与RDD进行比对即可。执行的SQL语句如下所示:
SELECT*FROM historytable WHERE A>'r1.A'AND A<'r2.A'
如果规则是:Ai>Aj则Bi<Bj,执行的SQL语句相同。
通过以上列举的6种情形均是建立在属性A已经排序的基础上的。但在具体的实现中,并不需要对属性A进行排序,只需要维护RDD数据中A属性和B属性的最大值、最小值及历史数据中A属性和B属性的最大值、最小值即可。对于最初抓取的RDD数据,先计算出它关于属性A和属性B的最大值和最小值,因为尚不存在历史数据,因此它属性A和B的最大值、最小值就是历史数据属性A和B的最大值、最小值;对于之后抓取的RDD数据,则分别将这几个值进行比较,并进行更新。
图7-12所示,是一种高效大数据异常检测的实验结果,图7给出了实验过程中使用到的数据集字段的含义。在***中,根据用户提供的不同SQL语句和异常冲突检测逻辑,程序会采取不同的措施对数据进行检测。因此,程序的性能很大程度上取决于用户提供的解决方法的不同。基于规则Rule1和Rule2,对不同规模的数据集进行了异常检测,结果如图8所示。由图8可知,针对不同的约束规则和用户提供的检测逻辑,***处理数据的性能可能会存在差异,且差异会随着数据规模的增加而增大。这与字符串底层的等式比较和不等式比较的性能相关。就实验结果而言,***在处理等式比较类型的规则时,效率要比处理不等式比较规则时的效率要高得多。由图9和图10可知,Ocad框架的性能和BigDansing框架的性能相差不大,BigDansing框架的性能略好一点。然而,当数据集的规模会随着时间而增加时,Ocad框架的性能会优于BigDansing框架,且两者之间的差异会随着增量越来越大,如11图和12图,在刚开始进行数据检测时,两种方式的差异并不大,但随着数据规模的增加,两者的差异也会越来越大。因为当有新数据进来时,传统的异常数据检测方法会将新数据和旧数据看成一个整体进行无差别检测,而Ocad框架只针对新来的数据,即使在历史数据中,也只是取出可能与新数据存在冲突的记录进行检测,因此能够避免很多重复检测的情况,减少运行的时间。
利用传感网数据处理方法,通过异常数据的定位并读取有可能发生异常的历史数据与新增数据进行比对,保证检测过程的效率和全面性,使在对数据异常检测时,整体性能有了较大的提升。
本发明实施例还提供了一种电子设备,如图13所示,该电子设备可以包括处理器1和存储器4,其中处理器1和存储器4可以通过总线2或者其他方式连接,图中以通过总线2连接为例。
处理器1可以为中央处理器(Central Processing Unit,CPU)。处理器1还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器4作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的传感网数据处理方法对应的程序指令/模块。处理器1通过运行存储在存储器2中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的一种传感网数据处理方法。
存储器4可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储处理器1所创建的数据等。此外,存储器2可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器2可选包括相对于处理器1远程设置的存储器,这些远程存储器可以通过网络连接至处理器1。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器4中,当被所述处理器1执行时,执行如图1-3所示实施例中的一种传感网数据处理方法。
上述传感网数据处理方法具体细节可以对应参阅图1至图3所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random AccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (8)
1.一种传感网数据处理方法,其特征在于,包括:
获取待检测数据以及第一查询语句;
基于所述第一查询语句中的表名称,获取与数据集中的数据表对应的主键名以及主键属性名称;
将所述主键属性名称添加至对应的所述数据表上;
在所述第一查询语句中的第一预设字段与第二预设字段之间加上所述数据表对应的主键名以及所述主键属性名称,和在所述第二预设字段之前加上所述主键属性名称,以得到带定位标记的第二查询语句;其中,所述表名称用于表示所述传感网数据对应的数据集中的数据表的名称;
利用第二查询语句,从所述数据集提取与所述待检测数据相关的传感网数据;
判断所述待检测数据与提取出的传感网数据是否存在冲突;
当冲突存在时,获取用于存储冲突信息的数据和存在冲突的数据元组,并对所有数据的元组两两进行测试,获得冲突信息;其中冲突信息存储在数据库中;
提取存在冲突的待检测数据中最右方的主键值取出即可对冲突数据进行定位;
当所述待检测数据存在异常时,基于所述第二查询语句中的所述定位标记以及所述数据集,将所述待检测数据回溯至与其对应的原始数据。
2.根据权利要求1所述的方法,其特征在于,对数据规则进行面向等式的规则约束,包括:在数据集中找到数据值与待检测数据中相等的数据记录,通过数据检测方法对数据进行判断是否存在冲突。
3.根据权利要求2所述的方法,其特征在于,对数据规则进行面向不等式的规则约束,包括:判断在数据集中的数据值是否与待检测数据重合。
4.根据权利要求3所述的方法,其特征在于,在对所有数据的元组两两进行测试时,包括可接收的数据错误,和或,数据遗漏。
5.根据权利要求4所述的方法,其特征在于,可接收的数据错误,和或,数据遗漏,包括:
当待检测数据A属性的最大值小于数据集数据中A属性的最小值;
当待检测数据A属性的最小值小于数据集A数据属性的最小值且RDD数据A属性的最大值大于历史数据A属性的最小值但小于历史数据A属性的最大值;
当待检测数据A属性的最小值大于等于数据集A属性的最小值且RDD数据A属性的最大值小于等于历史数据A属性的最大值;
当待检测数据A属性的最大值大于历史数据A属性的最大值且RDD数据A属性的最小值大于历史数据A属性的最小值但小于历史数据A属性的最大值;
当待检测数据中A属性的最小值大于历史数据中A属性的最大值;
当待检测数据中A属性的最小值小于历史数据A属性的最小值但RDD数据A属性的最大值大于历史数据A属性的最大值。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述基于所述第二查询语句中的所述定位标记以及所述数据集,将所述待检测数据回溯至与其对应的原始数据,包括:利用所述定位标记进行数据抓取,并对所抓取的数据进行数据修正。
7.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行实现所述权利要求1-6中任意一项传感网数据异常检测方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行所述权利要求1-6中任意一项传感网数据异常检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911417386.5A CN111190906B (zh) | 2019-12-31 | 2019-12-31 | 一种传感网数据异常检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911417386.5A CN111190906B (zh) | 2019-12-31 | 2019-12-31 | 一种传感网数据异常检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111190906A CN111190906A (zh) | 2020-05-22 |
CN111190906B true CN111190906B (zh) | 2023-06-20 |
Family
ID=70709775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911417386.5A Active CN111190906B (zh) | 2019-12-31 | 2019-12-31 | 一种传感网数据异常检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111190906B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613892B (zh) * | 2020-12-25 | 2024-03-15 | 北京知因智慧科技有限公司 | 基于业务***的数据处理方法、装置以及电子设备 |
CN113282616A (zh) * | 2021-05-19 | 2021-08-20 | 华润电力技术研究院有限公司 | 一种增量的时序数据冲突检测方法、装置和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510204A (zh) * | 2009-03-02 | 2009-08-19 | 南京航空航天大学 | 一种基于目标条件关联规则数据库异常查询监测方法 |
US9177008B1 (en) * | 2012-06-29 | 2015-11-03 | Pivotal Software, Inc. | Positioned updates in a distributed shared-nothing data store |
CN107169033A (zh) * | 2017-04-17 | 2017-09-15 | 东北大学 | 基于数据模式转换和并行框架的关系数据查询优化方法 |
CN107784003A (zh) * | 2016-08-26 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 数据查询异常检测方法、装置、设备及*** |
CN109947788A (zh) * | 2017-10-30 | 2019-06-28 | 北京京东尚科信息技术有限公司 | 数据查询方法和装置 |
CN110162420A (zh) * | 2019-04-26 | 2019-08-23 | 平安科技(深圳)有限公司 | 数据辅助定位方法、装置、计算机设备及存储介质 |
CN110267215A (zh) * | 2019-05-21 | 2019-09-20 | 深圳壹账通智能科技有限公司 | 一种数据检测方法、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093493B (zh) * | 2006-06-23 | 2011-08-31 | 国际商业机器公司 | 数据库查询语言转换方法、转换装置 |
US11055407B2 (en) * | 2017-09-30 | 2021-07-06 | Oracle International Corporation | Distribution-based analysis of queries for anomaly detection with adaptive thresholding |
-
2019
- 2019-12-31 CN CN201911417386.5A patent/CN111190906B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510204A (zh) * | 2009-03-02 | 2009-08-19 | 南京航空航天大学 | 一种基于目标条件关联规则数据库异常查询监测方法 |
US9177008B1 (en) * | 2012-06-29 | 2015-11-03 | Pivotal Software, Inc. | Positioned updates in a distributed shared-nothing data store |
CN107784003A (zh) * | 2016-08-26 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 数据查询异常检测方法、装置、设备及*** |
CN107169033A (zh) * | 2017-04-17 | 2017-09-15 | 东北大学 | 基于数据模式转换和并行框架的关系数据查询优化方法 |
CN109947788A (zh) * | 2017-10-30 | 2019-06-28 | 北京京东尚科信息技术有限公司 | 数据查询方法和装置 |
CN110162420A (zh) * | 2019-04-26 | 2019-08-23 | 平安科技(深圳)有限公司 | 数据辅助定位方法、装置、计算机设备及存储介质 |
CN110267215A (zh) * | 2019-05-21 | 2019-09-20 | 深圳壹账通智能科技有限公司 | 一种数据检测方法、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
丁向朝 ; .SQL Server数据库查询语句优化的研究.华章.2012,(25),全文. * |
何源 ; 许力 ; 金华松 ; .基于前馈神经网络的数据库异常检测.信息与电脑(理论版).2013,(06),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111190906A (zh) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Souibgui et al. | Data quality in ETL process: A preliminary study | |
US7958114B2 (en) | Detecting estimation errors in dictinct page counts | |
US10467084B2 (en) | Knowledge-based system for diagnosing errors in the execution of an operation | |
Radjenović et al. | Software fault prediction metrics: A systematic literature review | |
US8874548B2 (en) | Predicting query execution time | |
CN110096494B (zh) | 使用源跟踪剖析数据 | |
US8332366B2 (en) | System and method for automatic weight generation for probabilistic matching | |
US9720971B2 (en) | Discovering transformations applied to a source table to generate a target table | |
US10387236B2 (en) | Processing data errors for a data processing system | |
US10452515B2 (en) | Automated root cause detection using data flow analysis | |
US8200655B2 (en) | Query-based generation of data records | |
Keivanloo et al. | Java bytecode clone detection via relaxation on code fingerprint and semantic web reasoning | |
US20230333547A1 (en) | Systems and methods for determining relationships between defects | |
US10649994B2 (en) | Bounded query rewriting using views | |
CN111190906B (zh) | 一种传感网数据异常检测方法 | |
US20070011541A1 (en) | Methods and systems for identifying intermittent errors in a distributed code development environment | |
US20100235296A1 (en) | Flow comparison processing method and apparatus | |
US20190370368A1 (en) | Data consistency verification method and system minimizing load of original database | |
Kumar et al. | Attribute correction-data cleaning using association rule and clustering methods | |
Hao et al. | Cleaning relations using knowledge bases | |
US9195730B2 (en) | Verifying correctness of a database system via extended access paths | |
Bazrafshan | Evolution of near-miss clones | |
Berko et al. | Knowledge-based Big Data cleanup method | |
CN108182181B (zh) | 一种基于混合相似度的大众贡献合并请求重复性检测方法 | |
WO2015184750A1 (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 |