有多键值存储吗?

4
有没有专门用于存储元组(例如t=(clicks, impressions, ctr))的商店,可以对多个值进行哈希处理 - 比如pageId、categoryId、userId、sessionId等等。
我知道可以使用MySQL、MongoDb等数据库来实现这一点。但我更想找一个专门的,甚至是嵌入式(在Java中)的存储方式。它不需要提供复杂的查询语言或像RDMBS那样的事务处理。但原子性和持久性将是一个优点。 ;)
我认为这也可能对存储多维聚合数据的DWH类型应用程序有用,但我还没有找到任何这样的产品。
3个回答

0

如果你可以接受定期加载的过程,像Mondrian或SQL Server Analysis Services这样的OLAP服务器可能适合你。它们正是做这种事情的,尽管底层数据结构不是哈希表。实际上,你需要将数据暂存到数据库中,并从数据库中加载数据到立方体。


是的,我需要这个来驱动一个算法,而且我认为Pentaho不能满足非常快速的键/值查找所需的性能。 - Timo Mika Gläßer

0

使用键值存储,您可以始终使用键组合将多个列存储在单个键列中。这意味着wiredtiger提供了在键和值上使用多个列的功能,并具有构建索引的投影能力。

键组合是将多个值打包成单个值的实践,最简单的组合使用字符作为分隔符,例如“:”


0

你最好的选择是要么使用

HashMap<Key1Type, HashMap<Key2Type, ValueType>> 

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

HashMap<string, ValueType>

好的,我知道如何做到这一点......但我问的是关于“存储”的意思,即Memcached用于多个键。 - Timo Mika Gläßer
有另一个关于如何在Java中实现这个的线程。事实上,我考虑使用类似Terracotta的东西来构建这种数据结构。 - Timo Mika Gläßer
哦,抱歉,我误解了。我不知道有任何类似的东西,很抱歉。 - Wade Tandy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接