2

我使用 CouchDB 已经有一段时间了,我正在考虑在 HBase / Hadoop 中做一个小的学术项目。我阅读了一些关于它们的材料,但找不到一个问题的好答案:

在 Hadoop/HBase 和 CouchDB 中,都使用 MapReduce 作为它们的主要查询方法。但是,有一个显着的区别:CouchDB 以增量方式执行此操作,使用视图,索引添加到数据库的每个新数据,而 Hadoop(从我看到的所有示例中)通常用于对整个数据集执行完整查询. 我缺少的是使用 Hadoop MapReduce 构建并主要维护索引的能力,例如 CouchDB 的视图。我看到了一些关于如何使用 MapReduce 创建初始索引的示例,但没有看到增量更新。

我相信这里的主要挑战是仅在自给定时间戳(最后一个索引作业的时间)以来更改的行上运行索引作业。这将使这些作业运行很短的时间,允许它们频繁运行,从而使索引保持相对最新。

我预计这种使用模式会非常普遍,并且很惊讶在网上没有看到任何关于它的信息。我已经看到了IndexedHbaseHbaseIndexed,它们都基于非键行在 HBase 上提供二级索引。这不是我需要的。我需要根据一行或多行的内容任意定义索引的编程能力。

4

1 回答 1

0

一种方法是使用 Timestamp 作为行键。这将允许您根据给定的时间处理行。

由于我说的是基于 TS 的 rowkey use hashing to avoid hotspotting,.

于 2013-06-25T20:01:46.327 回答