Ajouter des colonnes au début ou au milieu de la table
L'ajout de colonnes est l'une des modifications de schéma les plus fréquentes. Par exemple, vous pouvez ajouter une nouvelle colonne pour enrichir la table avec de nouvelles données. Ou bien, vous pouvez ajouter une nouvelle colonne si la source d'une colonne existante a changé, et conserver la version précédente de cette colonne, pour ajuster les applications qui en dépendent.
Pour ajouter des colonnes au début ou au milieu de la table, et continuer d'exécuter des requêtes sur les tables existantes, utilisez AVRO, JSON, et Parquet et ORC et si leur propriété SerDe est définie pour lire par nom. Pour plus d’informations, consultez Présentation de l’accès aux index dans le cadre d’Apache ORC et d’Apache Parquet.
N'ajoutez pas colonnes au début ou au milieu de la table dans CSV et TSV, car ces formats dépendent de l'ordre. L'ajout d'une colonne dans de tels cas provoquera des erreurs de non-concordance de schéma en cas de modification du schéma de partitions.
L'exemple suivant crée une nouvelle table qui ajoute une colonne o_comment au milieu d'une table basée sur des données JSON.
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/';