有多键键值存储吗?

时间:2010-11-22 16:09:34

标签: database data-warehouse key-value-store

是否存在用于存储元组的专门存储,即t =(点击次数,展示次数,ctr)在多个值上进行散列 - 例如pageId,categoryId,userId,sessionId等等。

我知道我可以使用MySQL,MongoDb等来做到这一点。但我更喜欢一些专门的和mabye甚至嵌入式(在Java中)商店。它不需要提供复杂的查询语言或RDMBS之类的事务。但原子性和耐久性将是一个专业人士。 ;)

我认为这也可以用于存储多维度聚合数据的DWH类型应用程序,但我还没有找到任何此类产品。

3 个答案:

答案 0 :(得分:0)

您最好的选择是使用

HashMap<Key1Type, HashMap<Key2Type, ValueType>> 

或者如果您的项目都可以通过字符串表示,您可以连接它们的值并将它们全部存储在

HashMap<string, ValueType>

答案 1 :(得分:0)

如果您可以使用定期加载过程,则可以使用Mondrian或SQL Server Analysis Services等OLAP服务器。尽管底层数据结构不是哈希表,但它们确实做到了这一点。实际上,您需要将数据暂存到数据库中,并将数据从数据库加载到多维数据集中。

答案 2 :(得分:0)

使用键值存储,您始终可以使用键组合在单键列中存储多个列。这说wiredtiger确实提供了关键和值的多个列,并且能够进行投影以构建索引。

关键组合是在单个值中打包多个值的实践,最简单的组合使用char作为分隔符,例如$string = str_replace('/', '_', $newFile);