Поддерживается ли секционирование на основе выражений в улье?

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

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

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

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

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'   

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


person david    schedule 08.04.2019    source источник


Ответы (1)


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

person serge_k    schedule 09.04.2019
comment
Я просмотрел сообщение, но похоже, что в Hive оператор создания таблицы требует, чтобы раздел по столбцу был указан с типом данных. Если я укажу тип данных как Дата, то в моем запросе мне нужно будет использовать поле даты в поле где пункт. Я хочу использовать поле метки времени. Какие-нибудь мысли? - person david; 11.04.2019