ALTER TABLE DROP PARTITION - Amazon Athena

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 von partition_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='');