工业大数据融合体系结构与关键技术
上QQ阅读APP看书,第一时间看更新

1.3.4 大数据管理

文献[136]将大数据的管理划分为四部分内容:数据存储(data storage)、数据预处理(data pre-processing)、数据处理(data processing)以及数据安全(data security)。

1.数据存储

数据存储领域存在三方面的关键问题:聚类(clustering)、复制(replication)和索引化(indexing)。

(1)聚类

聚类是将大量数据总结成分组的过程,具有相似特征的实体被放置在一起。文献[137]指出,针对海量数据和有限存储资源之间的矛盾,聚类能够将数据进行精确的分组和表示,进而有效地降低了存储数据所需的空间。文献[138]提出的存储优化层次聚集聚类(Storage-Optimizing Hierarchical Agglomerative Clustering,SOHAC)算法设计了一种存储结构,该结构针对可变的数据提供了较小存储空间需求的方案。该算法的雏形最早在文献[139]中提出,但针对高维数据的计算是受限制的。从本质上说,聚类方法在面临正常数据时存在一些限制,因此它们不能很好地适应较大的数据集。文献[140]基于k-means算法提出一个面向数据集的并行聚类方法并在MapReduce框架下进行了实现,该方法为n个对象创建k个簇,处于同一个簇内的对象之间的相似性应当尽可能地高。一般来说,k-means类算法的性能在随机选取的数据上是因情况而异的,会导致算法关注于寻找本地最优的相似性。针对该问题,研究者们提出了基于分区的聚类、基于人工智能的聚类以及其他k-means类算法的替代品。文献[141]提出了人工蜂群(Artificial Bee Colony,ABC)优化算法,该算法属于基于分区的聚类,实验结果显示人工蜂群算法的性能要优于包括粒子群优化(Particle Swarm Optimization,PSO)算法在内的绝大多数聚类方法。

(2)复制

复制是大数据存储管理中毋庸置疑的重要操作,其保证了数据的可获得性和一致性访问。对于可变的数据来说,确定每个副本的准确性和存储空间的预留程度是具有挑战性的问题[142]。文献[143]将数据的一致性建模为复制的可信度。此外,由于数据的变化一直处在传播的状态,因此数据改变的传播时间也会作为一个重要的因素。文献[144]提出了一个动态数据复制策略(Dynamic Data Replication Strategy,D2RS)来优化数据的可获得性和云系统的带宽消耗,该策略着重阐述了如何选择需要复制的数据、多少份副本能够保证系统维持一定的可获得性以及副本的放置位置等问题。

(3)索引化

对于海量数据来说,索引化能够优化查询执行的效率,进而改善获取数据的性能。因此,需要研发合适的机制来获得较高的索引化吞吐量并实现高效的数据查找[145]。文献[146]提出的索引化和查找机制支持在数据流中针对关键字进行查找,该机制包含一个组合树索引结构,实验表明其适用于大规模的流数据,且消耗的内存较少。文献[147]提出了基于支持向量机的索引化算法,该算法用于从监控视频中提取视频数据来对人类行为进行建模。通过修改基本状态和转移概率的计算方式来获得不同的状态,进而确定输入值的概率分数。由于上述状态和概率是通过对数据的训练而获得的,因此其学习过程耗时严重。

2.数据预处理

数据预处理领域存在两个方面的关键问题:传输(transmission)和清洗(cleansing)。在对采集到的数据进行分析和进一步的挖掘之前,需要首先判断数据的质量,只有具备良好质量的数据才具备提供有价值信息的潜力。

(1)传输

传输是指将原始数据转移到存储设施中,这些存储设施可能包含本地数据中心和云数据中心。原始数据的传输通常都要涉及各类通信网络和传输协议,对于当前复杂应用场景下产生的海量多源异构数据来说,原始数据的传输环节面临很多重大挑战。文献[148]指出,在数据分析过程中,以远程方式执行读/写操作非常耗时。常见的解决方案是通过高速局域网将数据传输至具有计算和分析能力的数据中心,这样做的副作用是会在数据中心周围的网络中产生拥塞,进而削弱数据中心处理和分析数据的能力。近年来,由于光信息交换在点对点链接上的廉价性,光纤技术在数据中心网络中的使用越来越广泛[149]

(2)数据清洗

数据清洗是一系列技术的统称,这些技术能够对不完全的、不准确的数据进行处理和转换,实现提高数据质量的功能。为了保持数据的可靠性,数据清洗的操作是必不可少的[150]。文献[151]将数据清洗中包含的常规操作分为五步:1)确定现有错误的类型;2)查找并识别错误的实例;3)修正错误、记录出错的实例以及错误的类型;4)更新数据输入流程来减少错误;5)对数据的格式、完整性和合理性进行检查。在传统的数据分析领域,绝大多数情况下数据的来源是比较有限的,而且这些数据源都具有比较完善的模型和严格的定义,因此所产生的数据通常是相对干净和整洁的。随着大数据时代的到来,数据源广泛存在于各个领域,绝大多数数据源都未经过良好的定义,同时也没有经过合理的验证。这对传统的数据分析应用程序的实际性能造成了很大的影响。一般来说,数据清洗的方法依赖于复杂的关联模型(complex association model),其导致在处理过程中产生额外的计算开销和延迟。因此,文献[47]指出,数据清洗的模型必须根据准确性分析的性能提升程度在复杂性方面进行调整。针对移动环境下数据缺失的问题,文献[152]给出了一个概率模型,该模型能够以较低的开销达到比较令人满意的性能。

3.数据处理

一般来说,数据处理有两个目的:探究多个数据特征之间的关系;研发有效的数据挖掘算法以预测数据未来的趋势。因此,数据处理领域存在两个方面的关键问题:分类(classification)和预测(prediction)。文献[153]指出,处理海量数据的能力可以为决策者提供足以影响商业格局的重要信息。由于海量多源异构数据本身具有的复杂性,对数据进行处理的算法需要具有良好的可扩展性和可接受的时间/空间复杂度[154]

(1)分类

分类本质上来说是一种数据挖掘方法,其作用是将样本划分为不同的组[155]。文献[156]指出,数据挖掘能够协助各类商业组织洞察隐藏在数据当中的信息,目前已经成功地应用于科技、医药、商业以及工程等领域。大数据时代不仅将海量的数据聚集了起来,同时在结构化数据、非结构化数据以及半结构化数据这三个大类中产生了很多新型的数据格式,这些新型的数据格式在传统的数据挖掘方法中未曾涉及[157]。具体来说,传统的数据挖掘方法无法在针对新型数据的分析中寻找未知和同质化的模式。文献[158]指出,针对大数据分析所涉及的存储与计算问题,云计算技术可以给出有效的解决方案。一般来说,大数据的数据挖掘模式如下:对于采集到的半结构化和非结构化的数据,首先将其存储在分布式数据库中,其次进行清洗、集成和转化,最后进行分析。

(2)预测

预测是指通过数据挖掘算法基于历史数据以及某种映射关系来对变量进行估计。为了进行灵活的数据分析,文献[159]提出了三个原则:第一,数据分析的体系结构应该支持多种分析方法,例如统计分析、机器学习和可视化分析等;第二,能够对用不同存储机制存储的数据进行分析,而且在数据处理的不同阶段,所采用的方式是不同的;第三,数据的访问及存储方式应当是高效的。文献[160]指出,当前由各类设备产生的数据量正以前所未有的速度进行增长,对于结构化数据和非结构化数据,数据访问和挖掘的速度也在随之增加。设计优良的数据预测方法能够通过分类和估计得出模型,然后对未来的数据状态进行较为准确的预测。

4.数据安全

数据安全领域存在四个方面的关键问题:隐私(privacy)、完整性(integrity)、机密性(confidentiality)和可获得性(availability)。文献[161]于2015年指出,在大数据环境下,由于数据是由多种数据源产生的,因此数据的安全性就成了一个严重的问题,需要针对大数据的安全来研发高效的机制和算法。

(1)隐私

由于近年来数据泄露事件频发,各国政府及各类机构都面临着在大数据带来的机遇与隐私风险之间进行平衡的问题[162][163]。美国国家安全局(National Security Agency,NSA)的监视计划不仅为隐私捍卫者所诟病,即使是政策制定者也认为有必要限制政府在打击恐怖袭击和网络攻击方面的权力。文献[164][165]指出,在大数据带来的机遇与良好的隐私保护之间寻找合适的折中点是当前制定公众策略所面临的最大挑战。针对隐私保护给商业公司以及政府带来的问题,学界和业界已经提出了若干帮助决策者理解和缓解数据隐私相关的风险的机制[166]:文献[167]针对隐私保护的度量设计了期望最大化(expectation-maximization)算法,该方案是确保数据挖掘过程中隐私保护的一个重构算法,其性能主要受限于随机化机制的效率。文献[168]基于可移植的数据绑定技术提出了数据保护的三层体系结构,该模型为由数据索引导致的隐私问题提供了解决方案,其性能主要受限于对恶意攻击的防护。文献[169]为MapReduce框架添加了隐私保护层,该方案能够在MapReduce子序列任务进一步处理数据之前保护数据隐私,其不足之处为与其他数据处理流程进行集成的能力较弱。文献[170]基于启发式算法提出了降低隐私保护开销的方案,该方案能够识别众多中间数据集中哪些需要被加密,而哪些不需要被加密。

(2)完整性

在大多数协同性事务中(例如医疗、金融和军事等),不同实体之间通过信息共享来实施分析与决策。在这种应用场景下,数据的完整性至关重要[171]。对于大规模的协同性事务,所参与的实体在不同程度上都面临着数据高速变化的情况,因此从整体上看,数据的完整性要求所面临的形势十分严峻。当数据的完整性无法得到保证时,数据的有效性会显著降低,从其中提取的信息的可信度也会显著降低,进而不同实体之间的协作无法成功完成。令人遗憾的是,尽管数据的完整性十分重要,但目前该领域的研究与应用依然很有限。造成这种现象的主要原因是给出数据完整性的精确定义很难。一般来说,数据完整性最为广泛接受的定义是防止非法和非授权的改变。文献[172]指出上述定义在某种程度上与Clark-Wilson完整性模型[173]比较吻合,该文献阐述的是避免欺骗(fraud)和错误(error)。

文献[174]讨论了数据完整性的五类定义:第一类定义称为数据质量定义(data quality definition),其典型代表为Courtney-Ware模型[175]。该模型基于数据质量的期望(expectation of data quality):数据具有完整性,是指其质量符合或者超过用户期望的需求。Courtney-Ware模型是五类定义中唯一一个涉及活性(liveness)需求的定义,如果数据没有定期地进行更新,那么数据的及时性就会恶化(deterioration)。此外,第二、三、四类定义仅提及了安全性需求,故而通过显式的动作就可以使数据的完整性受到危害,而无须使用使数据失效的动作。第二、三类定义之间密切相关,均基于修改数据的能力,统称为数据修改定义(data modification definition)。第二类定义给出了针对不合适的数据修改(improper modification of data)需要对数据完整性进行保护的范围,其中的典型代表为Sandhu-Jajodia模型[176]。第三类定义进一步缩小了对数据完整性进行保护的范围,其针对未授权的数据修改(unauthorized modification of data)进行保护。第三类定义在众多安全标准中都有所体现[177][178]。第四类定义称为信息流定义,其中的典型代表为Biba完整性模型,该模型将完整性看作格(lattice)中的单向信息流(one-directional information flow)[179]。第四类定义比前三类定义更加严格,其针对未授权的数据修改给出了非常具体的规范。第五类定义通常源于网络领域,是最严格的定义。该类定义要求数据是不能够被修改的,或者说任何改变都应当是可检测的(detectable),同时要求存储介质中的数据也遵循类似的行为规范。第五类定义在文献[174]中并没有进行详细的讨论,列出该类定义是为了保持定义序列整体的完整性。

当代绝大多数数据库管理系统(DataBase Management System,DBMS)都允许用户自定义对数据的限制条件,其中大部分属于完整性约束。这些完整性约束的主要目的是保证数据的一致性和准确性。由于不同的完整性需求对应着不同类型的方法,因此多方面的完整性约束无法很好地归纳出完整性的定义。例如,Clark-Wilson完整性模型通过应用结构良好的交易事务来修正错误的数据。Biba完整性模型通过限制数据对象之间的信息流动来防止数据的损坏[180]。数据完整性保护所面临的最大挑战是研发环节如何确保完整性检查与大数据的实际应用需求相结合。当研究者们试图对大数据应用完整性规则和哈希算法时,已有的方法无法适应大数据所具有的新型特征。因此,需要针对大数据的新型特征来设计能够对海量数据进行完整性检查的算法。文献[181]指出,当处理云中的大数据时,数据完整性检查的一个关键环节是不可信的服务器。对于广泛应用于大数据领域的分布式数据采集与存储系统来说,在线的数据完整性验证方法不可或缺,这类方法不需要内部存储结构中数据的信息,在很大程度上提高了完整性验证方案整体的效率。

(3)机密性

数据的机密性可以通过阻止未授权的用户访问数据来实现。文献[182]指出,上述阻止通常是通过应用加密方法来对数据进行保护。对于海量数据而言,加密算法可以分为表加密、磁盘加密和数据加密。传统的加密方法只能应用于有限规模的数据,随着数据规模的持续增长,需要研发能够应用于海量数据机密性保护的新型加密算法。此外,在对海量数据执行加密操作的过程中,算法消耗的能源应当尽可能地小。如前所述,大数据具有异构性和分布式两大复杂特性,因此降低加密算法的复杂性和开销至关重要。数据加密方法的选择通常基于以下原则:最小的粒度(granularity),强安全性、高灵活度以及较好的应用相关性。在实际应用中,大规模的键空间、数据管理以及应用复杂性通常对加密算法的性能形成诸多限制。尽管近年来密码学领域的研究如火如荼,但大多集中在模式和应用层面的创新。因此,在数据的机密性方面,常用的算法依旧是早期的经典算法。这里,笔者对七种经典的加密算法进行阐述,这些加密算法各自都具有一些本质上的缺陷,有些已经存在破解的案例,但是通过结合具体实现中应用层面其他环节的限制,它们的安全性在实际使用中都是符合要求的。文献[183]对Twofish算法进行了描述,该算法的密钥大小为128位、192位和256位,加密块的大小为128位,加密轮数为16轮,其存在的安全性缺陷为截断差分密码分析(truncated differential cryptanalysis),目前该算法还未被破解;文献[184]对RC4算法进行了描述,该算法是一种密钥长度可变的流加密算法,其密钥大小为40~2048位,加密块的大小是可变的,加密轮数为256轮,其存在的安全性缺陷为弱密钥安排(weak key schedule),目前该算法已经有破解案例;文献[185]对RC2算法进行了描述,该算法是一种传统的私钥块加密算法,其密钥大小为8~1024位,常用的是8字节,加密块的大小为64位,加密的轮数为16+2,其中16轮Mixing操作和2轮Mashing操作,其存在的安全性缺陷是相关密钥攻击,目前该算法已经有破解案例;文献[186]对DES算法进行了描述,该算法的全称是数据加密标准(data encryption standard),由美国IBM公司研究并发布,其使用密钥对块进行加密,密钥大小为56位,加密块的大小为64位,加密轮数为16轮,该算法存在的安全缺陷有暴力攻击(brute force attack)、戴维斯攻击(davis attack)和线性密码分析(linear cryptanalysis),目前已经有破解案例;文献[187]对Triple DES进行了描述,由于DES算法在理论上存在安全缺陷,因此IBM公司后续对该算法进行了改进,设计了Triple DES算法,该算法对每个数据块执行三次DES加密,其密钥大小为112位或168位,加密块的大小为64位,加密轮数为48轮,该算法理论上存在缺陷,但目前还未有破解案例;文献[188]对Blowfish算法进行了描述,该算法的密钥大小为128位,加密块的大小为64位,加密轮数为16轮,其存在的安全性缺陷为二阶差分攻击(second-order differential attack),目前还未有破解案例;文献[189]对Rijndael算法进行了描述,该算法的密钥大小为128位、192位和256位,加密块的大小为128位,加密轮数为10轮、12轮和14轮,其存在的安全性缺陷为侧信道攻击(side channel attack),目前还未有破解案例。

(4)可获得性

对于采用分布式云技术来解决存储问题的海量数据来说,数据的可获得性直接影响着各个层次中构件与服务的服务质量(Quality of Service,QoS)。一方面,文献[190]指出,不论用户何时请求数据,系统都能够满足用户的需求,即理想情况下系统在任何时间都不会出现失效。另一方面,文献[191]指出,相比传统的数据挖掘算法,为了针对海量数据提供大量的、高速的数据流,新型的数据挖掘算法必须具有非常高的瞬时性(instantaneity)。此外,实际应用场景中还存在一些对数据可获得性构成潜在威胁的因素。文献[192][193]提到恶意用户可以通过向特定的服务器发送大量消息而使得合法用户无法正常地与服务器进行交互,这种类型的攻击通常称为洪泛攻击(flooding attack)。文献[164]将洪泛攻击分为两类:直接DoS攻击和间接DoS攻击,这里的DoS是指拒绝服务(denial of service)。对于直接DoS攻击,由于服务器上特定服务所具有的资源及网络带宽被大量请求所耗尽,因此合法数据完全丢失;对于间接DoS攻击,虽然没有明确的目标,但服务器上所有的服务都将受到不同程度的影响。