我需要编写一个MapReduce Job来获取给定Date Range中的所有行(比如说最后一个月).如果My Row Key以Date开头,那将是一场轻松的尝试.但我频繁的Hbase查询是关键的起始值.
我行重点正是A | B | C | 20120121 | d.A/B/C与日期(以YearMonthDay格式)的组合形成唯一的行ID.
我的Hbase表可能有几百万行.我的Mapper是否应该读取所有表格并过滤掉每一行,如果它落在给定的日期范围内,或者扫描/过滤器可以帮助处理这种情况?
有人可以建议(或代码片段)以有效的方式处理这种情况吗?
谢谢-Panks
obh*_*obh 10
带有RegEx过滤器的RowFilter可以工作,但不是最佳解决方案.或者,您可以尝试使用二级索引.
另一个解决方案是尝试FuzzyRowFIlter.FuzzyRowFilter使用一种快进,因此在整个扫描过程中跳过许多行,因此比RowFilter Scan更快.你可以在这里阅读更多相关信息.
或者,BloomFilters也可能会有所帮助,具体取决于您的架构.如果您的数据很大,您应该对二级索引和布隆过滤器进行比较分析.