【问题标题】:Does hbase support double rows id filtering?hbase 是否支持双行 id 过滤?
【发布时间】:2015-06-19 12:41:40
【问题描述】:

假设我已经按照以下格式设计了 hbase 行 id(- 用作分隔符,_ 代替空格):

timestamp-event_type-user_id

所以现在我想为用户选择事件序列。例如,我需要选择事件类型而不是按以下顺序进行:4、8、1、10。 很明显,我应该创建RowFilterRegexStringComparator。 但在那种情况下,我选择了一组行,因此需要提取它们并按时间戳排序以确定事件顺序。 hbase 中是否有一种方法可以两次应用行过滤器?例如。第一个选择行,第二个在选定的组中执行选择?

注意

hbase 的使用可能看起来不正确,但主要思想是 row key 存储在 Hbase 缓存中,因此对 row key 的双重过滤应该非常快。 hbase 是否提供类似的东西?

【问题讨论】:

    标签: java scala hbase


    【解决方案1】:

    你看过FilterList吗?

    它可能需要多个过滤器并按条件加入它们。例如:MUST_PASS_ALL (AND) 或 MUST_PASS_ONE (OR)。

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      您可以参考此代码:

      FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL);
      
      filterList.addFilter(new RowFilter(...));
      
      filterList.addFilter(new RowFilter(...));
      
      Scan s = new Scan();
      s.setFilter(filterList);
      

      您可以在http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/filter/FilterList.html找到更多信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        • 2014-06-06
        • 1970-01-01
        • 2017-10-19
        • 1970-01-01
        • 2021-11-01
        • 2013-04-12
        相关资源
        最近更新 更多