hbase create table 是轻量级的吗?
Is hbase create table is lightweight?
我想重新设计一个存在 table,它包含两列 uuid
和 consumerId
。在这个阶段,不同的uuid有50个数量,每个uuid超过100k的consumerId。
那么,创建50个table并用uuid命名,比如consumerId_{uuid001}
,来避免uuid
列造成的冗余是否合理?
首先,您需要考虑如何使用此数据库的用例。
您是否需要为特定 consumerId
查找所有 uuid
?
根据您提出的设计,这意味着您需要查询 50 个不同的表,然后合并结果,这根本不是一件容易的事。
我会选择以下选项之一:
- 保持原样 - 这是最灵活的方式,您可以很容易地通过
consumerId
查询所有 uuid
,反之亦然。我看不出有额外的 100k 整数有什么问题,它只有几千字节。
- 修改结构,使
consumerId
存储在每个 uuid
的列表中。伪代码:table(uuid: String, consumerId: List<String>)
这肯定是紧凑的表示,但您可能很难构建某种类型的查询(其中 consumerId
是参数之一)。
我想重新设计一个存在 table,它包含两列 uuid
和 consumerId
。在这个阶段,不同的uuid有50个数量,每个uuid超过100k的consumerId。
那么,创建50个table并用uuid命名,比如consumerId_{uuid001}
,来避免uuid
列造成的冗余是否合理?
首先,您需要考虑如何使用此数据库的用例。
您是否需要为特定 consumerId
查找所有 uuid
?
根据您提出的设计,这意味着您需要查询 50 个不同的表,然后合并结果,这根本不是一件容易的事。
我会选择以下选项之一:
- 保持原样 - 这是最灵活的方式,您可以很容易地通过
consumerId
查询所有uuid
,反之亦然。我看不出有额外的 100k 整数有什么问题,它只有几千字节。 - 修改结构,使
consumerId
存储在每个uuid
的列表中。伪代码:table(uuid: String, consumerId: List<String>)
这肯定是紧凑的表示,但您可能很难构建某种类型的查询(其中consumerId
是参数之一)。