Удаление строк с определенным временным ключом в таблице кустов - PullRequest
0 голосов
/ 12 января 2019

enter image description here У меня есть таблица с записями ключа времени. Таблица каждого месяца должна обновляться с результатами за предыдущие три месяца. Предыдущие записи должны быть удалены. Сценарий автоматически запускается каждый месяц. Есть ли способ добиться этого в улье?

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Что касается удаления обновлений, Hive не будет поддерживать такие операции, но с новой версией Hive поддерживаются транзакции. Но для этого вам нужно создать таблицу кустов транзакций.

Ниже приведен синтаксис, который вы можете использовать при создании этой таблицы транзакций,

CREATE TABLE hello_acid (key int, value int)
PARTITIONED BY (load_date date)
CLUSTERED BY(key) INTO 3 BUCKETS
STORED AS ORC TBLPROPERTIES ('transactional'='true');

Вы можете обратиться по ссылке ниже для более подробной информации, https://hortonworks.com/tutorial/using-hive-acid-transactions-to-insert-update-and-delete-data/

Надеюсь, это поможет.

0 голосов
/ 30 января 2019

, если вы хотите сделать это с помощью запроса.

insert overwrite table <tablename>
select 
col1,
col2,
....
from tablename where timekey >(select from_unixtime(unix_timestamp(add_months(current_date(),-3), 'yyyy-MM-dd'), 'yyyyMM'));

запрос выше будет читать данные таблицы и вставлять только записи последних 3 месяцев

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...