1. 程式人生 > >資料庫與Key-value之間的類比

資料庫與Key-value之間的類比

  記得老師課上講過,結構化的資料的最大優點是可以將其看成一張二維表,而我們現在一般所接觸到的用來處理結構化資料的資料庫,都是由一張張二維表組成的。

  

    RDBMS: 二維表
    public String getValue(int id, Sring column);

    hbase:四維表(其本質上可以看做二維表的每個value值裡又儲存了一個二維表,型別與多維陣列類似,也可百度搜索,小白鼠和毒藥的題便於理解)
    public String getValue(String rowkey, String columnFamily, String column, long timestamp);

假設,我們現在,把這一張普通二維表的行值和列值當做Key值,將其對應的每個座標點的值當做value值,那麼整個張表是不是可以抽象成一個個的鍵值對的形式。

    Mysql:

        Key: id+ column

        Value:value

    hbase:

        Key:rowkey+cf+column+ts

        Value:value

  其實所有的資料庫,都可以看做是Key-value的形式,查詢資料,就是根據Key值找value值。

 

  在此基礎上,我們把Key值和Value值封裝成一個物件    

    HashMap:
        String Key
        Object Value

    BigTable:
        Object key
             針對二維表:key = Object(id, column)
             針對四維表:key = Object(id, cf, column, ts)
        Obejct value

  所以對於高維表也可以看成key-value的形式。