gpt4 book ai didi

java - 使用 Java 查找唯一的 Hbase 前缀键

转载 作者:太空宇宙 更新时间:2023-11-04 09:30:17 25 4
gpt4 key购买 nike

我正在使用 Java 查询 hbase 表,其键如下所示:

a.1
b.1
b.2
c.1
c.2

我想搜索以 a 或 b 开头的任何内容,并且只想返回前缀的唯一值。所以我的 api 将返回一个列表:[a, b],而不是 [a,b,b]

到目前为止我的方法是

  1. ac之间创建扫描

  2. 迭代每个结果,对 进行拆分。

  3. 使用Set来确保我没有任何重复项

  4. Set作为List返回

这工作正常,除了这种情况:

a.1
b.1
b.2
...
b.10000000
c.1

在这种情况下,我有太多的键需要迭代,我不关心这些,因为我已经有一个b。我的应用程序在完成之前就超时了。

我的问题是,是否有一个过滤器可以在我的扫描中应用以仅获取一系列前缀的唯一值?我可以告诉 Hbase 跳到下一场比赛而不必创建新的扫描吗?我不想创建一个仅包含我要查找的值的新表,因为应用程序的另一部分正在使用整个 key ,因此这两个方面都很有值(value)。

最佳答案

看看 HBase 的 MultiRowRangeFilter。我认为对于您的情况,您可以尝试传递 RowRange 元素的集合,每个元素都可以以足够的粒度限制开始和停止行条件以适合您的用例。

https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html

我还没有充分使用它来评论性能,但考虑到您已经有可以比较的东西,它值得一试。

关于java - 使用 Java 查找唯一的 Hbase 前缀键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57157225/

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