嗨,我遇到了麻烦,想出一些不适合mapreduce的地方。我知道使用mapreduce处理少量数据是没有意义的。但是,哪些类型的“复杂”查询不适合mapreduce?
就像一家拥有petabytes的数据的企业一样,mapreduce对于查询来说是个好主意,也就是说,在一个月内销售一种产品的总量之和,对不对?
但是,企业通常会进行哪些复杂的查询,从而导致mapreduce没有带来真正的好处?
发布于 2014-04-21 18:29:07
通常,mapreduce/hive中的所有内容都是聚合查询,但您可以使用非聚合查询。这只是一个没有“还原”操作的查询。
Hive可以使用多个查询和窗口函数等进行相当复杂的查询。因此,不能确定"mapreduce适合简单聚合查询“的语句是否完全正确。
不适合mapreduce/hive的业务查询类型是实时查询。例如,趋势查询,例如twitter的顶级哈希标签,等等。这种开销会使它们效率低下。
或者,如果由于某种原因必须将数据规范化,mapreduce/hive要求它们基本上位于一个表中。例如,如果您有一个高度规范化的“销售点”数据库,并且希望执行任何类型的查询,这将是痛苦的,除非您首先取消数据的规范化。
发布于 2014-04-21 20:59:18
一个例子是报告/数据可视化。有些reporting工具将Hive作为插件,但您可能不想等待几分钟才能完成数据处理/MapReduce。在这种情况下,您将执行ETL,并将数据从HDFS转移到RDBMS,如MySQL/Infobright,并使用RDBMS之外的报表。
https://stackoverflow.com/questions/23202008
复制相似问题