36

此处描述了Google 的 Dremel 。Dremel 和 Mapreduce 有什么区别?

4

3 回答 3

44

DremelMapReduce不能直接比较,而是互补的技术。

MapReduce 并不是专门为分析数据而设计的——它是一个软件框架,允许节点集合解决大型数据集的分布式计算问题。

Dremel 是一种数据分析工具,旨在对大量结构化数据集(例如日志或事件文件)快速运行查询。它支持类似 SQL 的语法,但除了表追加之外,它是只读的。它不支持更新或创建函数,也不支持表索引。数据以“列”格式组织,这有助于非常快的查询速度。Google 的 BigQuery 产品是可通过 RESTful API 访问的 Dremel 实现。

Hadoop(MapReduce 的开源实现)与“Hive”数据仓库软件相结合,还允许使用 SQL 风格的语法对海量数据集进行数据分析。Hive 本质上将查询转换为 MapReduce 函数。与使用 ColumIO 格式相比,Hive 尝试通过使用表索引等技术来快速进行查询。

于 2012-01-27T05:13:07.363 回答
26

看看这篇文章。Dremel 是 Hive 的未来应该(并且将会)成为的样子。

MapReduce 及其之上的解决方案(如 Pig、Hive 等)的主要问题是它们在运行作业和获得答案之间存在固有的延迟。Dremel 使用了一种全新的方法(2010 年在谷歌的那篇论文中出现)...

...使用基于聚合树的新颖查询执行引擎...

...运行几乎实时交互式即席查询,这两者 MapReduce 都不能。而且 Pig 和 Hive 不是实时的

您应该密切关注由此产生的项目。对我来说也很新……所以欢迎任何其他专家评论!

编辑: Dremel 应该是HIVE(而不是我之前提到的 MapReduce)的未来。Hive 现在提供了一个类似 SQL 的接口来运行 MapReduce 作业。Hive 具有非常高的延迟,因此在临时数据分析中不实用。Dremel 通过使用与 MapReduce 不同的技术为数据提供了一个非常快速的类似 SQL 的接口。

于 2011-07-07T11:19:58.233 回答
6

MapReduce 是一种抽象算法,用于将问题拆分、分发和组合结果。Dremel 似乎是用于查询和分析数据集的特定工具。

于 2011-07-07T08:06:50.277 回答