Есть ли способ идентифицировать или обнаружить перекос данных в таблице Hive? - PullRequest
0 голосов
/ 16 ноября 2018

У нас много запросов на улей, которые занимают много времени. Мы используем tez и другие хорошие практики, такие как CBO, файлы orc и т. Д.

Есть ли способ проверить / проанализировать перекос данных, как какая-то команда? Поможет ли план объяснения, и если да, то какой параметр мне следует искать?

1 Ответ

0 голосов
/ 16 ноября 2018

Объяснить план не поможет в этом, вам следует проверить данные. Если это соединение, выберите значение 100 лучших ключей соединения из всех таблиц, участвующих в объединении, сделайте то же самое для разделения по ключу, если это аналитическая функция, и вы увидите, является ли это перекосом.

Пример:

select key, count(*) cnt
   from table
  group by key
 having count(*)> 1000 --check also >1 for tables where it should not be duplication (like dimentions)
  order by cnt desc limit 100;

key может быть сложным ключом объединения (все столбцы, которые вы используете в условии объединения ВКЛ).

Также взгляните на этот ответ: https://stackoverflow.com/a/51061613/2700344

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...