我一直在使用CouchDB一段时间,而且我正在考虑在HBase/Hadoop中做一个小的学术项目。我读了一些关于它们的材料,但是找不到一个好的答案:使用Hadoop和HBase增量MapReduce
在Hadoop/HBase和CouchDB中都使用MapReduce作为它们的主要查询方法。但是,有一个显着的不同:CouchDB通过使用视图增量化地实现了这一点,索引每个添加到数据库的新数据,而Hadoop(从我看到的所有示例中)通常用于对整个数据集执行完整查询。我所缺少的是能够使用Hadoop MapReduce来构建并主要维护索引,如CouchDB的视图。我看到了一些关于如何使用MapReduce创建初始索引的例子,但没有提到增量更新。
我认为这里的主要挑战是只对自给定时间戳(上次索引作业的时间)以来更改的行运行索引作业。这将使这些工作运行很短的时间,使他们能够频繁运行,保持索引相对最新。
我预计这种使用模式非常普遍,并且很惊讶没有看到任何有关它的信息。我已经看到了IndexedHbase和HbaseIndexed,它们都提供了基于非关键行的HBase的二级索引。这是不是我需要什么。我需要编程能力根据一行或多行的内容任意定义索引。
我知道使用TS作为rowkey将允许我查询新创建的行,但是如何查询最近修改的行? –
使用TimestampsFilter。 – Tariq