当我使用HBase时,我花了很多时间将字节数组转换为String或Long等类型.为什么HBase将值存储为字节数组而不是类型值?
Tar*_*riq 11
我不认为"Hbase将所有内容存储为byte [],因为BigTable"实际上是一个令人满意的答案.我的2美分:
它允许我们毫不费力地存储任何类型的数据.例如,假设您必须将产品相关数据存储到您的hbase表中,例如ID,品牌,国家/地区,价格等.要存储这些参数中的每一个,您必须提前处理每个参数的各个数据类型.这肯定会增加一些开销.与RDBMS不同,hbase在创建表时不会要求所有这些.因此,即使这些参数的数据类型明天发生变化,或者您决定添加一些参数(使用一些新的数据类型),您所要做的就是将值包装在Bytes.ToBytes()中并将其推送到表中.所有这些使得插入更快.
此外,与以原始格式存储相同值相比,有时以序列化byte []形式存储值可节省几个字节.当你处理BigData时,这种轻微的节省变得非常重要.
简而言之,Hbase这样做可以提高速度,提高存储效率,将内部数据结构的开销降至最低.
| 归档时间: |
|
| 查看次数: |
4011 次 |
| 最近记录: |