【问题标题】:Does Hbase store data in Hexadecimal format?Hbase 是否以十六进制格式存储数据?
【发布时间】:2019-03-04 06:33:38
【问题描述】:

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

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

【问题讨论】:

    标签: hbase


    【解决方案1】:

    No..Hbase 将所有内容存储为“字节数组”。这样一来,我们就可以毫不费力地存储任何类型的数据。例如,假设您必须将产品相关数据存储到您的 hbase 表中,例如 ID、品牌、国家/地区、价格等。要存储这些参数中的每一个,您必须提前处理每个参数的各个数据类型这肯定会增加一些开销。与 RDBMS 不同,hbase 在创建表时不会要求所有这些。因此,即使这些参数的数据类型明天发生变化,或者您决定添加一些参数(使用一些新数据类型),您所要做的就是将值包装在 Bytes.ToBytes() 中并将其推送到您的表中。所有这些都使插入速度更快。

    此外,有时以序列化的 byte[] 形式存储值与以原生格式存储相同的值相比可以节省几个字节。当您处理 BigData 时,这种微小的节省会变得非常重要。

    因此,这背后的概念是 Hbase 将所有内容存储为 byte[] 以加快速度并提高存储效率,从而将内部数据结构的开销降至最低。

    希望这能回答你的问题。

    【讨论】:

    • 好的..感谢您的回答,但这仍然给我留下了我原来的问题..如何从 hbase shell 解释字节数组。从 Java API,我可以检索数据并查看它是否正确是否按预期存储..但是命令行呢? o/p 中的所有十六进制字符。请在此处提供帮助。
    • 您使用的是哪个版本?您可能会发现此 JIRA 很有帮助:issues.apache.org/jira/browse/HBASE-6592..
    • 我使用的是0.94.6.1版本。
    • Tariq .. 你能帮忙吗? JIRA 链接与我的问题不同。
    • 我很抱歉 Vimal 回复晚了。被一些重要的事情困住了。你需要这样的东西吗:comments.gmane.org/gmane.comp.java.hadoop.hbase.user/28346
    猜你喜欢
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-21
    • 2010-12-09
    相关资源
    最近更新 更多