7

我正在寻找像 Oracle/SQL Server/Postgres 那样NoSQL支持分析功能(简称)的任何系统(最好是开源系统) 。AF我没有找到任何内置功能。我读过一些关于Hive但它没有AF(windows、first_last 值、ntiles、lag、lead 等)的实际特征,只是直方图和 ngram。还有一些 NoSQL 系统(Redis例如)支持 map/reduce,但我不确定是否AF可以用它替换。

我想进行性能比较以选择 Postgres 或 NoSQL 系统。

所以,简而言之:

  1. 搜索NoSQL系统AF
  2. 我可以依靠 map/reduce 来替换AF吗?它是否快速、可靠、易于使用。

附言。我试图让我的问题更具建设性。

4

2 回答 2

2

一旦你真正理解了 MapReduce 是如何工作的,你就可以用几行代码做一些令人惊奇的事情。

这是一个很好的视频课程:

http://code.google.com/intl/fr/edu/submissions/mapreduce-minilecture/listing.html

真正的困难因素在于您可以使用单个 MapReduce 实现的功能与需要链接 MapReduce 的功能之间。此外,一些不错的 MapReduce 实现(如 CouchDB)不允许您(轻松地)链接 MapReduce。

于 2012-11-08T10:18:16.083 回答
1

当某些函数涉及某种聚合之王(平均、中值、标准差)或某种排​​序(第一、最后)时,它会使用所有现有数据的知识。

如果你想要一个开箱即用的支持 AF 的分布式 NOSQL 解决方案,系统将需要依赖一些集中式索引和元数据来保存所有节点中的数据信息,从而拥有一个主节点,并且可能存在单点故障.

您必须询问您希望使用 NoSQL 完成什么。您想要无模式表吗?分布式数据 ? 为非常简单的查询提供更好的原始性能?

根据您的需要,我在这里看到三个主要选择:

1 - 使用没有单点故障的分布式 NoSQL(即:Cassandra)来存储您的数据并使用 map/reduce 处理数据并为所需功能生成结果(几乎所有主要的 NoSQL 解决方案都支持Hadoop)。需要注意的是,map/reduce 查询不是实时的(执行查询可能需要几分钟或几小时)并且需要额外的设置和学习。

2 - 使用支持多个服务器的传统 RDBMS,如MySQL Cluster

3 - 使用具有主/从拓扑的 NoSQL,支持像Mongo这样的临时和聚合查询

至于第二个问题:是的,可以依靠M/R来代替AF。你几乎可以用 M/R 做任何事情。

于 2012-11-08T17:04:25.130 回答