![]()
与FUJITSU Cliq等商用大数据产品不同,HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应
Hbase可以往数据里面insert,也可以update一些数据,但update的实际上也是insert,只是插入一个新的时间戳的一行。delete数据,也是insert,只是insert一行带有delete标记的一行。Hbase的所有操作都是追加插入操作。Hbase是一种日志集。它的存储方式,像是日志文件一样。它是批量大量的往硬盘中写,通常都是以文件形式的读写。这个读写速度,取决于硬盘与机器之间的传输有多快。
Hbase中数据可以保存许多不同时间戳的版本(即同一数据可以复制许多不同的版本,准许数据冗余,也是优势)。数据按时间排序,因此Hbase特别适合寻找按照时间排序寻找Top n的场景。找出某个人最近浏览的消息,最近写的N篇博客,N种行为等等,因此Hbase在互联网应用非常多。
Hbase只有主键索引,因此在建模的时候会遇到了问题。file读写文件例如,在一张表中,很多的列我都想做某种条件的查询。但却只能在主键上建快速查询。
Hbase是列式,列式的优势在于数据分析。
Hbase中的数据都是字符串,没有其他类型。
NoSQL 和关系型的设计目的是为了解决不同的问题,NoSQL 数据模型相对简单,它适合应用灵活更强的 IT 系统,不需要预先定义表如构,而且 NoSQL 对性能要求较高,对 PB 级别的数据进行快速的检索,不需要高度的数据一致性及廷迟性的埸景,可以快的跟据 Key-Value 的方式来查看数据。在市埸上有四种NoSQL,分别是:
键值存储:Key-Value 的鐽值对,通常用 Hash Table 来实现,这类的查找速度快、简单,易部署,但数据无结构化,如果区部查找会很慢,和应用埸景是内容缓存,快速的检索数据,主要用于大量数据的高访问量负X,也适用于一些日志系统, e.g. Redis, Oracle BDB, Tokyo Cabinet;
列存储:以列族 Column Family 式存储,将同一列数据存在一起,鐽的特点是指向了多少个列,这些列是由列族来实现的,它的好处是查找快速,扩展性非常好以便应用海量数据存储和处理,但功能相对局限,对设计要求很特定的要求,非常适合分布式文件系统 e.g. HBase、Cassandra, Accumulo, Riak;
文档存储:Key-Value 对应的键值时,Value 为结构化数据,更了解 Value 的内容,数据结构不严格,表结构可变它不需要像关系型一样要预先定义表结构,可以看作他是键值的升级版,文档类型处理得力比较好,但查询能力不高,缺乏统一的查询语法。使用埸景是 Web 应用,,e.g. MongoDB, CouchDB, Couchbase Server ;
图形:图结构,它可以提用图结构的算法,比如最佳路线寻址,N度关系查找,使用灵活的图形模型并且能扩展到不同的服务器上,但很多时候要对整个图作计算才能得出需要的信息,这种结构不太适合分布式的集群方案。应用埸景:推荐系统,社交网络和关于结构关系图谱, e.g. Neo4J, Infinite Graph;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-85738-1.html
看来这个狼真的来了
我的北京美丽
我们在南海有许多的东风牌可打