数据存储用于由属性标识的大量对象的聚合

时间:2015-04-12 00:42:00

标签: datastore

我有一些有趣的问题,我正在寻找有效查询的数据存储解决方案。

我有大量(1M +)个业务对象,每个对象都有大量属性(大约100个)。这些属性是相对非结构化的 - 系统有数千个可能的属性,它们的数量随着时间的推移而增长,每个对象都有一个任意(例如稀疏)的子集。

我经常需要执行以下操作:查找具有一组具体属性S的所有对象,并对它们执行聚合。我从来不会提前知道S,所以在每次请求时我都要对数据库进行昂贵的扫描,而这些数据库并没有扩展。

针对此类问题,有哪些数据存储解决方案?一种可能的解决方案是建立一个数据存储来并行化聚合 - 可能是Cassandra和Hive / Pig在顶层?

思考?

1 个答案:

答案 0 :(得分:0)

此时,Cassandra + Spark很可能成为候选人。

在纯粹的Cassandra世界中,您(理论上)可以创建所有可能的S属性到数据对象的手动映射,然后通过app和process加载它们(其中S属性的名称是分区键, S属性的值是聚类键,数据对象ID本身是另一个聚类键,这样就可以快速迭代所有具有S属性集的对象。

这不是非常性感,但可以让它发挥作用。