#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 . Я хочу использовать поле метки времени. Есть мысли?