Создание перегородок улья на несколько месяцев с помощью одного скрипта

Имею данные за 4 года. Нравиться

'2011
 2012
 2013
 2014'

Мне нужно выполнять запросы на основе данных за один месяц. Итак, я создаю разделы, как показано ниже.

'ALTER TABLE table1_2010Jan ADD PARTITION(year='2010', month='01', day='01')
 LOCATION 'path';
 ALTER TABLE table1_2010Jan ADD PARTITION(year='2010', month='01', day='02')
 LOCATION 'path';
 ALTER TABLE table1_2010Jan ADD PARTITION(year='2010', month='01', day='03')
 LOCATION 'path';'

Я создаю отдельные разделы, как указано выше, на каждый день каждого месяца.

Я хочу знать, можем ли мы написать сценарий (на любом языке) и запустить его один раз, чтобы создать эти разделы для всех дней месяца для каждого года? Или есть способ сделать это в самом улье.

Любые предложения, пожалуйста ..


person dheee    schedule 20.05.2014    source источник
comment
зачем вам создавать перегородки? Если это для вставки данных, вы всегда можете вставить, используя динамические разделы, и они будут созданы для вас. Посмотрите здесь: cwiki.apache.org/confluence/display/Hive/DynamicPartitions   -  person dimamah    schedule 21.05.2014
comment
У меня уже есть данные о blob. Сначала я создал внешнюю таблицу. Теперь я пытаюсь создавать разделы на каждый день и указывать раздел на расположение данных.   -  person dheee    schedule 21.05.2014


Ответы (1)


Для внешнего стола улей этого не сделать. Вы можете создать сценарий оболочки / perl, чтобы сделать то же самое (используя цикл).

Для таблицы, управляемой кустом, вы можете легко сделать это с помощью команды MSCK REPAIR.

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-RecoverPartitions%28MSCKREPAIRTABLE%29

Единственное, что вам нужно убедиться, что данные загружены - это правильный раздел.

person jigarshah    schedule 12.06.2014