gpt4 book ai didi

hadoop - 我可以在 HBase 的 rowkey 上使用 SingleColumnValueFilter 吗?

转载 作者:可可西里 更新时间:2023-11-01 16:24:48 25 4
gpt4 key购买 nike

HBase 版本:1.2.2 (服务器和 Java API)

public SingleColumnValueFilter(byte[] family,
byte[] qualifier,
CompareFilter.CompareOp compareOp,
ByteArrayComparable comparator)

我正在使用 org.apache.hadoop.hbase.filter.RegexStringComparator 对 rowkey 执行 LIKE 查询。

它可以很好地处理列。

但如果我使用行键而不是列,它会为我提供所有记录。

最佳答案

ColumnValue Filters and RowFilters are different.

Value Fileters operates on Column values(possibility of full table scan) where as RowFilters work on rowkey.


单列值过滤器:

此过滤器采用列族、限定符、比较运算符和比较器。如果未找到指定的列——将发出该行的所有列。如果找到该列并且与比较器的比较返回 true,则将发出该行的所有列。如果条件失败,则不会发出该行。

此过滤器还采用两个额外的可选 bool 参数——filterIfColumnMissing 和 setLatestVersionOnly

如果 filterIfColumnMissing 标志设置为 true 如果在行中找不到要检查的指定列,则不会发出该行的列。默认值为 false

如果 setLatestVersionOnly 标志设置为 false,它也会测试以前的版本(时间戳)。默认值为真。

这些标志是可选的,如果您必须不设置或两者都设置。

语法

SingleColumnValueFilter('','', , '', , )

    SingleColumnValueFilter(‘<family>’, ‘<qualifier>, <compare operator>, ‘<comparator>’)

示例:

hbase(main):020:0> scan 'airline' ,{ FILTER => "SingleColumnValueFilter('flightbetween','source',=, 'binary:Delhi')" }

如果要对rowkey进行“LIKE”查询

你可以使用 Prefix filter/FuzzyRowFilter(更高级)

前缀过滤器:此过滤器将一个参数作为行键的前缀。它仅返回以指定行前缀开头的行中存在的那些键值

关于hadoop - 我可以在 HBase 的 rowkey 上使用 SingleColumnValueFilter 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40882758/

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