ALTER TABLE DROP PARTITION
Descarta uma ou mais partições especificadas para a tabela nomeada.
Resumo
ALTER TABLE table_name DROP [IF EXISTS] PARTITION (partition_spec) [, PARTITION (partition_spec)]
Parâmetros
- [SE EXISTIR]
-
Suprime a mensagem de erro se a partição especificada não existir.
- PARTIÇÃO (partition_spec)
-
Cada
partition_spec
especifica uma combinação de nome de coluna e valor no formatopartition_col_name = partition_col_value [,...]
.
Exemplos
ALTER TABLE orders DROP PARTITION (dt = '2014-05-14', country = 'IN');
ALTER TABLE orders DROP PARTITION (dt = '2014-05-14', country = 'IN'), PARTITION (dt = '2014-05-15', country = 'IN');
Observações
A instrução ALTER TABLE DROP PARTITION
não fornece uma sintaxe única para descartar todas as partições de uma só vez nem suporta critérios de filtragem para especificar um intervalo de partições a serem eliminadas.
Como solução de contorno, use as ações GetPartitions e BatchDeletePartition da API do AWS Glue no desenvolvimento de scripts. A ação GetPartitions
suporta expressões de filtro complexas como as de uma expressão WHERE
em SQL. Depois de usar GetPartitions
para criar uma lista filtrada das partições a serem descartadas, você pode usar a ação BatchDeletePartition
para descartar as partições em lotes de 25.
Importante
Devido a um problema conhecido, quando uma partição inválida é especificada para a instrução ALTER
TABLE DROP PARTITION
, todas as partições da tabela são descartadas no AWS Glue. Por exemplo, a instrução a seguir descartará todas as partições da tabela my_table
mesmo que a partição especificada não exista. Como solução alternativa, certifique-se de inserir as informações da partição corretamente antes de executar a instrução ALTER TABLE DROP PARTITION
.
ALTER TABLE
my_table
DROP IF EXISTS PARTITION(zzz='');