71muke 71muke

大数据存储技术对社会与经济的影响

一、大数据存储技术对社会与经济的影响

影响的背景

在很多领域,NoSQL存储技术被证明是有效分析大量数据和创造额外业务价值的关键推动力。例如,在新媒体领域,对社交媒体的分析有可能通过汇总大量自媒体新闻来改变新闻业。在交通领域,交通系统的综合数据管理集成有可能实现个性化的多式联运,增加城市内旅行者的体验,同时帮助决策者更好地管理城市交通。

在跨部门社会管理层面,向数据驱动型经济和社会管理模式的转变可以从DataMarket、Infochimp等数据平台的出现以及欧盟的开放数据倡议和其他国家门户网站得到体现。从其产品和服务的定位可以看出,技术供应商正在支持向数据驱动型经济的转变。


1. 数据存储技术

在过去十年中,为了应对数据体量爆炸式增长的需求,以及硬件从纵向扩展到横向扩展方法的转变导致新的大数据存储系统激增,这些系统从传统的关系数据库转向非关系数据库。面向大数据存储的非关系数据库通常会牺牲数据一致性等属性,以便在数据量增加时保持快速查询响应的能力。大数据存储的使用方式与传统关系数据库管理系统类似,例如,采用OLTP(联机事务处理)解决方案和数据仓库,其在高效处理大规模的非结构化和半结构化数据优势明显。

1)分布式文件系统

分布式文件系统(Distributed file system,DFS),是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间

在分布式文件系统中,客户端并非直接访问底层的资料存储区块,而是通过网络,以特定的通信协议和服务器通信,客户端和服务端都能根据访问控制清单或者授权,来限制对于文件系统的访问。在一个共享的磁盘文件系统中,所有节点对资料存储区块都有相同的访问权,在这样的系统中,访问权限就必须由客户端程序来控制。分布式文件系统具有透明的文件复制与容错功能,即使系统中有一小部分的节点离线,整体来说系统仍然可以持续工作而不会有文件损失。

Hadoop 文件系统 (HDFS) 等文件系统提供了在商用硬件上以可靠方式存储大量非结构化数据的能力。HDFS 作为 Hadoop 框架的一个组成部分,已经成为了事实上的行业标准。它专为大型数据文件而设计,非常适合快速抽取数据和批量处理。

image.png

2)NoSQL数据库

NoSQL数据库管理系统(常称非关系数据库)是最重要的大数据存储技术。 NoSQL 数据库和关系数据库数据模型不同,这些模型不一定遵守原子性、一致性、隔离性和持久性 (Atomicity, Consistency, Isolation, Durability,ACID) 的事务属性。

NoSQL 数据库是为可扩展性而设计的,通常会牺牲一致性。与关系数据库相比,NoSQL通常使用低级、非标准化的查询接口,这使得它们更难以集成到需要 SQL 接口的现有应用程序中。缺乏标准接口使得更换数据库变得比较困难。NoSQL 数据库可以根据使用的数据模型进行分类。

image.png

3)NewSQL数据库

NewSQL是一种新型的关系数据库,旨在实现与NoSQL 数据库相当的可扩展性,同时保持传统关系数据库系统的事务保证。NewSQL数据库具有以下特征:

(1)应用程序采用SQL与数据库进行交互。

(2)事务的 ACID 支持。

(3)非锁定并发控制机制。

(4)提供更高的每节点性能的架构。

(5)横向扩展、无共享架构,能够在大量节点上运行而不会遇到瓶颈。

一般认为,NewSQL比传统的 OLTP 关系数据库快约50倍。 例如,VoltDB在非复杂(单分区)查询的情况下线性扩展并提供 ACID 支持。 它可以扩展到几十节点,每节点都被限制在主内存的大小。


4)大数据查询平台

大数据查询平台指在分布式文件系统或NoSQL数据库等大数据存储前端提供查询界面的综合技术。大数据查询平台简化了对底层数据存储的查询,主要关注的是提供高级接口,例如,通过类似 SQL的查询语言实现低查询延迟,如Hive在Hadoop分布式文件系统(HDFS)之上提供了一个抽象层,允许通过类似SQL的查询语言查询结构化文件。Hive将查询语句通过解释器转换为MapReduce作业提交到Hadoop。因此,即使对于小型数据集,Hive 查询也具有很高的延迟。

与 Hive 相比,Impala 旨在以低延迟执行查询。它重用了与 Hive 相同的元数据和类似 SQL 的用户界面,但使用了自己的分布式查询引擎,可以实现更低的延迟。它还支持 HDFS 和 HBase 作为底层数据存储。

Spark SQL是另一个支持 Hive 接口的低延迟查询界面。Spark SQL项目声称“它可以比 Hive 快 100 倍地执行 Hive QL 查询,而无需对现有数据或查询进行任何修改”。它通过使用 Spark 框架而不是 Hadoop 的 MapReduce 框架执行查询来实现的。(Spark侧重实时数据的处理;hive侧重离线数据的分析

image.png


2. 大数据存储安全

大数据安全是用于保护数据和分析方法免受攻击、盗窃或其他可能导致问题或对其产生负面影响的恶意活动的所有措施和工具的总称。与其他形式的攻击一样,大数据可能会受到来自在线或离线攻击的危害

由于大数据存储了来自各种来源、类型各异的数据,因此我们需要确保其安全性,几乎每个使用大数据的企业都有某种形式的敏感数据,需要对其进行保护。敏感数据可以是用户的信用卡详细信息、银行详细信息、密码。为了确保数据的安全,可以构建各种策略,例如,通过防火墙阻止未经授权的用户和入侵,使用户身份验证可靠等等。


1)大数据存储安全的基本架构

①数据分类

将大数据应用中的训练数据集提供给分类算法,通过考虑不同类型的可能攻击和使用数据的历史,将数据分为正常和敏感两类

②敏感数据加密

敏感数据使用同态密码系统进行加密

(解释:同态密码系统是一种特殊的加密技术,允许在密文上进行特定的计算,而无需先对数据进行解密,计算结果解密后与在明文上进行相同计算的结果一致

③ORAM(茫然随机访问机)技术存储数据

使用 ORAM (茫然随机访问机)技术将正常和加密的敏感数据存储在单独的系统节点上

(解释:ORAM 技术主要用于隐藏数据的访问模式保护数据的隐私和安全性。在这种情况下,它被用来处理敏感数据,无论是正常的敏感数据(可能是尚未加密的敏感信息)还是已经经过加密的敏感数据。

通过 ORAM 技术,能够确保在数据存储和访问过程中,不会因为数据的访问模式而泄露敏感信息。)

④通过路径隐藏方法访问数据

任何寻求特定数据的最终用户利用路径隐藏技术获取数据,同时确保数据隐私。路径隐藏技术可防止第三方猜测数据访问模式,从而保护整个系统

(解释:在一个分布式存储系统中,数据可能分散存储在多个不同的节点上,用户请求数据时,路径隐藏技术会将真实的访问路径进行伪装或变换,使得其他人难以直接追踪到数据是从哪些具体的节点获取的


2)确保安全数据存储的事务日志

由于数据的分布存储,数据面临着特殊的安全挑战。通过自动分层,运营商将数据存储的控制权交给算法以降低成本。事务日志必须说明数据行踪、层级移动和更改

必须仔细设计自动分层策略,以防止敏感数据转移到成本较低导致的安全性较低的层;应该建立监控和日志机制,以便清楚地了解自动分层解决方案中的数据存储和数据移动。

代理重加密方案,可以应用于多层存储和数据共享,以确保无缝的机密性和真实性。但是,大数据应用程序的性能必须提高。

(解释:代理重加密允许一个半可信的代理服务器在不解密数据的情况下,将密文从一个密钥空间转换到另一个密钥空间。即代理服务器可以根据特定的重加密密钥,对用原始密钥加密的数据进行转换,使其能被拥有另一个密钥的用户解密,而代理服务器无法获取数据的明文内容。


3)粒度访问控制的安全和隐私挑战

由于如法律限制、隐私政策和公司其他政策多样化的安全要求,数据的多样性是一项重大挑战。

需要细粒度的访问控制机制来确保符合这些要求。

主要的大数据组件将与基于令牌的身份验证以及基于用户和作业的访问控制列表 (ACL) 结合使用

但是,需要更细粒度的机制,例如,基于属性的访问控制 (ABAC) 和可扩展访问控制标记语言 (XACLM) 来对数据来源的广泛多样性进行建模和分析。

(解释:粒度访问控制是一种对系统资源访问权限进行精细管理的技术,它允许根据不同的条件,如用户身份、数据属性、操作类型等,对访问权限进行精确的分配和控制。


4)加密强制访问控制和安全通信

现在,数据通常以未加密的方式存储,访问控制完全依赖于类似的强制执行。然而,数据只能由授权实体通过密码学的保证访问——在存储和传输中也是如此。出于这些目的,需要新的加密机制以高效且可扩展的方式提供所需的功能。

虽然云存储提供商开始提供加密服务,但加密密钥材料应该在客户端生成和存储,并且永远不要交给云提供商。一些产品将此功能添加到大数据存储的应用层,例如,zNcrypt、Protegrity Big Data Protection for Hadoop 和 Intel Distribution for Apache Hadoop(现在是 Cloudera 的一部分)。

基于属性的加密是未来发展的一个方向,它可以将密码学与大数据存储的访问控制相结合。

(解释:这里的 “门” 是一种形象的比喻,代表着一种访问控制机制,类似于现实生活中的门,只有拥有正确钥匙或通过特定授权的人才能打开门进入,从而访问到门后面的数据


毕设系统定制、课程教学、问题1对1远程解答,可联系村长QQ:330168885

留言

发布留言

需要购买本课才能留言哦~

{{ item.createtime | dateStr }}
×