使用HBase Java API时,我有一行代码如下:
byte[] value = scanner.next().getValue(Bytes.toBytes(family), Bytes.toBytes(qualifier));
Run Code Online (Sandbox Code Playgroud)
假设我不知道它是否为此值的Int或String类型,我应该在它之间使用Byte.toInt(value)和Byte.toString(value)正确打印值?
这不是一个真正的HBase/Hadoop问题,而是一个Java问题,但我用Google搜索并找不到获取它的方法.有可能知道吗?
另一方面,从HBase Java API,我如何知道存在于系列中的给定值的数据类型:限定符?
谢谢!
小智 6
与传统的RDBMS不同,HBase不支持"类型列",其中数据存储跟踪存储的数据类型.HBase本身并没有跟踪 - 因此无法本地告知 - 存储在列中的数据类型.使用HBase的开发人员负责自己跟踪列数据类型.
对于许多应用程序,应用程序可以"硬编码"每列的类型.通过这种方式,HBase表往往比RDBMS表更具应用程序特性.开发人员还可以创建专用于该行的数据类型架构的列族或列(例如,序列化为字符串的Avro架构).
HBase文档的"架构"页面在这里解释了HBase与传统RDBMS之间的差异:
https://hbase.apache.org/book/architecture.html#arch.overview.when
| 归档时间: |
|
| 查看次数: |
4136 次 |
| 最近记录: |