Accumulo:如何为高效查询索引数据?

Accumulo: How to index data for efficient queries?

我需要一个高效的索引架构来存储警报。每个警报都具有以下属性:

我需要执行以下查询:

我最初的想法是索引如下:

ROWID -> alertId_timestamp,
CF -> attribute (type, location),
CQ -> value

但是我认为查询性能对于我的#2 和#3 查询用例来说会很差。我应该如何索引我的数据?

如果您知道这些将是您唯一的查询,您可以这样插入数据:

RowID     |  CF    |  CQ    | Value 
Timestamp | "TYPE" | <type> | alertID
Timestamp | "LOC"  | <loc>  | alertID

是的,您正在插入数据 2x,但这是 "Big Data",对,所以存储 space 应该不是什么大问题。您的所有查询都是基于时间的并且只是在进行计数,因此您应该将时间戳记作为您的 RowID,以便您可以对行执行 Range 并使用 [= 在 CF/CQ 上过滤您想要的内容13=] 或 .您也可以尝试将 CF/CQ 组合在一起,例如 "TYPE_Foo" 和 "LOC_Boston",如果您知道您只会寻找特定的 types/locations,但这会限制如果您要查找 all/range 共 types/locations 个,请与您联系。请注意,您可能还想使用某种迭代器来进行服务器端聚合 Does Accumulo support aggregation?