Hinzufügen von Spalten am Anfang oder in der Mitte der Tabelle - Amazon Athena

Hinzufügen von Spalten am Anfang oder in der Mitte der Tabelle

Das Hinzufügen von Spalten ist eine der am häufigsten vorkommenden Schemaänderungen. Beispielsweise können Sie eine neue Spalte hinzufügen, um die Tabelle um neue Daten zu erweitern. Alternativ können Sie eine neue Spalte hinzufügen, wenn sich die Quelle für eine vorhandene Spalte geändert hat, und die vorherige Version dieser Spalte beibehalten. So haben Sie Zeit, Anwendungen anzupassen, die von dieser Spalte abhängig sind.

Um Spalten am Anfang oder in der Mitte der Tabelle hinzuzufügen und Abfragen für bestehende Tabellen durchzuführen, verwenden Sie AVRO, JSON und Parquet und ORC, wenn deren SerDe Eigenschaft so gesetzt ist, dass sie dem Namen nach lesen. Weitere Informationen finden Sie unter Indexzugriff für Apache ORC und Apache Parquet verstehen.

Fügen Sie keine Spalten am Anfang oder in der Mitte der Tabelle in CSV und TSV hinzu, da diese Formate von der Reihenfolge abhängen. Das Hinzufügen einer Spalte führt in diesen Fällen zu Schemakonflikten, falls sich das Schema der Partitionen ändert.

Im folgenden Beispiel wird eine neue Tabelle erstellt, die eine o_comment-Spalte in der Mitte einer auf JSON-Daten basierenden Tabelle hinzufügt.

CREATE EXTERNAL TABLE orders_json_column_addition ( `o_orderkey` int, `o_custkey` int, `o_orderstatus` string, `o_comment` string, `o_totalprice` double, `o_orderdate` string, `o_orderpriority` string, `o_clerk` string, `o_shippriority` int, ) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' LOCATION 's3://amzn-s3-demo-bucket/orders_json/';