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 REPLACE COLUMNS
Entfernt alle vorhandenen Spalten aus einer Tabelle, die mit dem erstellt wurde, LazySimpleSerDeund ersetzt sie durch den angegebenen Spaltensatz. Bei Verwendung der optionalen Syntax PARTITION
werden Partitionsmetadaten aktualisiert. Sie können ALTER TABLE REPLACE
COLUMNS
auch verwenden, um Spalten zu löschen, indem Sie nur die Spalten angeben, die Sie behalten möchten.
Syntax
ALTER TABLE table_name
[PARTITION
(partition_col1_name = partition_col1_value
[,partition_col2_name = partition_col2_value][,...])]
REPLACE COLUMNS (col_name data_type [, col_name data_type, ...])
Parameter
- PARTITION (partition_col_name = partition_col_value [,...])
-
Gibt eine Partition mit den von Ihnen angegebenen Spaltennamen/Wert-Kombinationen an. Umschließen Sie
partition_col_value
nur dann mit Anführungszeichen, wenn es sich beim Datentyp der Spalte um eine Zeichenfolge handelt. - REPLACE COLUMNS (col_name data_type [,col_name data_type,…])
-
Ersetzt vorhandene Spalten durch die angegebenen Spaltennamen und Datentypen.
Hinweise
-
Um die Änderung der Tabellenspalten im Navigationsbereich des Athena-Abfrage-Editors anzuzeigen, nachdem Sie
ALTER TABLE REPLACE COLUMNS
ausgeführt haben, müssen Sie möglicherweise die Tabellenliste im Editor manuell aktualisieren und die Tabelle dann erneut erweitern. -
ALTER TABLE REPLACE COLUMNS
funktioniert nicht für Spalten mit demdate
-Datentyp Um dieses Problem zu umgehen, verwenden Sie stattdessen dentimestamp
-Datentyp in der Tabelle. -
Beachten Sie, dass die Syntax
ALTER TABLE
sein muss, auch wenn Sie nur eine einzelne Spalte ersetzen, mit Spalten im Plural. Sie müssen nicht nur die Spalte angeben, die Sie ersetzen möchten, sondern auch die Spalten, die Sie beibehalten möchten. Andernfalls werden die Spalten, die Sie nicht angeben, gelöscht. Diese Syntax und dieses Verhalten leitet sich von Apache Hive DDL ab. Weitere Informationen finden Sie unter Spalten hinzufügen/ersetzentable-name
REPLACE COLUMNSin der Apache-Dokumentation.
Beispiel
Im folgenden Beispiel hat die Tabellenames_cities
, die mit dem erstellt wurde LazySimpleSerDe, drei Spalten mit den Namen col1
col2
, undcol3
. Alle Spalten sind vom Typ string
. Um die Spalten in der Tabelle anzuzeigen, verwendet der folgende Befehl die SHOW COLUMNS-Anweisung.
SHOW COLUMNS IN names_cities
Ergebnis der Abfrage:
col1 col2 col3
Der folgende ALTER TABLE REPLACE COLUMNS
-Befehl ersetzt die Spaltennamen durch first_name
, last_name
, und city
. Die zugrunde liegenden Quelldaten sind nicht betroffen.
ALTER TABLE names_cities REPLACE COLUMNS (first_name string, last_name string, city string)
Um das Ergebnis zu testen, wird SHOW COLUMNS
erneut ausgeführt.
SHOW COLUMNS IN names_cities
Ergebnis der Abfrage:
first_name last_name city
Eine andere Möglichkeit, die neuen Spaltennamen anzuzeigen, besteht darin, eine Vorschau der Tabelle im Athena-Abfrage-Editor anzuzeigen oder Ihre eigene SELECT
-Abfrage auszuführen.