Подтвердить что ты не робот

Улей: как показать все разделы таблицы?

У меня есть таблица с 1000 + разделами.

"Show partitions" команда перечисляет только небольшое количество разделов.

Как я могу показать все разделы?

Update:

  • Я обнаружил, что команда "Show partitions" содержит только 500 разделов.

  • "select ... where ..." обрабатывает только 500 разделов!

4b9b3361

Ответ 1

CLI имеет некоторый предел при отображении вывода. Я предлагаю экспортировать вывод в локальный файл:

$hive -e 'show partitions table;' > partitions

Ответ 2

Вы можете увидеть таблицы таблиц Hive MetaStore, информацию о разделах в таблице "PARTITIONS". Вы можете использовать "TBLS", чтобы присоединиться к разделу "Раздел", чтобы запросить специальные разделы таблицы.

Ответ 3

Хорошо, я пишу этот ответ, расширив wmky ответ выше, а также, предположив, что вы настроили mysql для своего метастора вместо дерби.

select PART_NAME FROM PARTITIONS WHERE TBL_ID=(SELECT TBL_ID FROM TBLS WHERE TBL_NAME='<table_name>');

Вышеприведенный запрос предоставляет все возможные значения столбцов разделов.

Пример:

hive> desc clicks_fact;
OK
time                    timestamp                                   
..                              
day                     date                                        
file_date               varchar(8)                                  

# Partition Information      
# col_name              data_type               comment             

day                     date                                        
file_date               varchar(8)                                  
Time taken: 1.075 seconds, Fetched: 28 row(s)

Я собираюсь получить значения столбцов разделов.

mysql> select PART_NAME FROM PARTITIONS WHERE TBL_ID=(SELECT TBL_ID FROM TBLS WHERE TBL_NAME='clicks_fact');
+-----------------------------------+
| PART_NAME                         |
+-----------------------------------+
| day=2016-08-16/file_date=20160816 |
| day=2016-08-17/file_date=20160816 |
....
....
| day=2017-09-09/file_date=20170909 |
| day=2017-09-08/file_date=20170909 |
| day=2017-09-09/file_date=20170910 |
| day=2017-09-10/file_date=20170910 |
+-----------------------------------+

1216 rows in set (0.00 sec)

Возвращает все столбцы разделов.

Примечание: JOIN table DBS ВКЛ DB_ID, когда есть задействованный БД (т.е. когда у нескольких БД есть одно и то же имя_таблицы)