gpt4 book ai didi

具有大量动态生成的列限定符(列族内)的 HBase 性能

转载 作者:行者123 更新时间:2023-12-01 07:18:02 25 4
gpt4 key购买 nike

我有一个包含 1 个名为“A”的列族的表。在运行时,我会将 (Key-Value) 对插入表中。离开 RowKey,在我的设计中,列限定符是 MD5(Key) 因此,列限定符是动态创建的单元格将包含相应的值。

例如:每辆车都有一个车牌。我想将所有内容插入到 HBase 中的一个表中。汽车 A 有 rowkey R1,column qualifier 是 C1,value 是 A 的车牌。汽车 B 有 rowkey R2, , column qualifier 为 C2,value 为 A 的车牌,反之亦然。使用架构,当执行 Scan 命令时,rowkey = R1,单元格包含在 column qualifier C2 返回(在这种情况下,它是明确为空)?

我想问一些关于性能的问题:

  1. 采用这种架构设计,Scan 命令的性能是否会下降? (我想扫描表上的所有值)。对于每一行,是否将返回所有列?

  2. 根据上述要求,谁能指出我设计这张表的正确方法?

非常感谢!

最佳答案

不会,scan的性能不会下降,这就是HBASE的美妙之处。

我处理过类似的结构和庞大的数据集,检索速度快得惊人。

我认为对于处理这种情况,不同的 filters在 HBASE 中会有很大帮助。

您还可以引用 HBASE:Defenitive guide. 中的 HBASE 过滤器HBASE 中一个很好的过滤器是前缀过滤器。如果你在 JAVA 中工作,它看起来有点像这样,

Scan s = new Scan();
Filter filter = new PrefixFilter(Bytes.toBytes("car_"+i));
s.setFilter(filter);

这里不同汽车的行键可以是“car_[licence number OR car number]”。这样即使你想从数十万行中只提取一行,这也可以在几秒钟内完成。

关于具有大量动态生成的列限定符(列族内)的 HBase 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20991317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com