如何使用Rounds策略创建Accumulo Embedded Index?

时间:2018-02-14 21:00:56

标签: accumulo

我是Accumulo的初学者并使用Accumulo 1.7.2。 作为索引策略,我计划使用嵌入式索引与轮次策略(第{21页的http://accumulosummit.com/program/talks/accumulo-table-designs/)。同样,我无法在任何地方找到任何文件。我想知道你们中是否有人可以帮助我。

1 个答案:

答案 0 :(得分:0)

我对该策略的描述主要是为了避免一次只查询表的一部分,立即向所有服务器发送查询。将轮次添加到现有的嵌入式索引'例子可能是最容易开始的地方。

Accumulo O' Reilly的书中包含一个例子,该例子从第284页开始,在一个名为“按文件划分的索引”的部分中开始。其代码位于此处:https://github.com/accumulobook/examples/tree/master/src/main/java/com/accumulobook/designs/multitermindex

该示例的查询部分位于 WikipediaQueryMultiterm.java 类中。它使用配置了单个空范围的BatchScanner将查询发送到所有平板电脑服务器。要实现绕轮查询策略,可以用从一个平板电脑服务器到下一个平板电脑服务器的东西替换,可以是循环方式,也可以是1,然后如果找不到足够的结果,则转到下一个2,然后4,依此类推,模仿Cassandra的作用。

由于您无法直接使用查询来定位服务器,并且由于该表使用了一些分区ID,因此您可以将扫描程序配置为扫描第一个分区ID中的所有键值,然后查询下一个分区ID等等或者以随机顺序访问分区以避免拥塞。

其他一些人提到过,添加额外的索引以帮助缩小搜索空间,然后再将查询发送到托管嵌入式索引的多个服务器,这超出了我所描述的范围,并且我认为这是最近采用的策略发布了DataWave项目:https://github.com/NationalSecurityAgency/datawave

相关问题