删除列 - Amazon Athena

删除列

如果表中的列不再包含数据,您可能需要删除它们,或者,您可能需要限制对于列数据的访问。

  • 您可以从 JSON、Avro 表,以及按名称读取的 Parquet 和 ORC 表中删除列。有关信息,请参阅了解 Apache ORC 和 Apache Parquet 的索引访问权限

  • 如果您希望保留已在 Athena 中创建的表,我们不建议从 CSV 和 TSV 表中删除列。删除列会破坏架构,需要您重新创建不包含已删除列的表。

在本示例中,将从 Parquet 表中删除一列`totalprice`并运行查询。在 Athena 中,Parquet 默认是按名称读取的,因此我们省略了指定按名称读取的 SERDEPROPERTIES 配置。请注意,即使更改了架构,以下查询也会成功:

CREATE EXTERNAL TABLE orders_parquet_column_removed ( `o_orderkey` int, `o_custkey` int, `o_orderstatus` string, `o_orderdate` string, `o_orderpriority` string, `o_clerk` string, `o_shippriority` int, `o_comment` string ) STORED AS PARQUET LOCATION 's3://amzn-s3-demo-bucket/orders_parquet/';