ALTER TABLE DROP PARTITION
Elimina una o varias particiones especificadas de la tabla indicada.
Sinopsis
ALTER TABLE table_name DROP [IF EXISTS] PARTITION (partition_spec) [, PARTITION (partition_spec)]
Parámetros
- [IF EXISTS]
-
Suprime el mensaje de error si la partición especificada no existe.
- PARTITION (partition_spec)
-
Cada valor de
partition_spec
especifica una combinación de columna nombre/valor con la formapartition_col_name = partition_col_value [,...]
.
Ejemplos
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');
Notas
La instrucción ALTER TABLE DROP PARTITION
no proporciona una sintaxis única para eliminar todas las particiones a la vez ni admite criterios de filtro para especificar un rango de particiones que se eliminarán.
Como alternativa, puede utilizar las acciones de la API de AWS Glue GetPartitions y BatchDeletePartition durante el scripting. La acción GetPartitions
admite expresiones de filtro complejas como las de una expresión WHERE
de SQL. Después de usar GetPartitions
para crear una lista filtrada de particiones para eliminar, puede utilizar la acción BatchDeletePartition
para eliminar las particiones en lotes de 25.
importante
Debido a un problema conocido, cuando se especifica una partición no válida para la instrucción ALTER
TABLE DROP PARTITION
, se eliminan todas las particiones de la tabla en AWS Glue. Por ejemplo, la siguiente instrucción eliminará todas las particiones de la tabla my_table
aunque la partición especificada no exista. Como solución alternativa, asegúrese de introducir correctamente la información de la partición antes de ejecutar la instrucción ALTER TABLE DROP PARTITION
.
ALTER TABLE
my_table
DROP IF EXISTS PARTITION(zzz='');