Поддерживается ли разделение на основе выражений в hive?

#hadoop #hive #data-partitioning

#hadoop #улей #разделение данных

Вопрос:

У меня есть таблица со столбцом, могу ли я создать раздел на основе выражения, используя этот столбец

Я читал, что технология IBM Big SQL имеет эту функцию.

Я также знаю, что мы можем разделить в hive по столбцу, но как насчет выражения?

В этом случае я делаю cast..it может быть любым выражением

 CREATE TABLE INVENTORY_A (
  trans_id int, 
  product varchar(50), 
  trans_ts timestamp
) 
PARTITIONED BY ( 
   cast(trans_ts as date) AS date_part
)

  

Я ожидаю, что записи будут разделены по значению даты. Поэтому я ожидаю, что когда пользователь напишет запрос, подобный

 select * from INVENTORY_A where trans_ts BETWEEN timestamp '2016-06-23 14:00:00.000' AND timestamp '2016-06-23 14:59:59.000'   
  

запрос будет достаточно умным, чтобы разбить временную метку на дату и выполнить фильтр только по дате

Ответ №1:

Вы можете использовать динамическое разделение и приводить свои переменные в запросе select.

Комментарии:

1. Я просмотрел сообщение, но похоже, что в Hive оператор create table требует указания раздела по столбцам с типом данных .. если я укажу тип данных как Date, то в моем запросе мне нужно будет использовать поле date в предложении where . Я хочу использовать поле метки времени. Есть мысли?