Можем ли мы проверить размер таблиц Hive? Если да, то как?

У меня есть много таблиц в Hive, и я подозреваю, что размер этих таблиц вызывает проблемы с пространством в кластере. Есть ли способ проверить размер таблиц Hive за один раз? Если да, то как? Мы можем использовать Tblproperties или tbldescription. Но это полезно для одной таблицы. утомительно запускать одну и ту же команду для каждой таблицы. Я ищу подход для запуска команды и получения всей необходимой информации. Вывод должен включать следующие поля: Имя базы данных: Имя таблицы: totalSize: numFiles: numPartitions: numRows: rawDataSize: P.S: предыдущий подход применим для одной таблицы.
Любая помощь, пожалуйста?


person Hassan    schedule 28.01.2020    source источник


Ответы (1)


Насколько я знаю, нет единой команды для достижения результатов, которые вы ищете.

Вы можете написать собственный скрипт

  1. Получить список баз данных hive -e "SHOW DATABASES" > db_list_file
  2. Перебрать список баз данных, чтобы получить все таблицы в соответствующих базах данных hive -e "SHOW TABLES" > table_list_file
  3. Запустите DESCRIBE EXTENDED ${db}.${tble} для всех таблиц, проанализируйте вывод, чтобы получить путь к таблице.
  4. Если все файлы в HDFS, вы можете получить размер hdfs dfs -du -s <list of hdfs files>

Надеюсь это поможет

person Naga    schedule 28.01.2020