MongoDB 中的 HiveQL

Posted

技术标签:

【中文标题】MongoDB 中的 HiveQL【英文标题】:HiveQL in MongoDB 【发布时间】:2014-02-21 12:49:20 【问题描述】:

我一直在研究用于数据仓库的 NoSQL 和 Hadoop,但是我以前从未使用过这些技术,我想询问以下是否可以检查我是否正确理解了这些技术。

如果我将数据存储在 MongoDB 中,是否可以将 Hadoop 与 Hive 结合使用,直接对 MongoDB 进行 Hiveql 查询,并将这些查询的输出作为视图再次存储在 MongoDB 中,而不是 HDFS 中?

另外,如果我理解正确,大多数 NoSQL 数据库不支持连接和聚合,但可以通过 map-reduce 实现它们。如果当我在 HiveQL 中进行联接时 HiveQL 查询是 map-reduce 作业,它是否已经自动“加入”了 map-reduce 中的 MongoDB 数据,而无需担心 MongoDB 中缺乏对联接和聚合的支持?

【问题讨论】:

【参考方案1】:

MongoDB 确实对聚合类型的函数有很好的支持。当然没有连接。 MongoDB Schema 通常的设计方式是您通常不需要连接。

HiveQL 在 HDFS 中的“表”上运行。这是默认行为。 但是你有一个 MongoDB-Hadoop 连接器:http://docs.mongodb.org/ecosystem/tools/hadoop/ 这将允许您从 Hadoop 中查询 MongoDB 数据。

要使用 Map Reduce,您可以使用 MongoDB 本身(没有 Hadoop)来实现。 看到这个:http://docs.mongodb.org/manual/core/map-reduce/

【讨论】:

以上是关于MongoDB 中的 HiveQL的主要内容,如果未能解决你的问题,请参考以下文章

Node.JS + MongoDB聚合从MongoDB中的DataBase中查找数组中的数组

MongoDB基础命令及操作

mongodb怎么查询数组中的值

如何实现mongodb中的sum汇总操作?

有没有办法使用persistent-mongoDB中的低级mongoDB后端?

子数组中的 MongoDB 更新查询