Cassandra还是Hbase?

Our*_*ros 2 hbase cassandra

我有一个要求,我想存储以下内容:

  • Mac地址// PKEY
  • TimeStamp // PKEY
  • LocationID
  • OWNERNAME
  • 信号强度

插入逻辑如下:

  • 在每个位置每小时存储一次每个活动设备(MacAddress)的上述统计信息(LocationID)
  • 条目在每小时结束时创建,因此主键始终为MAC + TimeStamp

没有更新,只有插入

可以执行的查询如下:

  • 给我最后'N'小时的所有条目,其中MacAddress ="...."
  • 给我最后'N'小时的所有条目其中LocationID IN(locID1,locID2,..);

不用说,有数十亿条目,我想使用HBASE或Cassandra.我试图探索,似乎Cassandra可能不是正确的选择.

原因是如果我在cassandra中有以下内容:

<< RowKey> MacAddress:TimeStamp >>
+ LocationID
+ OwnerName
+ Signal Strength

这两个查询都会扫描整个数据库,对吗?即使我在LocationID上添加索引,这只会在某种程度上帮助第二个查询,因为时间戳上没有索引(我相信时间戳上的搜索速度不快,因为MacAddress:TimeStamp复合键不会允许我们只搜索时间戳,相反,会发生全扫描,这是正确的吗?).

如果我们选择HBase或Cassandra,我会在这里停留很长时间,任何见解都会有所帮助.

jbe*_*lis 5

使用Cassandra对此进行建模的正确方法是使用由mac地址分区的表,按时间戳排序,并在位置id上编制索引.请参阅Cassandra数据模型文档,尤其是有关聚类 [预定义排序]的部分.您的所有查询都不需要全表扫描.