Я использую куст 071, обрабатывающий существующие данные, который имеет следующую структуру каталогов:
-TableName
- d = (например, 2011-08-01)
- d = 2011-08-02
- d = 2011-08-03
... и т. д.
под каждой датой у меня есть файлы дат.
Теперь для загрузки данных я использую
CREATE EXTERNAL TABLE table_name (i int)
PARTITIONED BY (date String)
LOCATION '${hiveconf:basepath}/TableName';**
Я бы хотел, чтобы мой скрипт улья мог загружать соответствующие разделы в соответствии с некоторой датой ввода и количеством дней. поэтому, если я пройду date = '2011-08-03' и days = '7'
Скрипт должен загрузить следующие разделы
- д = 2011-08-03
- d = 2011-08-04
- d = 2011-08-05
- d = 2011-08-06
- d = 2011-08-07
- d = 2011-08-08
- d = 2011-08-09
Я не нашел никакого непристойного способа сделать это, кроме явно запущенного:
ALTER TABLE table_name ADD PARTITION (d='2011-08-03');
ALTER TABLE table_name ADD PARTITION (d='2011-08-04');
ALTER TABLE table_name ADD PARTITION (d='2011-08-05');
ALTER TABLE table_name ADD PARTITION (d='2011-08-06');
ALTER TABLE table_name ADD PARTITION (d='2011-08-07');
ALTER TABLE table_name ADD PARTITION (d='2011-08-08');
ALTER TABLE table_name ADD PARTITION (d='2011-08-09');
и затем мой запрос
select count(1) from table_name;
однако, это вне курса не автоматизировано в соответствии с датой и днями ввода
Можно ли как-то определить внешнюю таблицу для загрузки разделов в соответствии с диапазоном дат или арифметикой дат?