传统关系数据库与海量数据存储及安全性
海量数据存储的方法及安全性 2013308880017吴双可 摘要:随着信息技术的飞速发展,我们已进入了大数据时代。传统的关系型 数据库在数据存储上已无法满足海量数据存储在在容量、性能、存储效率和安全 性等方面的要求。而近年来,海量数据存储技术也迅速发展。本文重点介绍传统 关系型数据库在海量数据存储上的局限性, 以及主要的海量数据存储方式,并且 讨论了海量数据存储安全性的保障。 1 传统关系型数据库 1.1 传统关系型数据库概念 关系数据库, 是创建在关系模型基础上的数据库,借助于集合代数等数学概念和 方法来处理数据库中的数据。 现实世界中的各种实体以及实体之间的各种联系均 用关系模型来表示。 关系模型是由埃德加·科德于 1970 年首先提出的, 并配合“科 德十二定律”。现如今虽然对此模型有一些批评意见,但它还是数据存储的传统 标准。 标准数据查询语言 SQL 就是一种基于关系数据库的语言, 这种语言执行对 关系数据库中数据的检索和操作。关系模型由关系数据结构、关系操作集合、关 系完整性约束三部分组成。 1.2 传统关系型数据库特点 传统关系型数据库在数据存储上主要面向结构化数据,聚焦于便捷的数据查 询分析能力、按照严格规则快速处理事务(transaction)的能力、多用户并发访 问能力以及数据安全性的保证。其结构化的数据组织形式,严格的一致性模型, 简单便捷的查询语言, 强大的数据分析能力以及较高的程序与数据独立性等优点 获得广泛应用。 2 海量数据存储方式 2.1 主要的存储介质 2.1.1 磁盘 优点:数据读取、写入速度快,操作方便 缺点:发热量大、噪声大、硬盘易损 应用环境:海量数据的即时存取 2.1.2 光盘 优点:单位存储容量成本低,携带方便,数据查询时间短 缺点:表面易磨损,寿命短 应用环境:海量数据的在线访问和离线存储 2.1.3 磁带 优点:容量大、保存时间长 缺点:数据顺序检索,定位时间长 应用环境:海量数据的定期备份 2.2 海量存储的模式 2.2.1 直连式存储 直连式存储(DAS)即磁盘驱动器和服务器直接连接,存储作为外围 设备,在这种存储结构中,数据管理是以服务器为中心的,而且所有的应用软件 都是和存储子系统配套。DAS 适用于一个或有限的几个服务器环境,但存储容量 增加时, 不但存储供应的效率变得越来越低, 而且可升级和扩展性受到很大限制, 当服务器出现异常时, 更使数据不可获得, 同时存储资源和数据也无法进行共享。 2.2.2 网络存储 网络存储分为:网络附加存储(Network AttachedStorage,NAS)、光纤存储区 域网 FC—SAN、IP 存储区域网 IP—SAN。 NAS 将存储设备连接到现有的网络上来提供数据和文件服务。 NAS 服务器一 般由存储硬件、操作系统以及其上的文件系统等几个部分组成。NAS 通过网络直 接连接磁盘阵列,磁盘阵列具备了高容量、高效 能、高可靠等特征。 。NAS 将存 储设备通过标准的网络拓扑结构连接,可以无需服务器直接上网,不依赖通用的 操作系统,而是采用一个面向用户设计的、专门用于数据存储的简化操作系统, 内置与网络连接所需的协议,从而使整个系统的管理和设置较为简单。 光纤存储区域网FC—SAN指的是通过一个单独的高速光纤网络把存储设备 和挂在 TCP/IP 网络上的服务器群相连。当有海量数据的存取需求时,数据可以 通过存储区域网在相关服务器和后台存储设备之问高速传输。 SAN 以光纤通道为 基础,不但提供了主机和存储设备之间的高速互联,实现了存储设备的共享,服 务器通过存储网络直接同存储设备交换数据,不占用 LAN 的网络资源。 IP—SAN 由于主要部分采用光纤通道,因此设备昂贵的成本一直未能得到 解决,为此将 iSCSI 卡集成到 NAS 存储设备上,支持数据块形式的 I/O 访问,最 后发展成主机通过带 TCP 卸载引擎(TCP Offioad Engine,TOE)的 iSCSI 主机总线适 配器(Host Bus Adapter,HBA)卡接入 IP 网络来访问 iSCSI 存储设备。IP 存储采用 基于 IP 协议的网络传输数据,由于IP 环境下数据包可以被捕捉解码,对此iSCSI 存储要采用多种安全措施以提高数据访问和数据存储的安全性。 2.3 海量数据存储系统 2.3.1 非集中式数据存储管理系统 1)亚马逊(Amazon)的 Dynamo Dynamo 是亚马逊的 key-value 模式的存储平台,可用性和扩展性都很好,性能 也不错:读写访问中 99.9%的响应时间都在 300ms 内。 在 Dynamo 中,数据按照键/值对(key-value)进行组织,主要面向原始数据 的存储。这种架构下,系统中每个节点都能相互感知,自我管理性能较强,没有 单点失效。 2)Google 的 Bigtable Bigtable 是谷歌开发的一套结构化存储系统。数据以多维顺序表的方式进行存 储。 整个系统采用传统的服务器群形式,由一个主控服务器和多个子表服务器构 成,并使用分布式锁服务 Chubby 进行容错等管理。这种架构下,将存储(依靠 GFS)和服务的管理分离开来,简化了管理难度,易于维护且人为可控。但是由 于底层存储依赖分布式文件系统,使得 Bigtable 只能在集群中部署。 hadoop 中 Hbase 就是 Google BigTable的开源实现。 2)Facebook 的 Cassandra CassandraCassandra 最初由 Facebook 开发,后转变成了开源项目. 是一套采用对 等网络计算(peer to peer,P2P)技术实现的结构化数据存储系统。以 Amazon 专有的完全分布式的 Dynamo 为基础, 结合了 Google BigTable基于列族 (Column Family)的数据模型.P2P 去中心化的存储。很多方面都可以称之为 Dynamo 2.0。 与 Dynamo 有所不同的是,Cassandra 采用类似 Bigtable 的多维表数据模 型组织数据。 其主要功能比 Dynamo 更丰富, 但支持度却不如文档存储 MongoDB (介于关系数据库和非关系数据库之间的开源产品, 是非关系数据库当中功能最 丰富, 最像关系数据库的。 支持的数据结构非常松散, 是类似 json 的 bjson 格式, 因此可以存储比较复杂的数据类型。 ) 主要特性: ● 分布式 ● 基于 column 的结构化 ● 高伸展性 3 传统关系型数据库与海量数据存储 3.1 传统关系型数据库在海量数据存储中的缺点 虽然关系型数据库具有第 1 部分所述的优点, 但是面向结构化数据存储的传统关 系型数据库已经不能满足当今互联网数据快速访问、 大规模数据分析挖掘的需求。 它的主要缺点有: 1)对于半结构化、非结构化的海量数据存储效果不理想。像电子邮件、超文本、 标签(Tag)以及图片、音视频等各种非结构化的海量数据。 2)关系模型束缚对海量数据的快速访问能力:关系模型是一种按内容访问的模 型。即在传统的关系型数据库中,根据列的值来定位相应的行。这种访问模型, 会在数据