【问题标题】:Is there a multi-key key-value store?是否有多键键值存储?
【发布时间】:2011-05-13 22:44:28
【问题描述】:

是否有专门的存储来存储元组,即 t=(clicks,impressions,ctr) 散列在多个值上 - 比如说 pageId、categoryId、userId、sessionId 等等。

我知道我可以使用 MySQL、MongoDb 等来做到这一点。但我更多的是寻找一些专门的甚至可以嵌入(在 Java 中)的商店。它不需要像 RDMBS 那样提供复杂的查询语言或事务。但是原子性和持久性将是一个优点。 ;)

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

【问题讨论】:

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


    【解决方案1】:

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

    键组合是将多个值打包成单个值的做法,最简单的组合使用字符作为分隔符,例如":"

    【讨论】:

      【解决方案2】:

      如果您可以接受定期加载过程,那么 Mondrian 或 SQL Server Analysis Services 等 OLAP 服务器可能会为您工作。尽管底层数据结构不是哈希表,但它们正是这样做的。实际上,您需要将数据暂存到数据库中,然后将数据库中的数据加载到多维数据集中。

      【讨论】:

      • 是的,我需要这个来驱动一个算法,我认为 Pentaho 不能满足快速键/值查找所需的性能。
      【解决方案3】:

      你最好的选择是要么使用

      HashMap<Key1Type, HashMap<Key2Type, ValueType>> 
      

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

      HashMap<string, ValueType>
      

      【讨论】:

      • 好的,我知道该怎么做……但我问的是“存储”,意思是 Memcached 用于多键。
      • 还有另一个关于如何在 Java 中执行此操作的线程。事实上,我考虑过使用 Terracotta 之类的东西并构建这种数据结构。
      • 哦,对不起,我误会了。抱歉,我不知道这些方面的任何事情。
      猜你喜欢
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      • 2011-01-24
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      相关资源
      最近更新 更多