HBase是一種基于列的分布式數(shù)據(jù)庫,這種數(shù)據(jù)庫存儲方式為列族式,列族是一個存儲列的容器,而每個列是已排序的鍵值對的集合。這種方式對于存儲非常大的的數(shù)據(jù),尤其是非結(jié)構(gòu)化或半結(jié)構(gòu)化的數(shù)據(jù)非常有優(yōu)勢,其使用場景非常廣泛。
現(xiàn)在,隨著NoSQL數(shù)據(jù)庫越來越流行,更多的人在使用JSON來存儲數(shù)據(jù)。JSON是JavaScript對象表示法的縮寫,是一種輕量級的數(shù)據(jù)交換格式。在HBase中存儲JSON格式數(shù)據(jù)非常方便,僅需要將其存儲為字符串類型即可。
String json = "{ \"name\":\"Apple\", \"color\":\"Red\", \"price\":\"$0.99\" }";
Put put = new Put(Bytes.toBytes("row1"));
put.add(Bytes.toBytes("cf1"), Bytes.toBytes("json_col"), Bytes.toBytes(json));
table.put(put);
如上所示,我們可以將JSON格式的數(shù)據(jù)字符串存儲為一個HBase表中的單元格。其中,row1是行的標識符,cf1是列族的名稱,json_col是列名稱,json是JSON格式的數(shù)據(jù)內(nèi)容。
當我們需要讀取這個JSON格式的數(shù)據(jù)時,可以使用以下代碼:
Get get = new Get(Bytes.toBytes("row1"));
Result result = table.get(get);
byte[] jsonBytes = result.getValue(Bytes.toBytes("cf1"), Bytes.toBytes("json_col"));
String json = new String(jsonBytes);
以上代碼將會從HBase表中獲取JSON格式的數(shù)據(jù)內(nèi)容。這樣我們就可以方便地在HBase中存儲和讀取JSON格式的數(shù)據(jù)。
上一篇html 字體 隸書代碼
下一篇mysql入侵分析