hbase最大的不同
1, 没有索引,没有查询语句,所有的访问都是通过id的
id中会有很多查询逻辑,需要重点考虑
2, 用名值对来存放数据(行健,列族,列修饰符,时间,值)
没有列的概念,随性的定义列名,列名甚至能作为数据来存储
3, 反规范化,用冗余的数据来避免join查找,增加读的性能, 但写入时需要更新多个副本
传统数据的是规范化的,方便写,重复的信息会放在独立的表中。
4, 数据存放的不是文本,而是byte数组,需要用UTF-8来转义
-----hbase 特点-----
1, 宽表 高表
当用户关注某些人的时候可以用宽表设计
column qualifier是数字 value是被关注人
| follows |
TheFakeMT | 1:RealMT | 2:MTFanBoy | 3:Olivia | 4:HRogers |
如果要添加一个被关注人,需要当前的qualifier,必须在某个地方维护
| follows |
TheFakeMT | 1:RealMT | 2:MTFanBoy | 3:Olivia | 4:HRogers | count:4 |
计算的逻辑会让客户端很复杂
将被关注人放在qualifier中, value随便给
| follows |
TheFakeMT | RealMT:1 | MTFanBoy:1 | Olivia:1 | HRogers:1 |
但是无法得到计数
高表
| f |
MD5(TheFakeMT)+MD5(RealMT) | from:TheFakeMT | to:RealMT |
MD5(TheFakeMT)+MD5(MTFanBoy) | from:TheFakeMT | to:MTFanBoy |
MD5(TheFakeMT)+MD5(Olivia) | from:TheFakeMT | to:Olivia |
MD5(TheFakeMT)+MD5(HRogers) | from:TheFakeMT | to:HRogers |
副作用 如果用户更新了他们的用户名,必须在本表中更新所有的名字,典型的反规范化处理。
所以微信中不允许修改用户名
question 为什么不能在一个qualifier中存放所有的被关注人,用特殊符合分割?
-- 如果增加一个被关注人的话需要将原来的被关注人重新update下。
2, 协处理器
observer 类似于 trigger
endpoint 类似于 存储过程 -- 在聚合中会使用到
分享到:
相关推荐
通过专家悠你123的介绍,我们可以看到HBase不仅在传统数据库难以应对的时序数据场景中展现出了强大的能力,还在成本、性能和可扩展性方面具有显著优势。HiTSDB等时序数据库的优化方案进一步证明了HBase在特定领域的...
在说HBase之前,我想再唠叨几句。做互联网应用的哥们儿应该都清楚,互联网应用这东西,你没办法预测你的系统什么时候会被多少人访问,你面临的用户到底有多少,说不定今天你的用户还少,明天系统用户就变多了,结果...
这表明MyHBase作为一种新型数据库存储引擎,具备了与传统数据库竞争的实力,尤其是在处理大数据和需要高度扩展性的应用场景中。 本文中提到的关键技术,如列式存储、缓存配置、查询优化、以及与MySQL的集成,共同...
4. HRegion:由多个HStore组成,是HBase分布式存储和负载均衡的最小单位,相当于传统数据库中的表分区。 5. Hlog(WAL,Write-Ahead Log):HBase使用日志文件来保证数据的持久性和一致性,日志在发生故障时提供...
2. **列导向**:与传统的关系型数据库不同,HBase以列族为单位存储数据,这使得数据读取更加高效,尤其适合大数据分析场景。 3. **实时读写**:HBase支持实时的数据读写操作,适合在线服务和大数据实时处理。 4. **...
1. 数据类型多样:互联网上的数据类型多样,包括结构化和半结构化的数据,而传统数据库往往无法高效处理这些数据类型。 2. 数据规模庞大:不论是数据量还是用户数量,互联网应用产生的数据规模极其庞大,传统数据库...
HBase采用列存储模型,与传统的关系型数据库按行存储不同,列存储可以更有效地处理大量数据的读写操作,尤其在处理具有大量列的数据集时,性能表现更佳。 GeoHash是一种地理空间数据的编码方法,它可以将地理坐标...
HBase借鉴了Google BigTable的设计理念,旨在解决传统关系型数据库在处理大规模数据时所遇到的问题,尤其适合存储非结构化或半结构化的数据。 - **面向列的存储**:HBase采用了面向列的存储模型,这使得它可以高效...
首先,本文分析了当前医疗卫生信息数据中心的规模及需求,通过对比传统关系数据库与NoSQL数据库之间的差异,着重指出了NoSQL数据库(尤其是HBase)在构建医疗卫生信息数据中心方面的适用性。由于NoSQL数据库能够更好...
HBase是一款基于Google Bigtable设计理念的开源分布式数据库,由Apache Hadoop项目开发,主要用于处理大规模数据。它是NoSQL数据库的一种,特别适合存储结构化和半结构化的松散数据。HBase构建在Hadoop的分布式文件...
HBase 和传统关系数据库不同,它采用了 BigTable 的数据模型增强的稀疏排序映射表(Key/Value ),其中,键由行关键字、列关键字和时间戳构成。 HBase 提供了对大规模数据的随机、实时读写访问。HBase 的目标是存储...
HBase的列是由列族和列族限定符构成的,这与关系型数据库的列概念有所区别,更加适合分布式存储和处理。数据的组织方式使得它能够存储大量数据,同时支持列式存储和数据的多版本管理。 HBase的体系结构设计使其具备...
HBase作为分布式数据库的核心概念和知识点可以详细阐述如下: 1. 分布式存储系统BigTable的概念...它在大数据生态体系中的地位及对传统数据库的补充和扩展,使得它成为当前大数据存储和实时处理领域中的一个重要工具。
与传统的关系型数据库类似,HBase 也以表的形式组织数据,表也由行和列组成;不同的是,HBase 有列族的概念,它将一列或者多列组织在一起,HBase 的每一个列都必须属于某个列族。 HBase 是一个可以进行随机访问的...
- 数据存储:Hive的数据存储在HDFS中,而传统数据库如MySQL可以存储在本地文件系统或块设备上,数据存储更灵活。 - 数据格式:Hive允许用户自定义数据格式,无需转换即可加载,而数据库有自己的存储格式。 - 数据...
与传统的关系型数据库类似,HBase 也以表的形式组织数据,表也由行和列组成;不同的是,HBase 有列族的概念,它将一列或者多列组织在一起,HBase 的每一个列都必须属于某个列族。 HBase 是一个可以进行随机访问的...
下面我们将详细比较HBase与RDBMS的区别与联系。 RDBMS的优点 RDBMS(Relational Database Management System)是传统的关系数据库管理系统,具有以下优点: 1. 持久性:RDBMS提供了持久性的数据存储,确保数据的...
HBase与传统关系数据库的主要区别在于: 1) 数据类型:HBase采用简单数据模型,存储未解释的字符串,而关系数据库有丰富的数据类型。 2) 数据操作:HBase操作简单,无复杂表连接,而关系数据库支持复杂的多表操作。 ...