hbase是怎样删除和修改数据的,和oracle这类传统的rdbms有什么区别

2024-12-25 18:37:49
推荐回答(2个)
回答1:

简单来说,传统关系型数据库的修改与删除,可以快速通过主键、列或索引直接锁定到某一行或某些行,进行物理删除。
而对于Hbase来说,受到hdfs文件系统的局限(hdfs文件系统不能修改,添加也很不方便),进行CRUD的操作就会变得相对复杂。
Hbase的修改,是根据某个行键添加一行数据,并未这行数据生成一个较新的时间戳来实现,每个行键都会对应多个时间戳的数据,那么最新的时间戳就是最终修改后的内容。
而删除则是通过标记来实现,如果要删除某行记录,Hbase会添加一个带有删除标记的行,通过这个删除标记来辨认该行建的数据是否删除。
Hbase与关系型数据库的区别:
1、场景
Hbase是面向列的数据库,适合大量的插入的同时又要具备不俗的读功能,而Oracle或其他关系型数据库适合处理比较复杂的业务关系或事务处理,而且,在数据在一定量级下都会有良好的表现,并不是所有业务的数据压力都会发生比较极端的情况。
2、索引
Hbase只能做主键索引,而关系型数据库可以根据需求不同加入适合的索引机制,供用户查询。
3、瓶颈
Hbase的瓶颈是硬盘的传输速度,Oracle的瓶颈是硬盘的寻道时间(可以看做是硬盘的转数)。
4、业务
Hbase适合按照时间排序的业务,而Oracle或其他关系型数据库应用比较广泛,如OLTP或OLAP

回答2:

hadoop的hdfs支持海量数据量存储 mapreduce支持对海量数据的分布式处理
oracle虽然可以搭建集群 但是当数据量达到一定限度之后查询处理速度会变得很慢 且对机器性能要求很高
其实这两个东西不是同类 hadoop是一个分布式云处理架构,倾向于数据计算 而oracle是一个关系型数据库,倾向于数据存储。要说比较可以比较hbase与oracle。
hbase是一种nosql数据库,列式数据库,支持海量数据存储,支持列的扩展,但是查询操作较复杂,不如oracle这类关系型数据库简单,且只支持一个索引,但是Hbase在表结构设置合理情况下,查询速度跟数据量大小没有太大关系,即数据量的大小不会影响到查询速度,顺便说句Hbase查询速度可以达到ms级