我们可以从HBase表中获取所有列名吗?

Bhu*_*han 5 hadoop hbase

建立:

我有一个HBase表,有100M +行和1百万+列.每行只有2到5列的数据.只有1个列系列.

问题:

我想找出所有不同的qualifiers(列)column family.有快速的方法吗?

我可以考虑扫描整个表格,然后获取familyMap每一行,获取qualifier并添加到一个Set<>.但这将非常缓慢,因为有100M +行.

我们可以做得更好吗?

Man*_*ath 2

HBase 可以被视为分布式NavigableMap<byte[], NavigableMap<byte[], NavigableMap<byte[], NavigableMap<Long, byte[]>>>>

关于所有区域服务器中可用的所有限定符列表,没有“元数据”(例如集中存储在主节点中的数据)

因此,如果您有一次性用例,那么唯一的方法是扫描整个表并在 a 中添加限定符名称Set<>,就像您提到的那样。

如果这是一个重复用例(加上如果您可以自行决定将组件添加到技术堆栈中),您可能需要考虑添加 Redis。可以使用Redis Set以分布式方式维护限定符集。