Hbase VS Oracle

作者: 田真的架构人生 | 来源:发表于2017-08-16 21:14 被阅读0次

    一,索引不同造成行为的差异
    Hbase只能建立一个主键索引,而且之后的数据查询也只能基于该索引进行简单的key-value查询;
    但是Oracle可以建立任意索引,也可以按照任意列进行数据查询。

    二,Hbase适合大量插入同时又有读的情况,读一般为key-value查询
    大数据、高并发正合Hbase的胃口

    三,Hbase的瓶颈是硬盘传输速度,Oracle的瓶颈是硬盘寻道时间
    Hbase都是大量往硬盘上写数据(没有delete、update,都是insert),即使是读数据,也是优先MemStore,所以硬盘传输速度成为其瓶颈;
    而Oracle由于具有随机访问特性(select、update等),所以硬盘寻道时间成为其瓶颈,而寻道时间主要由转速决定。

    四,Hbase很适合寻找按照时间排序top n的场景
    因为Hbase的数据都具有时间戳(Hbase默认就有时间戳)

    行式存储示意图:


    Hbase VS Oracle

    行式存储:
    数据存放在数据文件内
    数据文件的基本组成单位:块/页(一行接一行存在block中,当然block不会填满,预留空间进行行的操作,譬如:update)
    块内结构:块头、数据区
    为了select橘红色的列,行式数据库会把整个block加在到内存,然后筛选出所需列。
    而对于Hbase而言,由于数据存储特性,数据以列族为单位进行存储,一个文件块存储的都是同一个列族的数据),
    这样,查询会比行式数据库优化很多。

    另外,由于在Hbase中,同一个列里面数据格式比较接近,或者长度相近,从而可以对数据进行大幅度的压缩,
    结果就是节省了硬盘空间,也减少了IO。

    相关文章

      网友评论

        本文标题:Hbase VS Oracle

        本文链接:https://www.haomeiwen.com/subject/jvswrxtx.html