

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Schémas externes dans Amazon Redshift Spectrum
<a name="c-spectrum-external-schemas"></a>

Cette rubrique décrit comment créer et utiliser des schémas externes avec Redshift Spectrum. Les schémas externes sont des ensembles de tables que vous utilisez comme références pour accéder à des données en dehors de votre cluster Amazon Redshift. Ces tables contiennent des métadonnées relatives aux données externes lues par Redshift Spectrum.

Toutes les tables externes doivent être créées dans un schéma externe, que vous créez à l’aide d’une instruction [CREATE EXTERNAL SCHEMA](r_CREATE_EXTERNAL_SCHEMA.md). 

**Note**  
Dans certaines applications, les termes *base de données* et *schéma* sont utilisés indifféremment. Dans Amazon Redshift, nous utilisons le terme *schéma*. 

Un schéma externe Amazon Redshift fait référence à une base de données externe dans un catalogue de données externe. Vous pouvez créer la base de données externe dans Amazon Redshift, dans [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/catalog.html), dans [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro) ou dans un métastore Apache Hive, tel qu’[Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html). Si vous la créez une base de données externe dans Amazon Redshift, elle réside dans le catalogue de données Athena. Pour créer une base de données dans un metastore Hive, vous devez la créer dans votre application Hive.

Amazon Redshift a besoin d’une autorisation pour accéder au catalogue de données dans Athena et aux fichiers de données dans Amazon S3 en votre nom. Pour fournir cette autorisation, vous devez d'abord créer un rôle Gestion des identités et des accès AWS (IAM). Ensuite, vous attachez le rôle à votre cluster et fournissez le Amazon Resource Name (ARN) pour le rôle dans la déclaration Amazon Redshift `CREATE EXTERNAL SCHEMA`. Pour de plus amples informations concernant l’autorisation, consultez [Politiques IAM pour Amazon Redshift Spectrum](c-spectrum-iam-policies.md).

Pour créer une base de données externe en même temps que vous créez un schéma externe, spécifiez `FROM DATA CATALOG` et incluez la clause `CREATE EXTERNAL DATABASE` dans l’instruction `CREATE EXTERNAL SCHEMA`. 

L’exemple suivant permet de créer un schéma externe nommé `spectrum_schema` en utilisant la base de données externe `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 vous gérez votre catalogue de données à l’aide d’Athena, indiquez le nom de la base de données Athena et la région AWS dans laquelle se trouve le catalogue de données Athena. 

L’exemple suivant crée un schéma externe en utilisant la base de données `sampledb` par défaut dans le catalogue de données Athena.

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

**Note**  
Le `region` paramètre fait référence à la AWS région dans laquelle se trouve le catalogue de données Athena, et non à l'emplacement des fichiers de données dans Amazon S3.

Si vous gérez votre catalogue de données à l’aide d’un métastore Hive, comme Amazon EMR, vos groupes de sécurité doivent être configurés pour autoriser le trafic entre les clusters. 

Dans l’instruction CREATE EXTERNAL SCHEMA, spécifiez `FROM HIVE METASTORE` et incluez l’URI et le numéro de port du metastore. L’exemple suivant permet de créer un schéma externe en utilisant une base de données de metastore Hive nommée `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'
```

Pour afficher les schémas externes correspondant à votre cluster, interrogez la table de catalogue PG\$1EXTERNAL\$1SCHEMA ou la vue SVV\$1EXTERNAL\$1SCHEMAS. L’exemple suivant interroge SVV\$1EXTERNAL\$1SCHEMAS qui joint PG\$1EXTERNAL\$1SCHEMA et PG\$1NAMESPACE.

```
select * from svv_external_schemas
```

Pour connaître la syntaxe complète de la commande et voir des exemples, consultez [CREATE EXTERNAL SCHEMA](r_CREATE_EXTERNAL_SCHEMA.md).

## Utiliser des catalogues externes dans Amazon Redshift Spectrum
<a name="c-spectrum-external-catalogs"></a>

Les métadonnées des bases de données externes et des tables externes d’Amazon Redshift Spectrum sont stockées dans un catalogue de données externes. Par défaut, les métadonnées de Redshift Spectrum sont stockées dans un catalogue de données Athena. Vous pouvez afficher et gérer les bases de données et les tables Redshift Spectrum dans votre console Athena. 

Vous pouvez également créer et gérer des bases de données et des tables externes à l’aide du langage de définition de données (DDL) Hive en utilisant Athena ou un métastore Hive, tel que Amazon EMR. 

**Note**  
Nous vous recommandons d’utiliser Amazon Redshift pour créer et gérer des bases de données externes et des tables externes dans Redshift Spectrum.

### Affichage des bases de données Redshift Spectrum dans Athena et AWS Glue
<a name="c-spectrum-athena-external-catalogs"></a>

Vous pouvez créer une base de données externe en incluant la clause CREATE EXTERNAL DATABASE IF NOT EXISTS dans votre instruction CREATE EXTERNAL SCHEMA. Le cas échéant, les métadonnées de la base de données externe sont stockées dans votre catalogue de données. Tout comme les métadonnées relatives aux tables externes que vous créez qui sont qualifiées par le schéma externe sont également stockées dans votre catalogue de données . 

Athena et AWS Glue maintenez un catalogue de données pour chaque support pris en charge. Région AWS Pour consulter les métadonnées d'une table, connectez-vous à Athena ou AWS Glue à la console. Dans Athena, choisissez **Sources de données**, votre AWS Glue, puis consultez les détails de votre base de données. Dans AWS Glue, choisissez **Bases de données**, votre base de données externe, puis affichez les détails de votre base de données. 

Si vous créez et gérez vos tables externes à l’aide d’Athena, enregistrez la base de données en utilisant CREATE EXTERNAL SCHEMA. Par exemple, la commande suivante enregistre la base de données Athena nommée `sampledb`.

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

Lorsque vous interrogez la vue système SVV\$1EXTERNAL\$1TABLES, vous voyez les tables dans la base de données Athena `sampledb` et également celles que vous avez créées dans 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
```

### Enregistrement d’une base de données de metastore Apache Hive
<a name="c-spectrum-hive-metastore"></a>

Si vous créez des tables externes dans un metastore Apache Hive, vous pouvez les enregistrer dans Redshift Spectrum à l’aide de l’instruction CREATE EXTERNAL SCHEMA. 

Dans l’instruction CREATE EXTERNAL SCHEMA, spécifiez la clause FROM HIVE METASTORE, ainsi que l’URI et le numéro de port du metastore Hive. Le rôle IAM doit inclure l’autorisation d’accéder à Amazon S3 mais ne nécessite aucune autorisation Athena. L’exemple suivant enregistre un metastore 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';
```

### Permettre à votre cluster Amazon Redshift d’accéder à votre cluster Amazon EMR
<a name="c-spectrum-enabling-emr-access"></a>

Si votre métastore Hive se trouve dans Amazon EMR, vous devez donner à votre cluster Amazon Redshift l’accès à votre cluster Amazon EMR. Pour ce faire, vous créez un groupe de sécurité Amazon EC2. Vous autorisez ensuite tout le trafic entrant vers le groupe de sécurité EC2 à partir du groupe de sécurité de votre cluster Amazon Redshift et du groupe de sécurité de votre cluster Amazon EMR. Ensuite, vous ajoutez la sécurité EC2 à votre cluster Amazon Redshift et à votre cluster Amazon EMR.

**Afficher le nom du groupe de sécurité du cluster Amazon Redshift**

Pour afficher un groupe de sécurité, procédez comme suit :

1. Connectez-vous à la console Amazon Redshift AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Dans le menu de navigation, choisissez **Clusters**, puis choisissez le cluster dans la liste pour ouvrir ses détails.

1. Choisissez **Properties (Propriétés)** et affichez la section **Network and security settings (Paramètres de réseau et de sécurité)**. 

1. Recherchez votre groupe de sécurité dans **VPC security group (Groupe de sécurité VPC)** et prenez-en note. 

****

**Afficher le nom du groupe de sécurité du nœud principal Amazon EMR**

1. Ouvrez votre cluster Amazon EMR. Pour plus d’informations, consultez [Utiliser des configurations de sécurité pour configurer la sécurité du cluster](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html) dans le *Guide de gestion Amazon EMR*.

1. Sous **Security and access (Sécurité et accès)**, notez le nom du groupe de sécurité du nœud principal Amazon EMR.  
![\[Capture d’écran mettant en évidence le nom du groupe de sécurité du nœud principal Amazon EMR dans la console Amazon EMR.\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/dg/images/spectrum-emr-security-groups.png)

**Pour créer ou modifier un groupe de sécurité Amazon EC2 pour autoriser la connexion entre Amazon Redshift et Amazon EMR**

1. Dans le tableau de bord Amazon EC2, choisissez **Security groups (Groupes de sécurité)**. Pour plus d’informations, consultez [Règles des groupes de sécurité](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules.html) dans le *Guide de l’utilisateur Amazon EC2*. 

1. Sélectionnez **Create security group** (Créer un groupe de sécurité). 

1. Si vous utilisez VPC, choisissez le VPC dans lequel se trouvent vos clusters Amazon Redshift et Amazon EMR. 

1. Ajoutez une règle entrante. 

   1. Pour **Type**, choisissez **Custom TCP (TCP personnalisé)**. 

   1. Pour **Source**, choisissez **Personnalisé**. 

   1. Entrez le nom de votre groupe de sécurité Amazon Redshift. 

1. Ajoutez une autre règle entrante. 

   1. Pour **Type**, choisissez **TCP**. 

   1. Pour **Plage de ports**, entrez **9083**.
**Note**  
Le port par défaut pour un HMS EMR est 9083. Si votre HMS utilise un port distinct, spécifiez ce port dans la règle entrante et dans la définition de schéma externe. 

   1. Pour **Source**, choisissez **Personnalisé**. 

1. Saisissez un nom et une description pour le groupe de sécurité. 

1. Sélectionnez **Create security group** (Créer un groupe de sécurité). 

**Pour ajouter le groupe de sécurité Amazon EC2 que vous avez créé dans la procédure précédente à votre cluster Amazon Redshift**

1. Dans Amazon Redshift, choisissez votre cluster. 

1. Choisissez **Propriétés**. 

1. Affichez les **paramètres réseau et de sécurité** et choisissez **Edit (Modifier)**. 

1. Dans **VPC security group (Groupe de sécurité VPC)**, choisissez le nouveau nom du groupe de sécurité. 

1. Sélectionnez **Enregistrer les modifications**. 

**Pour ajouter le groupe de sécurité Amazon EC2 à votre cluster Amazon EMR**

1. Dans Amazon EMR, choisissez votre cluster. Pour plus d’informations, consultez [Utiliser des configurations de sécurité pour configurer la sécurité du cluster](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html) dans le *Guide de gestion Amazon EMR*.

1. Sous **Hardware (Matériel)**, choisissez le lien correspondant au nœud principal. 

1. Choisissez le lien dans la colonne **ID d’instance EC2**.   
![\[Capture d’écran mettant en évidence une valeur d’identifiant d’instance Amazon EC2 dans la console Amazon EMR.\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/dg/images/spectrum-emr-add-security-group.png)

1. Choisissez **Actions**, **Security (Sécurité)**, **Change security groups (Modifier les groupes de sécurité)**. 

1. Dans **Associated sercurity groups (Groupes de sécurité associés)**, choisissez le nouveau groupe de sécurité, puis choisissez **Add security group (Ajouter un groupe de sécurité)**. 

1. Choisissez **Enregistrer**. 