Google 的 Dremel 描述于此处。 Dremel 和 Mapreduce 有什么区别?
Dremel 和 MapReduce 没有直接可比性,而是互补技术。
MapReduce 并不是专门为分析数据而设计的 - 相反,它是一个软件框架,允许节点集合来解决大型数据集的分布式计算问题。
Dremel 是一种数据分析工具,旨在对海量结构化数据集(例如日志或事件文件)快速运行查询。它支持类似 SQL 的语法,但除了表附加之外,它是只读的。它不支持更新或创建函数,也不具有表索引。数据以“列”格式组织,这有助于非常快的查询速度。 Google 的 BigQuery 产品是 Dremel 的实现,可通过 RESTful API 访问。
Hadoop(MapReduce 的开源实现)与“Hive”数据仓库软件相结合,还允许使用 SQL 风格的语法对海量数据集进行数据分析。 Hive 本质上将查询转换为 MapReduce 函数。与使用 ColumIO 格式相比,Hive 尝试通过使用表索引等技术来加快查询速度。
查看这篇文章。 Dremel 是 Hive 的未来应该(并且将会)成为的样子。
MapReduce 及其之上的解决方案(如 Pig、Hive 等)的主要问题是,它们在运行作业和获得答案之间存在固有的延迟。 Dremel 使用了一种全新的方法(谷歌于 2010 年在该论文中提出)...
...使用基于聚合器树的新颖查询执行引擎...
...运行 几乎实时 、交互式 和 adhoc 查询,而 MapReduce 无法做到这一点。 Pig 和 Hive 不是实时
您应该密切关注由此产生的项目。这对我来说也很新鲜......所以欢迎任何其他专家评论!
编辑: Dremel 是 HIVE 的未来(而不是我之前提到的 MapReduce)。 Hive 现在提供类似 SQL 的接口来运行 MapReduce 作业。 Hive 的延迟非常高,因此在临时数据分析中不实用。 Dremel 通过使用与 MapReduce 不同的技术,提供了一种非常快速的类似 SQL 的数据接口。
MapReduce 是一种抽象算法,用于解决如何拆分问题、分配问题以及组合结果的问题。 Dremel 似乎是一个用于查询和分析数据集的特定工具。