ALTER TABLE REPLACE COLUMNS - 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 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 dem date-Datentyp Um dieses Problem zu umgehen, verwenden Sie stattdessen den timestamp-Datentyp in der Tabelle.

  • Beachten Sie, dass die Syntax ALTER TABLE table-name REPLACE COLUMNS 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/ersetzen in der Apache-Dokumentation.

Beispiel

Im folgenden Beispiel hat die Tabellenames_cities, die mit dem erstellt wurde LazySimpleSerDe, drei Spalten mit den Namen col1col2, 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.