このトピックでは、実際にデータを変更せずに CREATE
TABLE
ステートメントのスキーマに加えられるいくつかの変更について説明します。スキーマを更新するには、ALTER TABLE
コマンドを使用できる場合もあれば、既存のテーブルを実際に変更しない場合もあります。代わりに、元の CREATE TABLE
テートメントで使用したスキーマを変更する新しい名前のテーブルを作成します。
期待されるスキーマの進化方法に応じて、Athena クエリの使用を継続するために互換性のあるデータ形式を選択します。
CSV および Parquet の 2 つの形式で存在する orders
テーブルからの注文情報を読み取るアプリケーションを考えます。
以下の例では、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 クエリにどのように影響するかを示します。