我需要一个有效的索引架构来存储警报。每个警报都具有以下属性:
我需要执行以下查询:
我最初的想法是索引以下内容:
ROWID -> alertId_timestamp,
CF -> attribute (type, location),
CQ -> value
但是我觉得我的#2& #3查询用例。我应该如何索引我的数据?
答案 0 :(得分:2)
如果您知道这些将是您唯一的查询,您可以插入您的数据:
RowID | CF | CQ | Value
Timestamp | "TYPE" | <type> | alertID
Timestamp | "LOC" | <loc> | alertID
是的,您正在插入数据2x,但这是&#34;大数据&#34;,对,因此存储空间不应该是一个大问题。您的所有查询都是基于时间的,只是在进行计数,因此您应该将时间戳作为RowID,以便对行进行Range
并使用{{在CF/CQ
上过滤您想要的内容1}}或。您也可以尝试将CF / CQ组合在一起,例如&#34; TYPE_Foo&#34;和&#34; LOC_Boston&#34;如果您知道自己只是在寻找特定的类型/位置,但如果您尝试查找所有类型/位置的所有/范围,这将限制您。请注意,您也可能希望使用某种迭代器来进行服务器端聚合Does Accumulo support aggregation?