La adición de columnas es uno de los cambios de esquema más frecuentes. Por ejemplo, se puede añadir una columna para enriquecer una tabla con datos nuevos. O añadir una columna si el origen de una columna existente ha cambiado y se desea mantener la versión anterior de esta columna para que sigan funcionando las aplicaciones que dependen de ella.
Para añadir columnas al principio o en medio de la tabla y continuar ejecutando consultas en las tablas existentes, utilice AVRO, JSON, Parquet u ORC si su propiedad del SerDe está configurada para la lectura por nombre. Para obtener más información, consulte Descripción del acceso a los índices para Apache ORC y Apache Parquet.
No añada columnas al principio o en medio de la tabla en los formatos CSV y TSV, ya que estos dependen de la ordenación. La adición de una columna en estos casos dará lugar a errores de discrepancia de esquemas cuando cambie el esquema de las particiones.
En el siguiente ejemplo, se crea una tabla nueva que agrega una columna o_comment
en el centro de una tabla en función de los datos 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/';