2017-05-01 35 views
0

假設我們有一個Bigtable的結構如下: 表1:CF1 [「COL1」,「COL2」],CF 2 [「COLX」,「科利」]柱查找和更新中的Bigtable

從HBase的查詢客戶端API:

Get getT = new Get(Bytes.toBytes(rowKey)); 
getT.addColumn(byteArray_cf1, byteArray_col1); 
Result rt = table.get(getT); 

當返回所需的查詢結果時,檢索是否有效地查找特定的cf和列?假設每個列值col1,col2,colX和colY的大小都是10 MB,則上面的查詢是否足夠有效,只需查找col1的值並返回查詢結果?

此外,當調用Put來更新列值時,整個行是由bigtable重寫的嗎?還是隻是更新的列值?

Put putT = new Put(Bytes.toBytes(rowKey)); 
putT.addColumn(byteArray_cf1, byteArray_col1, Bytes.toBytes("updatedData")); 
table.put(putT) 

回答

0

返回所需的查詢結果時是檢索效率,尋找特定的CF和列?

是的。

假設每個列值col1,col2,colX和colY的大小都是10 MB,那麼上面的查詢是否足夠有效,只需查找col1的值並返回查詢結果呢?

只有(列族,限定符)中所請求的數據返回給調用者。

此外,當調用Put來更新列值時,整個行是否被bigtable重寫?還是隻是更新的列值?

只更新指定的列值,而不更新整行。