У меня есть таблица куста (потребительские_данные) с столбец раздела 'val_dt' , который является строка столбец со значениями в формате даты 'yyyy-MM' .
У меня несколько разделов в таблице, от «2015-01» до «2020-04». Каждый месяц данные добавляются в таблицу постепенно, поэтому следующим добавленным разделом будет «2020-05».
Я хочу удалить разделы , которые старше 24 месяцев . Это удаление раздела выполняется каждый месяц, чтобы сохранить данные только за последние 24 месяца.
Как можно создать команду ALTER для удаления разделов со значениями старше 24 месяцев.
Я выполнил приведенный ниже запрос beeline с образцами данных через оболочку linux, но он удалил все разделы .
beeline --hivevar var_drop_date="$(date -d "24 months ago" '+%Y-%m')" -e 'ALTER TABLE consumer_data DROP IF EXISTS PARTITION(val_dt <= date "${hivevar:var_drop_date}")'
Partition present before running the query:
val_dt=2016-01
val_dt=2017-01
val_dt=2019-01
val_dt=2020-01
Partitions present after running the query:
None
Required output:
val_dt=2019-01
val_dt=2020-01