本主题介绍了无需实际更改数据即可在 CREATE
TABLE
语句中对架构进行的一些更改。要更新架构,在某些情况下可以使用 ALTER TABLE
命令;而在其他情况下,实际上并不需要修改现有表。而是使用新名称创建一个表,该表修改了在原始 CREATE TABLE
语句中使用的架构。
根据您期望架构的演进方式,选择一种兼容的数据格式,以继续使用 Athena 查询。
考察一个应用程序,该应用程序从 orders
表中读取订单信息,而该表存在两种格式:CSV 和 Parquet。
以下示例用 Parquet 格式创建一个表:
CREATE EXTERNAL TABLE orders_parquet (
`orderkey` int,
`orderstatus` string,
`totalprice` double,
`orderdate` string,
`orderpriority` string,
`clerk` string,
`shippriority` int
) STORED AS PARQUET
LOCATION 's3://amzn-s3-demo-bucket/orders_ parquet/';
以下示例用 CSV 格式创建同样的表:
CREATE EXTERNAL TABLE orders_csv (
`orderkey` int,
`orderstatus` string,
`totalprice` double,
`orderdate` string,
`orderpriority` string,
`clerk` string,
`shippriority` int
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION 's3://amzn-s3-demo-bucket/orders_csv/';
以下主题将介绍这些表的更新如何影响 Athena 查询。