基于云计算的数据模型探讨

时间:2022-10-03 02:54:57

基于云计算的数据模型探讨

摘要:随着云计算技术的不断发展,云计算将影响传统数据库的发展趋势,同时,云服务模式正在逐步得到市场认可,本文将探讨云数据库所支持的几种数据模型及其它们的优缺点,NoSQL数据库的优劣势分析,最后介绍了目前常见的几种云数据库产品。

关键词:云计算 数据模型 云数据库 NoSQL数据库

0 引言

从2006年Google提出“云计算”的概念至今,云计算正以史无前例的速度发展,国内外各大IT企业都在开署各自的云计算平台,云计算的应用更趋多样化,目前在互联网上我们看到的很多应用都可以看到“云”的身影,诸如“云存储”、“云安全”、“云物联”、“云邮件”、“云输入法”等等。总的来说云计算包括三个层次的服务:基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。云服务模式实现了资源集中配置和管理,实现按需采购、配置,避免资源浪费,能够更好满足用户不断变化的需求。同时降低管理维护成本,随着云计算技术的不断发展,系统的可靠性、扩展性、稳定性也会更好,云计算将影响传统数据库的发展趋势,云服务模式将逐步得到市场认可,反过来讲,传统数据库必须能更好适应云计算环境的需求。传统的关系型数据库由于其天生的限制,已经越来越无法满足目前时代的要求,云计算时代对数据库技术提出了新的需求,主要表现在海量数据处理,大规模集群管理,低延迟读写速度,建设及运营成本。虽然它在数据存储方面占据了不可动摇的地位,但对数据扩展、读写速度、支撑容量以及建设和运营成本的要求方面,就稍显逊色。下面我们来探讨适应于云计算的数据库所支持的数据模型。

1 云数据模型的类型

无论是关系型数据库还是非关系型数据库,都是某种数据模型的实现,不同的数据模型可以满足不同的应用需求。数据模型会影响客户端通过API对数据的操作,决定了客户端如何对数据进行编码存储。云数据库的设计可以采用不同的数据模型,目前适应于云计算平台的数据模型有以下几类:

1.1 基于云计算的关系模型。关系型云数据库的数据模型涉及行组和表组等相关概念。此模型的数据结构为一个表是一个逻辑关系,它包含一个分区键,用来对表进行分区。具有相同分区键的多个表的集合称为表组。在表组中,具有相同分区键值的多个行的集合称为行组。一个行组中包含的行总是被分配到同一个数据节点上。每个表组会包含多个行组,这些行组会被分配到不同的数据节点上。一个数据分区包含了多个行组。因此,每个数据节点都存储了位于某个分区键值区间内的所有行。微软的SQL Azure云数据库就是基于此模型的。

1.2 NoSQL数据库数据模型。由于在设计上和传统的关系型数据库相比有很大的不同,故称此类数据库为“NoSQL(Not only SQL)”系列数据库,即非关系型的数据库。与关系型数据库相比,此类数据库非常关注对数据高并发读写和海量数据的存储,在架构和数据模型方面做了简化,而在扩展和并发等方面做了增强。此类数据库种类繁多,且各有优缺点,其数据模型有如下四类:①键值(key-value)存储模型。使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。其数据模型为一系列的键值对。它能提供非常快的查询速度、大的数据存放量和高并发操作,非常适合通过主键对数据进行查询和修改等操作,缺点是存储的数据缺少结构化,不支持复杂的操作。运用此模型的数据库有BigTable、Tokyo cabinet/Tyrant、Redis、Voldmort、Berkeley DB等。②列式存储模型。列式存储和关系模型相似,与关系模型存储记录不同,列式存储以流的方式在列中存储所有的数据。其数据模型为以列簇式存储,将同一列数据存放在一起。属于同一列的数据会尽可能地存储在硬盘同一个页中,而不是将属于同一个行的数据存放在一起。使用列式数据库,将会节省大量I/O,并且大多数列式数据库都支持Column Family这个特性,能将多个列并为一个小组。总体而言,这种数据模型的优点是查找速度快,可扩展性强,更容易进行分布式扩展,缺点是功能相对局限。运用此模型的数据库有Cassandra、HBase、Riak等。③文档模型。在数据结构上,文档型和键值型很相似,也是一个key对应一个value,但是这个Value主要以JSON或者XML等格式的文档来进行存储,是有语义的,并且文档数据库一般可以对Value来创建Secondary Index来方便上层的应用,而这点是普通键值数据库所无法支持的。这种数据模型的优点是对数据结构要求不严格,缺点是对查询性能不高,而且缺乏统一的查询语法。运用此类模型的数据库有MongoDB、CouchDB等。④图形模型。图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。其数据模型为图结构,其优点是可以很方便地利用图的相关算法,缺点是需要对整个图做计算才能得出结果,不容易做分布式的集群方案。运用此类模型的数据库有Neo4J、InfoGrid、Infinite Graph等。数据模型有着各自的优缺点,它们适用于不同的领域。不管选择关系模型,还是非关系模型,都要根据实际应用的场景做出选择。有时候单一的数据模型并不能满足我们的需求,对于许多大型的应用可能需要集成多种数据模型。

2 NoSQL数据库的优劣势分析

2.1 NoSQL数据库的优点:①易扩展。NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。②大数据量,高性能。NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。③高可用。NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用。④灵活的数据模型。NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的web2.0时代尤其明显。

上一篇:独立学院创新人才培养模式研究 下一篇:通信工程项目网络计划的应用研究