CREATE EXTERNAL TABLE - Amazon Redshift

CREATE EXTERNAL TABLE

Crea una nueva tabla externa en el esquema especificado. Todas las tablas externas deben crearse en un esquema externo. La ruta de búsqueda no es compatible con esquemas externos y tablas externas. Para obtener más información, consulte CREATE EXTERNAL SCHEMA.

Además de las tablas externas creadas con el comando CREATE EXTERNAL TABLE, Amazon Redshift puede referencia tablas externas definidas en un catálogo de AWS Glue o AWS Lake Formation, o bien, en un metastore de Apache Hive. Utilice el comando CREATE EXTERNAL SCHEMA para registrar una base de datos externa definida en el catálogo externo y para hacer que las tablas externas estén disponibles para usarse en Amazon Redshift. Si la tabla externa ya existe en un catálogo de AWS Glue o AWS Lake Formation o en un metastore de Hive, no necesita crear la tabla con CREATE EXTERNAL TABLE. Para ver las tablas externas, consulte la vista del sistema SVV_EXTERNAL_TABLES.

Si ejecuta el comando CREATE EXTERNAL TABLE AS, puede crear una tabla externa basada en la definición de la columna de una consulta y escribir los resultados de esa consulta en Amazon S3. Los resultados están en Apache Parquet o formato de texto delimitado. Si la tabla externa tiene una clave o claves de partición, Amazon Redshift particiona los archivos nuevos según esas claves de partición y registra las particiones nuevas en el catálogo externo de forma automática. Para obtener más información acerca de CREATE EXTERNAL TABLE AS, consulte Notas de uso.

Puede consultar una tabla externa mediante la misma sintaxis SELECT que utiliza con otras tablas de Amazon Redshift. También puede utilizar la sintaxis INSERT para escribir archivos nuevos en la ubicación de la tabla externa en Amazon S3. Para obtener más información, consulte INSERT (tabla externa).

Para crear una vista con una tabla externa, incluya la cláusula WITH NO SCHEMA BINDING en la instrucción CREATE VIEW.

No puede ejecutar CREATE EXTERNAL TABLE en una transacción (BEGIN … END). Para obtener más información acerca de las transacciones, consulte Aislamiento serializable.

Privilegios necesarios

Para crear tablas externas, debe ser el propietario del esquema externo o un superusuario. Para transferir la propiedad de un esquema externo, use ALTER SCHEMA para cambiar el propietario. El acceso a tablas externas está controlado por el acceso al esquema externo. No puede usar permisos GRANT o REVOKE en una tabla externa. En su lugar, conceda o revoque USAGE en el esquema externo.

Las Notas de uso tienen información adicional sobre permisos específicos para tablas externas.

Sintaxis

CREATE EXTERNAL TABLE
external_schema.table_name
(column_name data_type [, …] )
[ PARTITIONED BY (col_name data_type [, … ] )]
[ { ROW FORMAT DELIMITED row_format |
  ROW FORMAT SERDE 'serde_name'
  [ WITH SERDEPROPERTIES ( 'property_name' = 'property_value' [, ...] ) ] } ]
STORED AS file_format
LOCATION { 's3://bucket/folder/' | 's3://bucket/manifest_file' }
[ TABLE PROPERTIES ( 'property_name'='property_value' [, ...] ) ]

A continuación, se muestra la sintaxis de CREATE EXTERNAL TABLE AS.

CREATE EXTERNAL TABLE
external_schema.table_name
[ PARTITIONED BY (col_name [, … ] ) ]
[ ROW FORMAT DELIMITED row_format ]
STORED AS file_format
LOCATION { 's3://bucket/folder/' }
[ TABLE PROPERTIES ( 'property_name'='property_value' [, ...] ) ]
 AS
 { select_statement }
         

Parámetros

external_schema.table_name

El nombre de la tabla que se creará, clasificada por un nombre de esquema externo. Las tablas externas deben crearse en un esquema externo. Para obtener más información, consulte CREATE EXTERNAL SCHEMA.

La longitud máxima del nombre de la tabla es de 127 bytes; los nombres más largos se truncan en 127 bytes. Puede usar caracteres multibyte UTF-8 de hasta un máximo de cuatro bytes. Amazon Redshift establece un límite de 9900 tablas por clúster, incluidas las tablas temporales definidas por el usuario y las tablas temporales creadas por Amazon Redshift durante el procesamiento de consultas o el mantenimiento del sistema. De manera opcional, puede completar el nombre de la tabla con el nombre de base de datos. En el siguiente ejemplo, el nombre de base de datos es spectrum_db, el nombre de esquema externo es spectrum_schema y el nombre de tabla es test.

create external table spectrum_db.spectrum_schema.test (c1 int) stored as parquet location 's3://mybucket/myfolder/';

Si no existe la base de datos o el esquema especificados, no se crea la tabla y la instrucción devuelve un error. No puede crear tablas o vistas en las bases de datos del sistema template0, template1, padb_harvest o sys:internal.

El nombre de la tabla debe ser un nombre único para el esquema especificado.

Para obtener más información acerca de los nombres válidos, consulte Nombres e identificadores.

( column_name data_type )

El nombre y el tipo de datos de cada columna que se crea.

La longitud máxima del nombre de la columna es de 127 bytes; los nombres más largos se truncan en 127 bytes. Puede usar caracteres multibyte UTF-8 de hasta un máximo de cuatro bytes. No puede especificar nombres de columna "$path" o "$size". Para obtener más información acerca de los nombres válidos, consulte Nombres e identificadores.

De manera predeterminada, Amazon Redshift crea tablas externas con las pseudocolumnas $path y $size. Puede deshabilitar la creación de pseudocolumnas para una sesión estableciendo el parámetro de configuración spectrum_enable_pseudo_columns en false. Para obtener más información, consulte Pseudocolumnas .

Si las pseudocolumnas están habilitadas, el número máximo de columnas que se pueden definir en una única tabla es 1 598. Si las pseudocolumnas no están habilitadas, el número máximo de columnas que se pueden definir en una única tabla es de 1600.

Si va a crear una "tabla ancha", asegúrese de que la lista de columnas no supere los límites de ancho de las filas para los resultados intermedios durante la carga y el procesamiento de consultas. Para obtener más información, consulte Notas de uso.

Para un comando CREATE EXTERNAL TABLE AS, no es necesaria una lista de columnas, ya que las columnas se obtienen de la consulta.

data_type

Se admiten los siguientes Tipos de datos:

  • SMALLINT (INT2)

  • INTEGER (INT, INT4)

  • BIGINT (INT8)

  • DECIMAL (NUMERIC)

  • REAL (FLOAT4)

  • DOUBLE PRECISION (FLOAT8)

  • BOOLEAN (BOOL)

  • CHAR (CHARACTER)

  • VARCHAR (CHARACTER VARYING)

  • VARBYTE (CHARACTER VARYING): se puede usar con archivos de datos Parquet y ORC, y solo con tablas que no sean de partición.

  • DATE: solo se puede utilizar con archivos de datos de texto, Parquet u ORC, o como una columna de partición.

  • TIMESTAMP

Para DATE, puede utilizar los formatos tal y como se describe a continuación. Para los valores de mes representados mediante dígitos, se admiten los siguientes formatos:

  • mm-dd-yyyy, por ejemplo, 05-01-2017. Esta es la opción predeterminada.

  • yyyy-mm-dd, donde el año está representado por más de 2 dígitos. Por ejemplo, 2017-05-01.

Para los valores de mes representados mediante abreviaturas de tres letras, se admiten los siguientes formatos:

  • mmm-dd-yyyy, por ejemplo, may-01-2017. Esta es la opción predeterminada.

  • dd-mmm-yyyy, donde el año está representado por más de 2 dígitos. Por ejemplo, 01-may-2017.

  • yyyy-mmm-dd, donde el año está representado por más de 2 dígitos. Por ejemplo, 2017-may-01.

En el caso de los valores de año sistemáticamente inferiores a 100, el año se calcula de la siguiente manera:

  • Si el año es inferior a 70, el año se calcula como el año más 2000. Por ejemplo, la fecha 05-01-17 en el formato mm-dd-yyyy se convierte en 05-01-2017.

  • Si el año es inferior a 100 o mayor que 69, el año se calcula como el año más 1900. Por ejemplo, la fecha 05-01-89 en el formato mm-dd-yyyy se convierte en 05-01-1989.

  • Para los valores de año representados por dos dígitos, agregue ceros al principio para representar el año en 4 dígitos.

Los valores de marca temporal de los archivos de texto deben tener el formato yyyy-mm-dd HH:mm:ss.SSSSSS, tal y como se muestra en el siguiente valor de marca temporal: 2017-05-01 11:30:59.000000.

La longitud de una columna VARCHAR se expresa en bytes no en caracteres. Por ejemplo, una columna VARCHAR(12) puede contener 12 caracteres de un byte o 6 caracteres de dos bytes. Cuando se realiza una consulta a una tabla externa, los resultados se truncan para ajustar el tamaño de columna sin devolver un error. Para obtener más información, consulte Almacenamiento y rangos.

Para obtener un rendimiento óptimo, le recomendamos que especifique el menor tamaño de columna que se adapte a sus datos. Para encontrar el tamaño máximo en bytes para los valores de una columna, use la función OCTET_LENGTH. El siguiente ejemplo devuelve el tamaño máximo de valores en la columna de correo electrónico.

select max(octet_length(email)) from users; max --- 62
PARTITIONED BY (col_name data_type [, … ] )

Una cláusula que define una tabla particionada con una o más columnas de partición. Se usa un directorio de datos separado para cada combinación especificada, lo que puede mejorar el rendimiento de la consulta en algunas circunstancias. Las columnas particionadas no existen dentro de los propios datos de la tabla. Recibirá un error si utiliza un valor para col_name (nombre_de_columna) igual al de una columna de la tabla.

Después de crear una tabla con particiones, modifique la tabla mediante una instrucción ALTER TABLE … ADD PARTITION para registrar nuevas particiones en el catálogo externo. Cuando agrega una partición, define la ubicación de la subcarpeta en Amazon S3 que contiene los datos de partición.

Por ejemplo, si la tabla spectrum.lineitem_part se define con PARTITIONED BY (l_shipdate date), ejecute el siguiente comando ALTER TABLE para agregar una partición.

ALTER TABLE spectrum.lineitem_part ADD PARTITION (l_shipdate='1992-01-29') LOCATION 's3://spectrum-public/lineitem_partition/l_shipdate=1992-01-29';

Si utiliza CREATE EXTERNAL TABLE AS, no tendrá que ejecutar ALTER TABLE...ADD PARTITION. Amazon Redshift registra de forma automática las particiones nuevas en el catálogo externo. Amazon Redshift también escribe de forma automática los datos correspondientes en las particiones de Amazon S3 en función de la clave o las claves de partición definidas en la tabla.

Para ver particiones, consulte la vista del sistema SVV_EXTERNAL_PARTITIONS.

nota

Para un comando CREATE EXTERNAL TABLE AS, no es necesario especificar el tipo de datos de la columna de partición porque esta columna se obtiene de la consulta.

ROW FORMAT DELIMITED rowformat (formato_de_fila)

Una cláusula que especifica el formato de los datos subyacentes. Los valores posibles para rowformat (formato_de_fila) son los siguientes:

  • LINES TERMINATED BY 'delimiter'

  • FIELDS TERMINATED BY 'delimiter'

Especifique un solo carácter ASCII para 'delimiter (delimitador)'. Puede especificar caracteres ASCII no imprimibles mediante octales, con el formato '\ddd', donde d es un dígito octal (0-7) hasta “\177”. El siguiente ejemplo especifica el carácter BEL (campana) usando la representación octal.

ROW FORMAT DELIMITED FIELDS TERMINATED BY '\007'

Si se omite ROW FORMAT DELIMITED, el formato predeterminado es DELIMITED FIELDS TERMINATED BY '\A' (inicio de encabezado) y LINES TERMINATED BY '\n' (nueva línea).

ROW FORMAT SERDE 'serde_name (nombre_de_serde)'
[WITH SERDEPROPERTIES ( 'property_name' = 'property_value' [, ...] ) ]

Una cláusula que especifica el formato SERDE para los datos subyacentes.

'serde_name (nombre_de_serde)'

El nombre del SerDe. Puede especificar los siguientes formatos:

  • org.apache.hadoop.hive.serde2.RegexSerDe

  • com.amazonaws.glue.serde.GrokSerDe

  • org.apache.hadoop.hive.serde2.OpenCSVSerde

    Este parámetro admite la siguiente propiedad SerDE para OpenCSvSerde:

    'wholeFile' = 'true'

    Configure la propiedad wholeFile como true para analizar correctamente los nuevos caracteres de línea (\n) dentro de las cadenas citadas para las solicitudes OpenCSV.

  • org.openx.data.jsonserde.JsonSerDe

    • El SERDE JSON también admite archivos Ion.

    • El JSON debe tener un formato correcto.

    • Las marcas temporales en Ion y JSON deben usar el formato ISO8601.

    • Este parámetro admite la siguiente propiedad SerDE para JsonSerDe:

      'strip.outer.array'='true'

      Procesa archivos Ion/JSON que contienen una matriz muy grande encerrada en corchetes exteriores ([ … ]) como si contiene múltiples registros JSON dentro de la matriz.

  • com.amazon.ionhiveserde.IonHiveSerDe

    El formato Amazon ION proporciona formatos de texto y binarios, además de tipos de datos. Para una tabla externa que hace referencia a datos en formato ION, debe asignar cada columna en la tabla externa al elemento correspondiente de los datos de formato ION. Para obtener más información, consulte Amazon Ion. También debe especificar los formatos de entrada y salida.

WITH SERDEPROPERTIES ( 'property_name' = 'property_value' [, ...] ) ]

De manera opcional, especifique los nombres y valores de las propiedades, separados por comas.

Si se omite ROW FORMAT DELIMITED, el formato predeterminado es DELIMITED FIELDS TERMINATED BY '\A' (inicio de encabezado) y LINES TERMINATED BY '\n' (nueva línea).

STORED AS file_format

El formato de archivo para los archivos de datos.

Los formatos válidos son los siguientes:

  • PARQUET

  • RCFILE (para datos que usan ColumnarSerDe únicamente, no LazyBinaryColumnarSerDe)

  • SEQUENCEFILE

  • TEXTFILE (para archivos de texto, incluidos los archivos JSON).

  • ORC

  • AVRO

  • INPUTFORMAT 'input_format_classname' OUTPUTFORMAT 'output_format_classname'

El comando CREATE EXTERNAL TABLE AS solo admite dos formatos de archivo, TEXTFILE y PARQUET.

Para INPUTFORMAT y OUTPUTFORMAT, especifique un nombre de la clase, como se muestra en el siguiente ejemplo:

'org.apache.hadoop.mapred.TextInputFormat'
LOCATION { 's3://bucket/folder/' | 's3://bucket/manifest_file'}

Se trata de la ruta a la carpeta o al bucket de Amazon S3 que contiene los archivos de datos o un archivo de manifiesto donde se incluye una lista de rutas de objetos de Amazon S3. Los buckets deben estar en la misma región de AWS que el clúster de Amazon Redshift. Para obtener una lista de las regiones de AWS admitidas, consulte Consideraciones de Amazon Redshift Spectrum.

Si la ruta especifica un bucket o una carpeta, por ejemplo, 's3://mybucket/custdata/', Redshift Spectrum analiza los archivos en el bucket o la carpeta especificados, además de todas las subcarpetas. Redshift Spectrum omite los archivos ocultos y los archivos que comienzan con un carácter de subrayado.

Si la ruta especifica un archivo de manifiesto, el argumento 's3://bucket/manifest_file' debe referencia de forma explícita un solo archivo; por ejemplo, 's3://mybucket/manifest.txt'. No puede hacer referencia a un prefijo de clave.

El manifiesto es un archivo de texto en formato JSON que muestra la dirección URL de cada archivo que se va a cargar desde Amazon S3 y el tamaño del archivo, en bytes. El URL incluye el nombre del bucket y la ruta de objeto completa para el archivo. Los archivos que se especifican en el manifiesto pueden estar en buckets diferentes, pero todos los buckets deben estar en la misma región de AWS que el clúster de Amazon Redshift. Si un archivo aparece dos veces, este se carga dos veces. En el siguiente ejemplo, se muestra el JSON para un manifiesto que carga tres archivos.

{ "entries": [ {"url":"s3://mybucket-alpha/custdata.1", "meta": { "content_length": 5956875 } }, {"url":"s3://mybucket-alpha/custdata.2", "meta": { "content_length": 5997091 } }, {"url":"s3://mybucket-beta/custdata.1", "meta": { "content_length": 5978675 } } ] }

Puede hacer que la inclusión de un archivo en particular sea obligatoria. Para ello, incluya una opción mandatory en el nivel de archivo en el manifiesto. Cuando consulta una tabla externa con un archivo obligatorio faltante, se produce un error en la instrucción SELECT. Asegúrese de que todos los archivos incluidos en la definición de la tabla externa están presentes. Si no están todos presentes, aparece un error que muestra el primer archivo obligatorio que no se encuentra. En el siguiente ejemplo, se muestra el JSON de un manifiesto con la opción mandatory establecida en true.

{ "entries": [ {"url":"s3://mybucket-alpha/custdata.1", "mandatory":true, "meta": { "content_length": 5956875 } }, {"url":"s3://mybucket-alpha/custdata.2", "mandatory":false, "meta": { "content_length": 5997091 } }, {"url":"s3://mybucket-beta/custdata.1", "meta": { "content_length": 5978675 } } ] }

Para hacer referencia a los archivos creados mediante UNLOAD, puede usar el manifiesto creado mediante UNLOAD con el parámetro MANIFEST. El archivo de manifiesto es compatible con un archivo de manifiesto de COPY de Amazon S3, pero usa claves diferentes. Las claves que no se usan se omiten.

TABLE PROPERTIES ( 'property_name'='property_value' [, ...] )

Una cláusula que establece la definición de tabla de las propiedades de la tabla.

nota

Las propiedades de tabla distinguen entre mayúsculas y minúsculas.

'compression_type'='value (valor)'

Propiedad que establece el tipo de compresión que se va a utilizar si el nombre de archivo no contiene una extensión. Si establece esta propiedad y hay una extensión de archivo, la extensión se omite y se usa el valor establecido por la propiedad. Los valores válidos para el tipo de compresión son los siguientes:

  • bzip2

  • gzip

  • Ninguno

  • snappy

“data_cleansing_enabled”=“true/false”

Esta propiedad establece si el control de datos está activado para la tabla. Cuando “data_cleansing_enabled” se establece en true, el control de datos está activado para la tabla. Cuando “data_cleansing_enabled” se establece en false, el control de datos está desactivado para la tabla. A continuación, se muestra una lista de las propiedades de control de datos en el nivel de la tabla que controla esta propiedad:

  • column_count_mismatch_handling

  • invalid_char_handling

  • numeric_overflow_handling

  • replacement_char

  • surplus_char_handling

Para ver ejemplos, consulte Ejemplos de control de datos.

“invalid_char_handling”=“valor

Especifica la acción que se debe realizar cuando los resultados de la consulta contienen valores de caracteres UTF-8 no válidos. Puede especificar las siguientes acciones:

DISABLED

No lleva a cabo un control de caracteres no válido.

FAIL

Cancela las consultas que devuelven datos que contienen valores UTF-8 no válidos.

SET_TO_NULL

Reemplaza los valores UTF-8 no válidos por valores nulos.

DROP_ROW

Reemplaza cada valor de la fila por un valor nulo.

REPLACE

Reemplaza el carácter no válido por el carácter de reemplazo que se especifique mediante replacement_char.

“replacement_char”=“carácter

Especifica el carácter de reemplazo que se va a utilizar al establecer invalid_char_handling en REPLACE.

“numeric_overflow_handling”=“valor”

Especifica la acción que se debe realizar cuando los datos de ORC contienen un entero (por ejemplo, BIGINT o int64) que es mayor que la definición de columna (por ejemplo, SMALLINT o int16). Puede especificar las siguientes acciones:

DISABLED

El control de caracteres no válidos está desactivado.

FAIL

Cancela la consulta cuando los datos incluyen caracteres no válidos.

SET_TO_NULL

Establece caracteres no válidos en valores nulos.

DROP_ROW

Establece cada valor de la fila como un valor nulo.

'surplus_bytes_handling'='valor'

Especifica cómo controlar los datos que se cargan que superan la longitud del tipo de datos definido para las columnas que contienen datos VARBYTE. De manera predeterminada, Redshift Spectrum establece el valor como nulo para los datos que superan el ancho de la columna.

Puede especificar las siguientes acciones que se realizarán cuando la consulta devuelva datos que superen la longitud del tipo de datos:

SET_TO_NULL

Reemplaza los datos que superan el ancho de la columna por valores nulos.

DISABLED

No lleva a cabo un control de bytes sobrantes.

FAIL

Cancela las consultas que devuelven datos que superan el ancho de la columna.

DROP_ROW

Elimina todas las filas que contienen datos que superan la anchura de columna.

TRUNCATE

Elimina los caracteres que superan el número máximo de caracteres definidos para la columna.

“surplus_char_handling”=“valor

Especifica cómo controlar los datos que se cargan que superan la longitud del tipo de datos definido para las columnas que contienen datos VARCHAR, CHAR o cadenas. De manera predeterminada, Redshift Spectrum establece el valor como nulo para los datos que superan el ancho de la columna.

Puede especificar las siguientes acciones que se deben realizar cuando la consulta devuelva datos que superan el ancho de la columna:

SET_TO_NULL

Reemplaza los datos que superan el ancho de la columna por valores nulos.

DISABLED

No lleva a cabo un control de caracteres sobrantes.

FAIL

Cancela las consultas que devuelven datos que superan el ancho de la columna.

DROP_ROW

Reemplaza cada valor de la fila por un valor nulo.

TRUNCATE

Elimina los caracteres que superan el número máximo de caracteres definidos para la columna.

'column_count_mismatch_handling'='value’

Identifica si el archivo contiene menos o más valores para una fila que el número de columnas especificado en la definición de tabla externa. Esta propiedad solo está disponible para un formato de archivo de texto sin comprimir. Puede especificar las siguientes acciones:

DISABLED

El control de discrepancias en el recuento de columnas está desactivado.

FAIL

No se puede realizar la consulta si se detecta una discrepancia en el recuento de columnas.

SET_TO_NULL

Rellene los valores que faltan con NULL e ignore los valores adicionales de cada fila.

DROP_ROW

Elimine del análisis todas las filas que contengan un error de discrepancia en el recuento de columnas.

'numRows'='row_count'

Una propiedad que establece el valor de numRows para la definición de la tabla. Para actualizar de forma explícita las estadísticas de una tabla externa, establezca la propiedad numRows de manera que indique el tamaño de la tabla. Amazon Redshift no analiza las tablas externas para generar las estadísticas de las tablas que el optimizador de consultas emplea a la hora de crear un plan de consulta. Si no se configuran las estadísticas de tabla para una tabla externa, Amazon Redshift genera un plan de ejecución de consulta basado en un supuesto de que las tablas externas son las más grandes y las tablas locales son las más pequeñas.

'skip.header.line.count'='line_count'

Una propiedad que establece el número de filas que se omiten al principio de cada archivo de código fuente.

'serialization.null.format'=' '

Una propiedad que especifica que Spectrum debe devolver un valor NULL cuando hay una coincidencia exacta con el texto introducido en un campo.

'orc.schema.resolution'='mapping_type' (tipo_de_asignación)

Propiedad que establece el tipo de asignación de columnas en tablas que usan el formato de datos de ORC. Esta propiedad se omite con otros formatos de datos.

Los valores válidos para el tipo de asignación de columnas son los siguientes:

  • name

  • position

Si la propiedad orc.schema.resolution se omite, las columnas se asignan por nombre de manera predeterminada. Si orc.schema.resolution se establece en un valor que no es 'name' ni 'position', las columnas se asignan por posición. Para obtener más información sobre la asignación de columnas, consulte Asignación de columnas de tablas externas a columnas ORC.

nota

El comando COPY realiza asignaciones en archivos de datos de ORC únicamente por posición. La propiedad de tabla orc.schema.resolution no tiene ningún efecto en el comportamiento del comando COPY.

'write.parallel'='on / off’

Una propiedad que establece si CREATE EXTERNAL TABLE AS debe escribir datos en paralelo. De manera predeterminada, CREATE EXTERNAL TABLE AS escribe datos en paralelo en varios archivos, según el número de sectores en el clúster. La opción predeterminada está activada. Cuando 'write.parallel' está desactivado, CREATE EXTERNAL TABLE AS escribe en uno o más archivos de datos en serie en Amazon S3. Esta propiedad de tabla también se aplica a cualquier instrucción INSERT posterior en la misma tabla externa.

‘write.maxfilesize.mb’=‘size’

Se trata de una propiedad que establece el tamaño máximo (en MB) de cada archivo escrito en Amazon S3 con CREATE EXTERNAL TABLE AS. El tamaño debe ser un entero válido entre 5 y 6200. El tamaño máximo de archivo predeterminado es 6200 MB. Esta propiedad de tabla también se aplica a cualquier instrucción INSERT posterior en la misma tabla externa.

'write.kms.key.id'='value'

Puede especificar una clave AWS Key Management Service para habilitar el cifrado del lado del servidor (SSE) para objetos de Amazon S3, donde value es una de las opciones siguientes:

  • auto para utilizar la clave de AWS KMS predeterminada almacenada en el bucket de Amazon S3

  • clave de kms especficada para cifrar los datos

select_statement

Una instrucción que inserta una o más filas en la tabla externa definiendo cualquier consulta. Todas las filas que genera la consulta se escriben en Amazon S3 en formato de texto o Parquet según la definición de tabla.

Encontrará una selección de ejemplos en Ejemplos.