2015-10-24 3 views
0

Я собираю запрос, который будет обновляться каждый день, который должен извлекать записи из последних десяти дат.Как вы получаете «дату события» текущую дату - 10 дней) в HiveQL?

Таблицы, к которым я обращаюсь, имеют столбец «xxdatetime» с отметкой времени unix и столбец «eventdate» с датой в yyyy-mm-dd.

В Impala, ответ был прост:

where eventdate > to_date(days_sub(now(), 10)) 

Я использовал вариации этого в улье, что не удалось, потому что я предполагаю, что это было сканировать всю таблицу и таблицы MASSIVE:

where datediff(cast(current_timestamp() as string), eventdate)=10 

Есть ли легкий вес в Hive SQL для фильтрации столбцов xxdatetime или eventdate на сегодняшний день - 10 дней?

+0

DATEDIFF (from_unixtime (unix_timestamp()), ts) <= 10 Возможно это? –

ответ

2

Eventdate - это моя индексированная колонка, date_sub (строка, дни для вычитания), а current_date - текущий куст yyyy mm dd.

eventdate > date_sub(current_date, 5) 

Я не уверен, если это супер легкий вес, но он работает!