嗨,我遇到了mapreduce不适合的问题。我知道使用mapreduce和少量数据毫无意义。但是什么样的“复杂”查询不适合mapreduce?
与拥有数PB数据的业务一样,mapreduce对于查询来说是一个好主意,这些查询说明一个月内销售的产品类型的总数是正确的吗?
但是,企业通常会进行哪些复杂的查询会导致mapreduce没有真正的好处?
答案 0 :(得分:0)
通常,mapreduce / hive中的所有内容都是聚合查询,但您可以使用非聚合查询。那只是一个没有“减少”操作的查询。
Hive可以使用多个查询和窗口函数等进行相当复杂的查询。因此,不确定语句“mapreduce是否适合简单的聚合查询”是完全正确的。
不适合mapreduce / hive的业务查询类型是实时查询。例如,趋势查询,例如twitter等的顶部哈希标记。开销会使它们效率低下。
或者,如果由于某种原因必须对数据进行规范化,则mapreduce / hive要求它们基本上在一个表中。例如,如果您有一个高度标准化的“销售点”数据库,并希望进行任何类型的查询,除非您首先对数据进行非规范化,否则这些查询会很痛苦。
答案 1 :(得分:0)
一个例子是报告/数据可视化。一些报告BI工具将Hive作为插件,但您可能不想等待数分钟才能完成数据处理/ MapReduce。在这种情况下,您将执行ETL并将数据从HDFS移动到RDBMS(如MySQL / Infobright),并使用RDBMS之外的报告。