首页 理论教育 NoSQL数据库的实例应用

NoSQL数据库的实例应用

时间:2023-06-24 理论教育 版权反馈
【摘要】:和关系型数据库中行对应固定的列集合不同,BigTable的行对应一组列族。它底层由Hadoop和HDFS组成。图2-4HBase体系架构和HBase相同,用户首先连接到一个特殊的服务器ZooKeeper,它维持了元数据。 MongoDB: MongoDB 是文档型数据库。MongoDB提供了一系列操作命令用于创建数据库、创建集合、将文档插入集合、查询集合。图2-5一个文档的例子MongoDB还支持对字段建立索引以快速查询。HBase和其他NoSQL数据库对这类分析有更好的表现。

NoSQL数据库的实例应用

(1) BigTable: BigTable是谷歌研发的[5] 。 Accumulo、 Hbase都遵从了BIgTable的设计。BigTable更多地关注于可伸缩性而不是事务处理

BigTable中的每一行都有一个单独的键值。行按照相应的键值排序(因此通过键值找到对应的行非常高效)。和关系型数据库中行对应固定的列集合不同,BigTable的行对应一组列族。例如,在网页的BigTable中,一个列族可以是“anchor”。每一个列族可以有任意数量的列,每一列包含多个数据版本,每个版本都有一个相应的时间戳和数据值。例如,带时间戳的列“anchor: sina”存储了在那个时间“anchor: sina”的值。列只用当插入时才会存在。列族中的列排序后存储在一起

BigTable以分布式方式存储。列族存储在SSTable中,SSTable是最小的存储单位,它提供索引以快速查询。SSTable组成了tablet, tablet组成一张表。

(2) HBase: Hbase(http://hbase.apache.org/)是Apache的项目,和BigTable非常类似。图2-4展示了HBase的结构。它底层由Hadoop和HDFS组成。HBase的表和BigTable有类似的形式,每一行都有一个单独的键值。行按键值划分,同一范围内的行组成一个区(region)。区由区服务器进行存储和管理,区服务器由主服务器控制。主服务器负责监控区服务器以及负载平衡

图2-4 HBase体系架构

和HBase相同,用户首先连接到一个特殊的服务器ZooKeeper,它维持了元数据(数据库的模式以及区服务器列表)。然后用户将数据请求(读或写)发送给其中一个区服务器。区服务器会响应这些请求。ZooKeeper同时维护集群的状态,例如,找出哪个服务器可用或者哪个服务器失效了。(www.xing528.com)

(3) Accumulo: Accumulo(https://accumulo.apache.org/)是Apache基于BigTable的一个开源项目。它和HBase类似,不过具有一些特性:可伸缩性更好(上千节点);具有单元级别的访问控制,对安全性和隐私保护更好;允许服务器端对数据进行查询或更改(BigTable只允许对数据简单的搜索,更复杂的计算必须在用户端完成)。

(4) MongoDB: MongoDB (https://www.mongodb.org/)是文档型数据库。文档以二进制JSON格式(Java Script对象格式)存储。模式信息和数据一起存储。图2-5展示了MongoDB存储文档的一个例子。

MongoDB提供了一系列操作命令用于创建数据库、创建集合(和创建表相似)、将文档插入集合、查询集合。以下例子展示了如何对图2-5所示的文档进行查询并找到“title”为“MongoDB Overview”、“ by”为“tutorial point”的文档。

图2-5 一个文档的例子

MongoDB还支持对字段建立索引以快速查询。它支持MapReduce但并不一定要接入Hadoop(可以在Hadoop上运行,也可以单机运行)。和HBase相比,MongoDB更适合于存储和搜索大规模文档。然而,对于运行复杂的查询它并不是一个好的选择。HBase和其他NoSQL数据库对这类分析有更好的表现。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈