CREATE TABLE AS - Amazon Athena

CREATE TABLE AS

Crea una nueva tabla rellena con los resultados de una consulta SELECT. Para crear una tabla vacía, utilice CREATE TABLE. Para obtener información adicional sobre CREATE TABLE AS más allá del alcance de este tema de referencia, consulte Creación de una tabla a partir de los resultados de una consulta (CTAS).

nota

Para las instrucciones CTAS, la configuración del propietario del bucket esperado no se aplica a la ubicación de la tabla de destino en Amazon S3. La configuración del propietario esperado del bucket se aplica solo a la ubicación de salida de Amazon S3 especificada para los resultados de las consultas de Athena. Para obtener más información, consulte Especificación de una ubicación de resultados de consulta mediante la consola de Athena .

Sinopsis

CREATE TABLE table_name [ WITH ( property_name = expression [, ...] ) ] AS query [ WITH [ NO ] DATA ]

Donde:

WITH ( property_name = expression [, ...] )

Una lista de propiedades de tabla CTAS opcionales, algunas de las cuales son específicas del formato de almacenamiento de datos. Consulte Propiedades de la tabla CTAS.

query

Una consulta SELECT que se utiliza para crear una tabla nueva.

importante

Si tiene previsto crear una consulta con particiones, especifique los nombres de columnas particionadas en último lugar en la lista de columnas en la instrucción SELECT.

[ WITH [ NO ] DATA ]

Si se utiliza WITH NO DATA, se crea una nueva tabla vacía con el mismo esquema que la tabla original.

nota

Para incluir encabezados de columna en el resultado de la consulta, puede utilizar una consulta SELECT simple en lugar de una consulta CTAS. Puede recuperar los resultados de la ubicación de los resultados de la consulta o descargar los resultados directamente por medio de la consola de Athena. Para obtener más información, consulte Trabajo con resultados de las consultas, consultas recientes y archivos de salida .

Propiedades de la tabla CTAS

Cada tabla CTAS de Athena tiene una lista de propiedades de tabla CTAS opcionales que se especifican mediante WITH (property_name = expression [, ...] ). Para obtener información sobre cómo usar estos parámetros, consulte Ejemplos de consultas CTAS.

WITH (property_name = expression [, ...], )
external_location = [location]

Opcional. La ubicación en la que Athena guarda la consulta CTAS en Amazon S3, como en el ejemplo siguiente:

WITH (external_location ='s3://my-bucket/tables/parquet_table/')

Athena no usa la misma ruta para los resultados de la consulta dos veces. Si especifica la ubicación de forma manual, asegúrese de que la ubicación de Amazon S3 que especifica no tenga datos. Athena nunca intenta eliminar los datos. Si desea utilizar la misma ubicación de nuevo, borre manualmente los datos; de lo contrario, su consulta CTAS producirá un error.

Si ejecuta una consulta CTAS que especifica un external_location en un grupo de trabajo que aplica una ubicación de resultados de consulta, la consulta devuelve un mensaje de error. Para ver la ubicación de los resultados de la consulta especificada para el grupo de trabajo, consulte los detalles del grupo de trabajo.

Si el grupo de trabajo anula la configuración del lado cliente para la ubicación de los resultados de la consulta, Athena crea la tabla en la siguiente ubicación:

s3://<workgroup-query-results-location>/tables/<query-id>/

Si no utiliza la propiedad external_location para especificar una ubicación y el grupo de trabajo no anula la configuración del lado del cliente, Athena utiliza la configuración del lado del cliente para la ubicación de resultados de consulta para crear la tabla en la siguiente ubicación:

s3://<query-results-location-setting>/<Unsaved-or-query-name>/<year>/<month/<date>/tables/<query-id>/
format = [storage_format]

El formato de almacenamiento de los resultados de las consultas CTAS, como ORC, PARQUET, AVRO, JSON, ION o TEXTFILE. Por ejemplo, WITH (format = 'PARQUET'). Si se omite, se utiliza PARQUET de forma predeterminada. El nombre de este parámetro format, debe incluirse en minúsculas o la consulta CTAS producirá un error.

partitioned_by = ARRAY[ col_name[,…] ]

Opcional. Una matriz de columnas por las que se particiona la tabla CTAS. Compruebe que los nombres de las columnas particionadas aparecen en último lugar en la lista de columnas en la instrucción SELECT.

bucketed_by = ARRAY[ bucket_name[,…] ]

Una matriz de buckets de datos. Si se omite, Athena no crea un bucket con sus datos en esta consulta.

bucket_count = [int]

El número de buckets de sus datos. Si se omite, Athena no crea un bucket con sus datos.

write_compression = [compression_format]

Tipo de compresión que se va a utilizar para cualquier formato de almacenamiento que permita especificar la compresión. El valor compression_format especifica la compresión que se utilizará cuando los datos se escriben en la tabla. Puede especificar la compresión para los formatos de archivo TEXTFILE, JSON, PARQUET y ORC.

Por ejemplo, si la propiedad format especifica PARQUET como formato de almacenamiento, el valor de write_compression especifica el formato de compresión para Parquet. En este caso, especificar un valor para write_compression equivale a especificar un valor para parquet_compression.

De igual modo, si la propiedad format especifica ORC como formato de almacenamiento, el valor de write_compression especifica el formato de compresión para ORC. En este caso, especificar un valor para write_compression equivale a especificar un valor para orc_compression.

No se pueden especificar varias propiedades de tabla de formato de compresión en la misma consulta CTAS. Por ejemplo, no puede especificar write_compression y parquet_compression en la misma consulta. Lo mismo se aplica para write_compression y orc_compression. Para obtener información sobre los tipos de compresión admitidos para cada formato de archivo, consulte Compatibilidad con la compresión de Athena.

orc_compression = [compression_format]

Tipo de compresión que se utiliza para el formato de archivo ORC cuando se escriben los datos de ORC en la tabla. Por ejemplo, WITH (orc_compression = 'ZLIB'). Los fragmentos del archivo ORC (excepto ORC Postscript) se comprimen con la compresión que especifique. Si se omite, se utiliza la compresión ZLIB de forma predeterminada para ORC.

nota

Por motivos de coherencia, le recomendamos que utilice la propiedad write_compression en lugar de orc_compression. Utilice la propiedad format para especificar el formato de almacenamiento como ORC y, a continuación, utilice la propiedad write_compression para especificar el formato de compresión que utilizará ORC.

parquet_compression = [compression_format]

Tipo de compresión que se utiliza para el formato de archivo Parquet cuando se escriben los datos de Parquet en la tabla. Por ejemplo, WITH (parquet_compression = 'SNAPPY'). Esta compresión se aplica a los fragmentos de columna de los archivos Parquet. Si se omite, se utiliza la compresión GZIP de forma predeterminada para Parquet.

nota

Por motivos de coherencia, le recomendamos que utilice la propiedad write_compression en lugar de parquet_compression. Utilice la propiedad format para especificar el formato de almacenamiento como PARQUET y, a continuación, utilice la propiedad write_compression para especificar el formato de compresión que utilizará PARQUET.

field_delimiter = [delimiter]

Opcional y específico de los formatos de almacenamiento de datos basados en texto. El delimitador de campo de un solo carácter para los archivos en CSV, TSV y archivos de texto. Por ejemplo, WITH (field_delimiter = ','). Actualmente, no se admiten delimitadores de campos de caracteres múltiples para las consultas CTAS. Si no especifica un delimitador de campo, se utiliza \001 de forma predeterminada.

Ejemplos

Para obtener ejemplos de consultas CTAS, consulte los siguientes recursos.