0

我们有多个数据库,我们查询并生成报告。由于我们必须创建复杂的查询并进行大量的连接等,如果我们使用 Cassandra 或 Hadoop 或 Elasticsearch 来加载数据(加载数据或增量更新的日常作业)并查询该数据库以完成所有任务,这是一个好主意吗?

Cassandra 或 Hadoop 或 Elasticsearch 或 MongoDB 哪个是首选?

我们还想为统一数据库上的报告和分析构建一个 Web UI。

4

2 回答 2

0

我不能推荐 MongoDB。它在大数据分析方面表现不佳,其 Map-Reduce 实现很差,Map-Reduce 速度慢且单线程。Cassandra + Hadoop 或 HDFS + Hadoop 是您的选择。在 Hadoop 的情况下,您不受存储类型的限制,您可以在 HDFS 中刷新(或最初存储)数据并使用 MapReduce 对其进行迭代。

如果您需要耐用性,请查看 Cassandra。首先,Cassandra 非常易于维护且非常可靠。我相信 Cassandra 是世界上最可靠的 noSQL 数据库。它绝对是水平可扩展的,没有名称节点,没有主/从,所有节点的权限都是平等的。

使用 Elasticsearch,您只能进行搜索。如果您有大量数据并且需要分析,您应该考虑使用 Hadoop 和 MapReduce。

使用 Hadoop,您可以开始使用 Hive 或 Pig——我见过的最强大的 map-reduce 抽象。使用 Hadoop,您甚至可以开始考虑迁移到 Spark/Shark。

于 2013-04-30T04:03:56.010 回答
-1

如果您的选择仅限于这三个,Cassandra 将是最好的选择,因为在 MapReduce 程序中编写连接涉及到多个 MapReduce 程序和链接以正确获得一个连接的大量工作。如果您的选项是开放的,Apache Hive可以用于非交互式或报告应用程序,因为它支持相当多的 SQL 函数,例如连接、分组、排序等。Apache Hive 再次支持类似 SQL 的查询,不会有与传统的 SQL 有很大不同。

您还可以考虑将Apache Drill、Hortonworks Stinger 和 Cloudera Impala 用于交互式报告应用程序。

于 2013-04-30T20:17:06.107 回答