微软Azure中的NoSQL数据服务及应用实践
1. NoSQL与关系型模型的可扩展性差异
在数据库选择中,可扩展性是一个关键因素。NoSQL和关系型模型在垂直扩展方面都较为容易,可通过增加服务器资源来实现。但在分布式系统中,这只是解决方案的一部分。NoSQL系统通常更易于通过创建多机集群进行水平扩展。所以,数据库管理软件的选择在很大程度上取决于具体场景和数据性质,目前并没有通用的方法能精确指导何时使用何种系统。
2. 微软Azure中的NoSQL技术概述
数据存储技术可分为使用SQL的关系型和非关系型。以下是微软Azure支持的NoSQL技术选项:
- 面向文档的存储 :面向文档的数据库是主要的NoSQL数据库类型之一,用于存储大量半结构化数据(如JSON对象)。不同实现的功能和格式差异较大。例如,需要处理的扫描文档数据就可使用此类存储。微软的DocumentDB服务就集成在Azure中。
- 键值存储 :键值数据库以关联数组作为基本数据模型,数据以键值对集合的形式存储。这是最简单的数据模型之一,常作为更丰富模型的基础。像Riak、Cassandra和微软Azure存储表都属于此类。
- 列存储 :列数据库按特定键的列段存储数据(而非按行存储)。列存储具有高性能和高度可扩展的架构,非常适合大规模计算。微软Azure支持的Hbase就是一个例子。
- 图存储 :图存储基于节点和边来表示数据关系和进行数据存储。微软Azure支持的Neo4j就是一个实例。