Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
ALTER TABLE DROP PARTITION
Löscht eine oder mehrere angegebene Partitionen für die benannte Tabelle.
Syntax
ALTER TABLE table_name DROP [IF EXISTS] PARTITION (partition_spec) [, PARTITION (partition_spec)]
Parameter
- [IF EXISTS]
-
Unterdrückt die Fehlermeldung, wenn die angegebene Partition nicht vorhanden ist.
- PARTITION (partition_spec)
-
Jede
partition_spec
gibt eine Spaltenname/Spaltenwert-Kombination in Form vonpartition_col_name = partition_col_value [,...]
an.
Beispiele
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');
Hinweise
Die ALTER TABLE DROP PARTITION
-Anweisung bietet keine einzige Syntax zum Löschen aller Partitionen auf einmal oder unterstützt Filterkriterien, um einen Bereich von zu löschenden Partitionen anzugeben.
Um das Problem zu umgehen, können Sie die AWS Glue API GetPartitionsund die BatchDeletePartitionAktionen in der Skripterstellung verwenden. Die GetPartitions
-Aktion unterstützt komplexe Filterausdrücke wie die in einem SQL-WHERE
-Ausdruck. Nachdem Sie GetPartitions
verwendet haben, um eine gefilterte Liste der zu löschenden Partitionen zu erstellen, können Sie mit der BatchDeletePartition
-Aktion die Partitionen in Batches von 25 löschen.
Wichtig
Aufgrund eines bekannten Problems werden alle Partitionen für die Tabelle gelöscht, wenn eine ungültige Partition für die ALTER
TABLE DROP PARTITION
-Anweisung in AWS Glue angegeben wird. Mit der folgenden Anweisung werden beispielsweise alle Partitionen für die Tabelle my_table
gelöscht, obwohl die angegebene Partition nicht existiert. Um das Problem zu umgehen, stellen Sie sicher, dass Sie die Partitionsinformationen korrekt eingeben, bevor Sie die ALTER TABLE DROP PARTITION
-Anweisung ausführen.
ALTER TABLE
my_table
DROP IF EXISTS PARTITION(zzz='');