У меня есть таблица zhihu_answer_increment
, она была разбита на столбец ym
. Когда я выполняю запрос select distinct(ym) from zhihu.zhihu_answer_increment;
, это заняло более 1 минуты. Во время процесса улей запустил работу по уменьшению карты. вот журнал:
INFO : MapReduce Jobs Launched:
INFO : Stage-Stage-1: Map: 1 Reduce: 1 Cumulative CPU: 3.59 sec HDFS Read: 14969 HDFS Write: 106 HDFS EC Read: 0 SUCCESS
INFO : Total MapReduce CPU Time Spent: 3 seconds 590 msec
INFO : Completed executing command(queryId=hive_20191015113300_a6f58bad-f35b-4243-890a-a0d9ba9a5210); Time taken: 95.048 seconds
INFO : OK
Для сравнения, show partitions zhihu_answer_increment;
возвращает результат намного быстрее (всего за несколько секунд). Но мне нужно взять select distinct(ym) from zhihu.zhihu_answer_increment
в качестве подзапроса.
Так как я могу оптимизировать этот запрос? и я не понимаю, почему он запустил задание mapreduce, насколько мне известно, для этого достаточно только проверки каталога разделов. Или, может быть, мое соображение слишком простое.
Я благодарен за вашу помощь. Спасибо.