AWS Athena: удалить разделы между датами - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть таблица athena с разделом на основе даты, например:

20190218

Я хочу удалить все разделы, созданные в прошлом году.

Я пробовал следующий запрос,но это не сработало.

ALTER TABLE tblname DROP PARTITION (partition1 < '20181231');

ALTER TABLE tblname DROP PARTITION (partition1 > '20181010'), Partition (partition1 < '20181231');

1 Ответ

0 голосов
/ 18 февраля 2019

Согласно https://docs.aws.amazon.com/athena/latest/ug/alter-table-drop-partition.html, ALTER TABLE tblname DROP PARTITION принимает спецификацию раздела, поэтому диапазоны не допускаются.

В Presto вы бы сделали DELETE FROM tblname WHERE ..., но Athena также не поддерживает DELETE.

По этим причинам вам необходимо использовать какое-то внешнее решение.

Например:

  1. перечислить файлы как в https://stackoverflow.com/a/48824373/65458
  2. удалить файлы и содержащие каталоги
  3. обновить информацию о разделах (https://docs.aws.amazon.com/athena/latest/ug/msck-repair-table.html должно быть полезно)
...