2013-07-04 3 views
2

Я хочу найти ожидаемое время выполнения запроса в Hive. Использование EXPLAIN дает план выполнения. Есть ли способ найти ожидаемое время?Hive найти ожидаемое время выполнения запроса

Мне нужен эквивалент Hive SQL-запроса EXPLAIN COSTS.

+1

Мне очень понравилась эта идея. Пожалуйста, сообщите нам, если вы найдете прямой способ достичь этого. Спасибо. – Tariq

ответ

1

Я думаю, что это невозможно, потому что внутреннее преобразование карты выполняется для любого конкретного запроса на улей. Кроме того, отображение сокращения времени выполнения задания зависит от нагрузки кластера и его конфигурации. Поэтому трудно предсказать время выполнения. Может быть, вы можете сделать одну вещь, которую вы можете использовать с помощью таймера перед запуском запроса, а затем после этого вы сможете вычислить точное время выполнения, которое было необходимо для выполнения.

0

Может быть, вы можете пробовать небольшой% записей из вашей таблицы с помощью разделов, функций bucket и т. Д., Затем запустите запрос в отношении небольшого набора данных. Обратите внимание на время выполнения, а затем умножьте его на коэффициент (total_size/sample_size).

2

В данный момент функции OOTB нет, что облегчает это. Одним из способов добиться этого было бы изучение истории. Собирайте шаблоны на основе похожих данных и запросов, которые вы запускали ранее, и попытайтесь вывести некоторые идеи. Возможно, вы найдете инструменты, такие как Starfish.

Я бы не рекомендовал вам ничего решать, основываясь на подмножестве ваших данных, так как работающие запросы на небольшом наборе данных и фактическом наборе данных очень разные. Это полезно для тестирования функциональности, но не для какого-либо ценового приближения. Причина этого в том, что в процесс вовлечено много факторов, таких как системные ресурсы (диск, слоты CPU, N/W и т. Д.), Конфигурация системы, другие рабочие задания и т. Д. На небольшой набор данных вы можете найти гладкую работу, но по мере увеличения размера данных все эти факторы начинают играть важную роль. Даже небольшой параметр конфигурации может играть важную роль. (Возможно, вы иногда заметили, что запрос на улов выполняется быстро, но постепенно начинает медленно замедляться). Кроме того, выполнение запроса на улов гораздо более сложное, чем простая работа MR.

См. Это JIRA, чтобы узнать, где они говорят о разработке оптимизации запросов на основе затрат для Joins in Hive. Вы также можете найти this.