

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Notas de uso
<a name="r_CREATE_EXTERNAL_TABLE_usage"></a>

Este tema contiene notas de uso para [CREATE EXTERNAL TABLE](r_CREATE_EXTERNAL_TABLE.md). No puede ver los detalles de las tablas de Amazon Redshift Spectrum con los mismos recursos que utiliza para las tablas de Amazon Redshift estándar, como [PG\_TABLE\_DEF](r_PG_TABLE_DEF.md), [STV\_TBL\_PERM](r_STV_TBL_PERM.md), PG\_CLASS o information\_schema. Si su herramienta de análisis o inteligencia empresarial no reconoce las tablas externas de Redshift Spectrum, configure la aplicación para consultar [SVV\_EXTERNAL\_TABLES](r_SVV_EXTERNAL_TABLES.md) y [SVV\_EXTERNAL\_COLUMNS](r_SVV_EXTERNAL_COLUMNS.md).

## CREATE EXTERNAL TABLE AS
<a name="r_CETAS"></a>

En algunos casos, puede ejecutar el comando CREATE EXTERNAL TABLE AS en un catálogo de datos de AWS Glue, un catálogo externo de AWS Lake Formation o un metastore de Apache Hive. En tales casos, se utiliza un rol de AWS Identity and Access Management (IAM) para crear el esquema externo. Este rol de IAM debe tener permisos de lectura y escritura en Amazon S3. 

Si utiliza un catálogo de Lake Formation, el rol de IAM debe tener permiso para crear tablas en el catálogo. En este caso, también debe tener el permiso de ubicación del lago de datos en la ruta de destino de Amazon S3. Este rol de IAM se convierte en el propietario de la nueva tabla AWS Lake Formation.

Para asegurarse de que los nombres de los archivos son únicos, Amazon Redshift utiliza el siguiente formato para el nombre de cada archivo cargado en Amazon S3 de manera predeterminada.

`{{<date>}}_{{<time>}}_{{<microseconds>}}_{{<query_id>}}_{{<slice-number>}}_part_{{<part-number>}}.{{<format>}}`.

 Un ejemplo es `20200303_004509_810669_1007_0001_part_00.parquet`.

Tenga en cuenta lo siguiente al ejecutar el comando CREATE EXTERNAL TABLE AS:
+ La ubicación de Amazon S3 debe estar vacía.
+ Amazon Redshift solo admite los formatos PARQUET y TEXTFILE cuando se utiliza la cláusula STORED AS.
+ No es necesario definir una lista de definición de columna. Los nombres de columna y los tipos de datos de columna de la nueva tabla externa se obtienen directamente de la consulta SELECT.
+ No es necesario definir el tipo de datos de la columna de partición en la cláusula PARTITIONED BY. Si especifica una clave de partición, el nombre de esta columna debe existir en el resultado de la consulta SELECT. Cuando tiene varias columnas de partición, no importa el orden en la consulta SELECT. Amazon Redshift utiliza el orden definido en la cláusula PARTITIONED BY para crear la tabla externa.
+ Amazon Redshift particiona de forma automática los archivos de salida en carpetas de partición en función de los valores de la clave de partición. De manera predeterminada, Amazon Redshift quita las columnas de partición de los archivos de salida.
+ No se admite la cláusula LINES TERMINATED BY 'delimitador'.
+ No se admite la cláusula ROW FORMAT SERDE 'serde\_name'.
+ No se admite el uso de archivos de manifiesto. Por lo tanto, no se puede definir la cláusula LOCATION en un archivo de manifiesto en Amazon S3.
+ Amazon Redshift actualiza de forma automática la propiedad de la tabla 'numRows' al final del comando.
+ La propiedad de tabla 'compression\_type' sólo acepta 'none' o 'snappy' para el formato de archivo PARQUET.
+ Amazon Redshift no admite la cláusula LIMIT en la consulta SELECT externa. En su lugar, puede utilizar una cláusula LIMIT anidada.
+ Puede utilizar STL\_UNLOAD\_LOG para realizar un seguimiento de los archivos que cada operación CREATE EXTERNAL TABLE AS escribe en Amazon S3.

## Permisos necesarios para crear y consultar tablas externas
<a name="r_CREATE_EXTERNAL_TABLE_usage-permissions"></a>

Para crear tablas externas, asegúrese de que es el propietario del esquema externo o un superusuario. Para transferir la propiedad de un esquema externo, utilice [ALTER SCHEMA](r_ALTER_SCHEMA.md). En el siguiente ejemplo, se modifica el propietario del esquema `spectrum_schema` a `newowner`.

```
alter schema spectrum_schema owner to newowner;
```

Para ejecutar una consulta de Redshift Spectrum, necesita los siguientes permisos:
+ Permiso de uso para el esquema 
+ Permiso para crear tablas temporales en la base de datos actual 

En el siguiente ejemplo, se concede permiso de uso para el esquema `spectrum_schema` al grupo de usuarios `spectrumusers`.

```
grant usage on schema spectrum_schema to group spectrumusers;
```

En el siguiente ejemplo, se concede un permiso temporal para la base de datos `spectrumdb` al grupo de usuarios `spectrumusers`. 

```
grant temp on database spectrumdb to group spectrumusers;
```

## Pseudocolumnas
<a name="r_CREATE_EXTERNAL_TABLE_usage-pseudocolumns"></a>

De manera predeterminada, Amazon Redshift crea tablas externas con las pseudocolumnas *$path* y *$size*. Seleccione estas columnas para ver la ruta a los archivos de datos en Amazon S3 y el tamaño de los archivos de datos de cada fila devuelta por una consulta. Los nombres de las columnas *$path* y *$size* deben estar delimitados con comillas dobles. Las cláusulas *SELECT \** no devuelven las pseudocolumnas. Debe incluir explícitamente los nombres de columna *$path* y *$size* en la consulta, tal y como se muestra en el siguiente ejemplo.

```
select "$path", "$size"
from spectrum.sales_part
where saledate = '2008-12-01';
```

Puede deshabilitar la creación de pseudocolumnas en una sesión estableciendo el parámetro de configuración *spectrum\_enable\_pseudo\_columns* en *false*. 

**importante**  
La selección de *$size* o *$path* genera cargos, ya que Redshift Spectrum analiza los archivos de datos en Amazon S3 para determinar el tamaño del conjunto de resultados. Para obtener más información, consulte [Precios de Amazon Redshift](https://aws.amazon.com/redshift/pricing/).

## Configuración de opciones de control de datos
<a name="r_CREATE_EXTERNAL_TABLE_usage-data-handling"></a>

Puede establecer parámetros de tabla para especificar el control de entrada de los datos que se consultan en tablas externas, incluidos los siguientes: 
+ Caracteres sobrantes en columnas que contengan datos de VARCHAR, CHAR y cadenas. Para obtener más información, consulte la propiedad de tabla externa `surplus_char_handling`.
+ Caracteres no válidos en columnas que contengan datos de VARCHAR, CHAR y cadenas. Para obtener más información, consulte la propiedad de tabla externa `invalid_char_handling`.
+ Carácter de reemplazo que se utilizará al especificar REPLACE para la propiedad de tabla externa `invalid_char_handling`.
+ Control de desbordamiento de conversión en columnas que contengan datos enteros y decimales. Para obtener más información, consulte la propiedad de tabla externa `numeric_overflow_handling`.
+ Surplus\_bytes\_handling para especificar la gestión de entrada de los bytes sobrantes en las columnas que contienen datos varbyte. Para obtener más información, consulte la propiedad de tabla externa `surplus_bytes_handling`.