

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

# Esquemas externos en Amazon Redshift Spectrum
<a name="c-spectrum-external-schemas"></a>

En este tema se describe cómo crear y usar esquemas externos con Redshift Spectrum. Los esquemas externos son conjuntos de tablas que se utilizan como referencias para acceder a datos fuera del clúster de Amazon Redshift. Estas tablas contienen metadatos sobre los datos externos que lee Redshift Spectrum.

Todas las tablas externas deben crearse en un esquema externo, que puede crear utilizando una instrucción [CREATE EXTERNAL SCHEMA](r_CREATE_EXTERNAL_SCHEMA.md). 

**nota**  
Algunas aplicaciones utilizan indistintamente el término *base de datos* y *esquema*. En Amazon Redshift, se utiliza el término *esquema*. 

Un esquema externo de Amazon Redshift referencia una base de datos externa en un catálogo de datos externo. Puede crear la base de datos externa en Amazon Redshift, [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/catalog.html), [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro) o un metastore de Apache Hive, como [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html). Si crea una base de datos externa en Amazon Redshift, la base de datos se encuentra en el catálogo de datos de Athena. Para crear una base de datos en un metaalmacén Hive, necesita crear la base de datos en su aplicación Hive.

Amazon Redshift necesita autorización para obtener acceso al catálogo de datos de Athena y a los archivos de datos de Amazon S3 en su nombre. Para proporcionar esa autorización, primero cree un rol de AWS Identity and Access Management (IAM). Después tiene que adjuntar el rol al clúster y proporcionar el nombre de recurso de Amazon (ARN) para ese rol en la instrucción `CREATE EXTERNAL SCHEMA` de Amazon Redshift. Para obtener más información acerca de la autorización , consulte [Políticas de IAM para Amazon Redshift Spectrum](c-spectrum-iam-policies.md).

Para crear una base de datos externa en el mismo momento en que crea un esquema externo, especifique el `FROM DATA CATALOG` e incluya la cláusula `CREATE EXTERNAL DATABASE` en su instrucción `CREATE EXTERNAL SCHEMA`. 

En el siguiente ejemplo, se crea un esquema externo denominado `spectrum_schema` utilizando la base de datos externa `spectrum_db`.

```
create external schema spectrum_schema from data catalog 
database 'spectrum_db' 
iam_role 'arn:aws:iam::123456789012:role/MySpectrumRole'
create external database if not exists;
```

Si administra un catálogo de datos con Athena, especifique el nombre de la base de datos de Athena y la región de AWS en la que se encuentra el catálogo de datos de Athena. 

En el siguiente ejemplo, se crea un esquema externo mediante la base de datos `sampledb` predeterminada en el catálogo de datos de Athena.

```
create external schema athena_schema from data catalog 
database 'sampledb' 
iam_role 'arn:aws:iam::123456789012:role/MySpectrumRole' 
region 'us-east-2';
```

**nota**  
El parámetro `region` referencia la región de AWS en la que se encuentra el catálogo de datos de Athena y no a la ubicación de los archivos de datos de Amazon S3.

Si administra el catálogo de datos mediante un metastore de Hive, como Amazon EMR, sus grupos de seguridad se deben configurar de manera tal que permitan el tráfico entre los clústeres. 

En la instrucción CREATE EXTERNAL SCHEMA, especifique la opción `FROM HIVE METASTORE` e incluya el Uniform Resource Identifier (URI, Identificador uniforme de recursos) y el número de puerto del metaalmacén. En el siguiente ejemplo, se crea un esquema externo a través de una base de datos de metaalmacén Hive denominada `hive_db`.

```
create external schema hive_schema
from hive metastore
database 'hive_db'
uri '172.10.10.10' port 99
iam_role 'arn:aws:iam::123456789012:role/MySpectrumRole'
```

Para ver los esquemas externos para su clúster, consulte la tabla de catálogo PG\$1EXTERNAL\$1SCHEMA o la vista SVV\$1EXTERNAL\$1SCHEMAS. En el siguiente ejemplo, se consulta SVV\$1EXTERNAL\$1SCHEMAS, que combina PG\$1EXTERNAL\$1SCHEMA y PG\$1NAMESPACE.

```
select * from svv_external_schemas
```

Para ver la sintaxis completa del comando y ejemplos, consulte [CREATE EXTERNAL SCHEMA](r_CREATE_EXTERNAL_SCHEMA.md).

## Uso de catálogos externos en Amazon Redshift Spectrum
<a name="c-spectrum-external-catalogs"></a>

Los metadatos para las bases de datos y las tablas externas de Amazon Redshift Spectrum se almacenan en un catálogo de datos externo. De manera predeterminada, los metadatos de Redshift Spectrum se almacenan en un catálogo de datos de Athena. Puede ver y administrar bases de datos y tablas de Redshift Spectrum en su consola de Athena. 

También puede crear y administrar bases de datos y tablas externas mediante el lenguaje de definición de datos (DDL) de Hive a través de Athena o un metastore de Hive, como Amazon EMR. 

**nota**  
Se recomienda que utilice Amazon Redshift para crear y administrar las bases de datos y las tablas externas de Redshift Spectrum.

### Visualización de las bases de datos de Redshift Spectrum en Athena y AWS Glue
<a name="c-spectrum-athena-external-catalogs"></a>

Puede crear una base de datos externa que incluye la cláusula CREATE EXTERNAL DATABASE IF NOT EXISTS como parte de su instrucción CREATE EXTERNAL SCHEMA. En estos casos, los metadatos de la base de datos externa se almacenan en su catálogo de datos. Los metadatos para las tablas externas que cree calificadas por el esquema externo también se almacenan en su catálogo de datos de . 

Athena y AWS Glue mantienen un catálogo de datos por cada Región de AWS admitida. Para ver los metadatos de la tabla, inicie sesión en Athena o la consola de AWS Glue. En Athena, elija **Data sources** (Orígenes de datos), su AWS Glue y, a continuación, vea los detalles de su base de datos. En AWS Glue, elija **Databases** (Bases de datos), su base de datos externa y luego vea los detalles de su base de datos. 

Si crea y administra las tablas externas con Athena, registre la base de datos con CREATE EXTERNAL SCHEMA. Por ejemplo, el siguiente comando registra la base de datos de Athena denominada `sampledb`.

```
create external schema athena_sample
from data catalog
database 'sampledb'
iam_role 'arn:aws:iam::123456789012:role/mySpectrumRole'
region 'us-east-1';
```

Cuando consulta la vista de sistema SVV\$1EXTERNAL\$1TABLES, ve las tablas de la base de datos `sampledb` de Athena y también las tablas que creó en Amazon Redshift.

```
select * from svv_external_tables;
```

```
schemaname    | tablename        | location                                               
--------------+------------------+--------------------------------------------------------
athena_sample | elb_logs         | s3://athena-examples/elb/plaintext           
athena_sample | lineitem_1t_csv  | s3://myspectrum/tpch/1000/lineitem_csv                
athena_sample | lineitem_1t_part | s3://myspectrum/tpch/1000/lineitem_partition          
spectrum      | sales            | s3://redshift-downloads/tickit/spectrum/sales          
spectrum      | sales_part       | s3://redshift-downloads/tickit/spectrum/sales_part
```

### Registro de una base de datos de metaalmacén Apache Hive
<a name="c-spectrum-hive-metastore"></a>

Si crea tablas externas en un metaalmacén Apache Hive, puede usar CREATE EXTERNAL SCHEMA para registrar esas tablas en Redshift Spectrum. 

En la instrucción CREATE EXTERNAL SCHEMA, especifique la cláusula FROM HIVE METASTORE y brinde el Uniform Resource Identifier (URI, Identificador uniforme de recursos) y el número de puerto del metaalmacén Hive. El rol de IAM debe incluir un permiso de acceso para Amazon S3, aunque no necesita permisos para Athena. En el siguiente ejemplo, se registra un metaalmacén Hive. 

```
create external schema if not exists hive_schema
from hive metastore
database 'hive_database'
uri 'ip-10-0-111-111.us-west-2.compute.internal' port 9083 
iam_role 'arn:aws:iam::123456789012:role/mySpectrumRole';
```

### Habilitación del acceso del clúster de Amazon Redshift al clúster de Amazon EMR
<a name="c-spectrum-enabling-emr-access"></a>

Si el metastore de Hive está en Amazon EMR, debe conceder al clúster de Amazon Redshift acceso a su clúster de Amazon EMR. Para ello, crea un grupo de seguridad de Amazon EC2. A continuación, permite todo el tráfico entrante al grupo de seguridad de EC2 procedente del grupo de seguridad del clúster de Amazon Redshift y del grupo de seguridad del clúster de Amazon EMR. Luego, agrega la seguridad de EC2 tanto al clúster de Amazon Redshift como al de Amazon EMR.

**Visualización del nombre del grupo de seguridad de su clúster de Amazon Redshift**

Para mostrar el grupo de seguridad, haga lo siguiente:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon Redshift en [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/).

1. En el menú de navegación, elija **Clusters** (Clústeres) y, a continuación, elija el clúster de la lista para abrir sus detalles.

1. Elija **Properties** (Propiedades) y vea la sección **Network and security** (Configuración de redes y seguridad). 

1. Busque su grupo de seguridad en **VPC security group** (Grupo de seguridad de la VPC) y anótelo. 

****

**Visualización del nombre del grupo de seguridad del nodo maestro de Amazon EMR**

1. Abra su clúster de Amazon EMR. Para obtener más información, consulte [Uso de configuraciones de seguridad para definir la seguridad del clúster](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html) en la *Guía de administración de Amazon EMR*.

1. En **Security and access** (Seguridad y acceso), anote el nombre del grupo de seguridad del nodo maestro de Amazon EMR.  
![\[Captura de pantalla en la que se destaca el nombre del grupo de seguridad del nodo maestro de Amazon EMR en la consola de Amazon EMR.\]](http://docs.aws.amazon.com/es_es/redshift/latest/dg/images/spectrum-emr-security-groups.png)

**Para crear o modificar un grupo de seguridad de Amazon EC2 para permitir la conexión entre Amazon Redshift y Amazon EMR**

1. En el panel de Amazon EC2, elija **Security Groups** (Grupos de seguridad). Para obtener más información, consulte [Reglas del grupo de seguridad](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules.html) en la *Guía del usuario de Amazon EC2*. 

1. Elija **Create Security Group** (Crear grupo de seguridad). 

1. Si utiliza una VPC, elija la VPC en la que estén el clúster de Amazon Redshift y el de Amazon EMR. 

1. Agregue una regla de entrada. 

   1. En **Type** (Tipo), elija **Custom TCP** (TCP personalizada). 

   1. En **Source** (Origen), seleccione **Custom** (Personalizado). 

   1. Ingrese el nombre del grupo de seguridad de Amazon Redshift. 

1. Agregue otra regla de entrada. 

   1. En **Type** (Tipo), seleccione **TCP**. 

   1. En **Port Range** (Rango de puertos), escriba **9083**.
**nota**  
El puerto predeterminado para EMR HMS es 9083. Si su HMS utiliza un puerto diferente, especifique ese puerto en la regla de entrada y en la definición del esquema externo. 

   1. En **Source** (Origen), seleccione **Custom** (Personalizado). 

1. Ingrese un nombre y una descripción para el grupo de seguridad. 

1. Elija **Create Security Group** (Crear grupo de seguridad). 

**Para agregar el grupo de seguridad de Amazon EC2 que creó en el procedimiento anterior al clúster de Amazon Redshift**

1. En Amazon Redshift, elija el clúster. 

1. Seleccione **Properties** (Propiedades). 

1. Vea la sección **Network and security settings** (Configuración de redes y seguridad) y, a continuación, elija **Edit** (Editar). 

1. En la opción **VPC security group** (Grupo de seguridad de la VPC), elija el nuevo nombre del grupo de seguridad. 

1. Elija **Save changes** (Guardar cambios). 

**Para agregar el grupo de seguridad de Amazon EC2 a su clúster de Amazon EMR**

1. En Amazon EMR, elija el clúster. Para obtener más información, consulte [Uso de configuraciones de seguridad para definir la seguridad del clúster](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html) en la *Guía de administración de Amazon EMR*.

1. En **Hardware**, seleccione el enlace del nodo principal. 

1. Elija el enlace en la columna **EC2 Instance ID** (ID de instancia EC2).   
![\[Captura de pantalla en la que se destaca un valor de ID de instancia de Amazon EC2 en la consola de Amazon EMR.\]](http://docs.aws.amazon.com/es_es/redshift/latest/dg/images/spectrum-emr-add-security-group.png)

1. En **Actions** (Acciones), elija **Security** (Seguridad) y, luego, **Change security groups** (Cambiar grupos de seguridad). 

1. En **Associated sercurity groups** (Grupos de seguridad asociados), elija el nuevo grupo de seguridad y, luego, **Add security group** (Agregar grupo de seguridad). 

1. Seleccione **Save**. 