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).

Synopsis

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 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.

Propiedades de 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 = [format]

El formato de los datos de los resultados de la consulta CTAS, como ORC, PARQUET, AVRO, JSON 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.

orc_compression = [format]

El tipo de compresión que se utiliza para los datos ORC. Por ejemplo, WITH (orc_compression = 'ZLIB'). Si se omite, se utiliza la compresión GZIP de forma predeterminada para ORC y otros formatos de almacenamiento de datos admitidos por CTAS.

parquet_compression = [format]

El tipo de compresión que se utiliza para los datos Parquet. Por ejemplo, WITH (parquet_compression = 'SNAPPY'). Si se omite, se utiliza la compresión GZIP de forma predeterminada para Parquet y otros formatos de almacenamiento de datos admitidos por CTAS.

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.

Examples

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