在HBase中,当我在列中存储值或使用值本身作为列名时,在性能或任何其他方面是否存在差异?
例如:
<table>:<Column-Family>:<Column-Name>=<value>
vs
<table>:<Column-Family>:<Column-Name>:<value>=1在什么场景下推荐使用什么?
发布于 2014-09-22 17:39:22
这取决于数据以及您需要从其中提取什么!如果您有一个数据库,其中包含设备及其相关传感器的列表,如下所示:
ID -标签-传感器
1- K200 - 1,2
2- K300 - 1,2,3
ID - LABEL - SENSOR_1 - SENSOR_2 - SENSOR_3
1- K200 -1-1-0
2- K300 -1-1-1
在我看来,第一种设计更好,你不必像第二种设计那样存储0,但这取决于你需要提取什么信息。如果您只想检查哪个设备集成了类型1的传感器,则第二种设计更好,因为您将在每行上读取一列,而使用第一种设计,您必须处理数据……但如果你只是问每种设备都有哪种类型的传感器,第一种设计更好……试着列出你需要从你的数据中知道的东西,然后你可以根据这个来考虑设计!
发布于 2014-09-23 12:33:12
它取决于表格的设计和必要性,比较通用
<table>:<Column-Family>:<Column-Name>=<value>
更常用于一般用途的存储,但在某些情况下使用<table>:<Column-Family>:<Column-Name>:<value>=1
可以更适合这样的场景:
要使一个列具有多个值,需要将值与列名一起进行筛选,避免serialization
有更多的案例可以从后面的设计中获益,但它又一次回到了您需要的地方
https://stackoverflow.com/questions/25968243
复制相似问题