Hbase是否以十六进制格式存储数据?

Hbase是否以十六进制格式存储数据?,hbase,Hbase,我是Hbase dbms的新手。 在尝试hbase的命令行shell时,我发现我可以读取rowkey、col-family和col-qualifier,因为它们是以字符串形式打印出来的,但值是以十六进制格式打印的(或类似的格式)。 这背后的确切概念是什么 hbase(main):045:0* scan 'testtable' ROW COLUMN+CELL

我是Hbase dbms的新手。 在尝试hbase的命令行shell时,我发现我可以读取rowkey、col-family和col-qualifier,因为它们是以字符串形式打印出来的,但值是以十六进制格式打印的(或类似的格式)。 这背后的确切概念是什么

hbase(main):045:0* scan 'testtable'
ROW                                    COLUMN+CELL                                                                                                     
 19992                                 column=info:ismember, timestamp=1366957536788, value=\x00

否..Hbase将所有内容存储为“字节数组”。通过这样做,它允许我们存储任何类型的数据,而无需太多麻烦。例如,假设您必须将与产品相关的数据存储到hbase表中,例如ID、make、country、price等。要存储每个参数,您必须提前处理每个参数的各个数据类型,这肯定会增加一些开销。与RDBMS不同,hbase在创建表时并不要求所有这些。因此,即使这些参数的数据类型明天更改,或者您决定添加一些参数(使用一些新的数据类型),您所要做的就是将值包装为Bytes.ToBytes()并将其推送到表中。所有这些都使插入更快

此外,有时以序列化的byte[]形式存储值会比以本地格式存储相同的值节省一些字节。当您处理大数据时,这种小的节省变得非常重要

因此,这背后的概念是Hbase将所有内容存储为字节[],以加快速度并提高存储效率,将内部数据结构的开销保持在最低限度


希望这能回答你的问题。

好的。谢谢你的回答,但这仍然是我最初的问题。。如何从hbase外壳解释字节数组。从Java API中,我可以检索数据并查看其是否按预期正确存储。。但是命令行呢?o/p中都是十六进制字符。请在此提供帮助。您使用的是哪个版本?您可能会发现这个JIRA很有用:…我使用的是0.94.6.1版本。Tariq。。你能帮忙吗?JIRA link与我的问题不同。我很抱歉Vimal的回复太晚。我被一些重要的事情缠住了。你需要这样的东西吗: