katty
1
Athenaで作成済みのテーブルと、そのテーブルを参照するビューがあります。
S3側のデータに新しい項目(カラム)を追加したため、Athenaのテーブル定義にも同様にカラムを追加したいと考えています。
そこで質問です。
以下の2つの方法でカラムを追加する場合、挙動に違いはあるのでしょうか。
-
ALTER TABLE ... ADD COLUMNS を使用してカラムを追加する方法
-
同じテーブル名で DROP TABLE を実行した後、CREATE TABLE で再作成する方法
メタデータの扱いの観点から、後者は何らかのリスクがあるのではないかと考えています。
もし DROP TABLE + CREATE TABLE の方法で対応した場合、問題が発生する可能性はありますでしょうか。
@katty さん、ご質問ありがとうございます。
基本的には1の方法をご検討いただくのがよろしいかと思います。
2の場合、以下のAthenaのドキュメントにも記載の通り、ビューの参照先のテーブルがDROPされ、異なるスキーマで再作成された場合、ビューとしては機能しなくことが想定されます。
その他にも、一時的にテーブルそのものが存在しない期間ができてしまう、パーティション情報の再登録が必要になるなど、テーブルおよび関連メタデータの削除によるリスクが出てきます。
katty
3
いつも大変お世話になっております。
リスクの詳細についてもご丁寧にご説明いただき、誠にありがとうございます。
1の方法で進めさせていただきます。
今後ともどうぞよろしくお願いいたします。