

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Schemi esterni in Amazon Redshift Spectrum
<a name="c-spectrum-external-schemas"></a>

In questo argomento viene illustrato come creare e utilizzare gli schemi esterni con Redshift Spectrum. Gli schemi esterni sono raccolte di tabelle che utilizzi come riferimenti per accedere ai dati all’esterno del cluster Amazon Redshift. Queste tabelle contengono i metadati sui dati esterni letti da Redshift Spectrum.

Tutte le tabelle esterne devono essere create in uno schema esterno, che crei utilizzando un'istruzione [CREATE EXTERNAL SCHEMA](r_CREATE_EXTERNAL_SCHEMA.md). 

**Nota**  
Alcune applicazioni utilizzano i termini *database* e *schema* in modo interscambiabile. In Amazon Redshift viene utilizzato il termine *schema*. 

Uno schema esterno Amazon Redshift fa riferimento a un database esterno in un catalogo dati esterno. È possibile creare un database esterno in Amazon Redshift, in [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/catalog.html), in [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro) o in un metastore Apache Hive, come [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html). Se si crea un database esterno in Amazon Redshift, il database si trova nel catalogo dati di Athena. Per creare un database in un metastore Hive, devi crearlo nell'applicazione Hive.

Amazon Redshift deve essere autorizzato ad accedere al catalogo di dati in Athena e ai file di dati in Amazon S3 per tuo conto. Per fornire tale autorizzazione, devi prima creare un AWS Identity and Access Management ruolo (IAM). Successivamente, si collega il ruolo al cluster e si fornisce l'Amazon Resource Name (ARN) per il ruolo nell'istruzione `CREATE EXTERNAL SCHEMA` di Amazon Redshift. Per ulteriori informazioni sull'autorizzazione , consultare [Policy IAM per Amazon Redshift Spectrum](c-spectrum-iam-policies.md).

Per creare un database esterno nello stesso tempo, devi creare uno schema esterno, specificare `FROM DATA CATALOG` e includere la clausola `CREATE EXTERNAL DATABASE` nell'istruzione `CREATE EXTERNAL SCHEMA`. 

L'esempio seguente crea uno schema esterno denominato `spectrum_schema` utilizzando il database esterno `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;
```

Se il catalogo dati viene gestito mediante Athena, specificare il nome di database Athena e la regione AWS in cui si trova il catalogo dati Athena. 

Nell'esempio seguente viene creato uno schema esterno che utilizza il database `sampledb` di default nel catalogo dati di Athena.

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

**Nota**  
Il `region` parametro fa riferimento alla AWS regione in cui si trova il catalogo dati Athena, non alla posizione dei file di dati in Amazon S3.

Se il catalogo di dati viene gestito mediante un metastore Hive, come Amazon EMR, i gruppi di sicurezza devono essere configurati per consentire il traffico tra i cluster. 

Nell'istruzione CREATE EXTERNAL SCHEMA, specifica `FROM HIVE METASTORE` e includi l'URI e il numero di porta del metastore. L'esempio seguente crea uno schema esterno che utilizza un database metastore Hive denominato `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'
```

Per visualizzare gli schemi esterni per il cluster, eseguire una query sulla tabella di catalogo PG\$1EXTERNAL\$1SCHEMA o sulla vista SVV\$1EXTERNAL\$1SCHEMAS. L'esempio seguente esegue una query su SVV\$1EXTERNAL\$1SCHEMAS, che unisce in join PG\$1EXTERNAL\$1SCHEMA e PG\$1NAMESPACE.

```
select * from svv_external_schemas
```

Per la sintassi completa del comando e alcuni esempi, consultare [CREATE EXTERNAL SCHEMA](r_CREATE_EXTERNAL_SCHEMA.md).

## Utilizzo di cataloghi esterni in Amazon Redshift Spectrum
<a name="c-spectrum-external-catalogs"></a>

I metadati per i database esterni e le tabelle esterne di Amazon Redshift Spectrum sono archiviati in un catalogo dati esterno. Per impostazione predefinita, i metadati di Redshift Spectrum sono archiviati nel catalogo dati di Athena. È possibile visualizzare e gestire i database e le tabelle di Redshift Spectrum nella console Athena. 

È inoltre possibile creare e gestire i database esterni e le tabelle esterne utilizzando il linguaggio DDL (Data Definition Language) Hive con Athena o un metastore Hive come Amazon EMR. 

**Nota**  
Consigliamo di utilizzare Amazon Redshift per creare e gestire i database esterni e le tabelle esterne in Redshift Spectrum.

### Visualizzazione dei database Redshift Spectrum in Athena e AWS Glue
<a name="c-spectrum-athena-external-catalogs"></a>

È possibile creare un database esterno includendo la clausola CREATE EXTERNAL DATABASE IF NOT EXISTS nell'istruzione CREATE EXTERNAL SCHEMA. In questi casi, i metadati del database esterno sono archiviati nel catalogo dati. I metadati per le tabelle esterne che crei qualificati dallo schema esterno sono archiviati anche nel tuo catalogo dati . 

Athena e AWS Glue mantieni un catalogo dati per ogni supporto. Regione AWS Per visualizzare i metadati della tabella, accedi ad Athena AWS Glue o alla console. In Athena, scegli **Origini dati, le** tue AWS Glue, quindi visualizza i dettagli del tuo database. In AWS Glue, scegli **Database**, il tuo database esterno, quindi visualizza i dettagli del tuo database. 

Se le tabelle esterne vengono create e gestite mediante Athena, registrare il database utilizzando CREATE EXTERNAL SCHEMA. Ad esempio, il comando seguente registra il database Athena denominato `sampledb`.

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

Quando si esegue una query sulla vista di sistema SVV\$1EXTERNAL\$1TABLES, vengono visualizzate le le tabelle nel database `sampledb` Athena e le tabelle create in 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
```

### Registrazione di un database di un metastore Apache Hive
<a name="c-spectrum-hive-metastore"></a>

Se crei delle tabelle esterne in un metastore Apache Hive, puoi utilizzare CREATE EXTERNAL SCHEMA per registrare tali tabelle in Redshift Spectrum. 

Nell'istruzione CREATE EXTERNAL SCHEMA, specifica la clausola FROM HIVE METASTORE e fornisci l'URI e il numero di porta del metastore Hive. Il ruolo IAM deve includere l'autorizzazione per accedere ad Amazon S3 ma nessuna autorizzazione Athena. L'esempio seguente registra 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';
```

### Abilitazione del cluster Amazon Redshift per accedere al cluster Amazon EMR
<a name="c-spectrum-enabling-emr-access"></a>

Se il metastore Hive è in Amazon EMR, è necessario fornire al cluster Amazon Redshift l'accesso al cluster Amazon EMR. Per farlo, è necessario creare un gruppo di sicurezza Amazon EC2. Quindi si consente tutto il traffico in entrata verso il gruppo di sicurezza EC2 dal gruppo di sicurezza del cluster Amazon Redshift e dal gruppo di sicurezza del cluster Amazon EMR. Quindi viene aggiunta la sicurezza EC2 al cluster Amazon Redshift e al cluster Amazon EMR.

**Visualizzare il nome del gruppo di sicurezza del cluster Amazon Redshift**

Per visualizzare il gruppo di sicurezza, procedere come segue:

1. Accedi a Console di gestione AWS e apri la console Amazon Redshift all'indirizzo. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Dal menu di navigazione scegliere **Clusters** (Cluster), quindi scegliere dall'elenco il cluster per visualizzarne i dettagli.

1. Scegliere **Properties (Proprietà)** e visualizzare la sezione **Network and security settings (Impostazioni rete e sicurezza)**. 

1. Trova il gruppo di sicurezza in **Gruppo di sicurezza VPC** e prendi nota. 

****

**Visualizzare il nome del gruppo di sicurezza dei nodi master di Amazon EMR**

1. Aprire il cluster Amazon EMR. Per ulteriori informazioni, consulta [Utilizzo delle configurazioni di sicurezza per impostare la sicurezza del cluster](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html) nella *Guida alla gestione di Amazon EMR*.

1. In **Sicurezza e accesso**, prendere nota del nome del gruppo di sicurezza del nodo principale Amazon EMR.  
![\[Schermata che evidenzia il nome del gruppo di sicurezza del nodo principale di Amazon EMR nella console Amazon EMR.\]](http://docs.aws.amazon.com/it_it/redshift/latest/dg/images/spectrum-emr-security-groups.png)

**Per creare o modificare un gruppo di sicurezza Amazon EC2 per consentire la connessione tra Amazon Redshift ed Amazon EMR**

1. Nel pannello di controllo di Amazon EC2, scegliere **Gruppi di sicurezza**. Per ulteriori informazioni, consulta [Regole del gruppo di sicurezza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules.html) nella *Guida per l’utente di Amazon EC2*. 

1. Scegliere **Create Security Group** (Crea gruppo di sicurezza). 

1. Se si sta utilizzando VPC, scegliere quello in cui si trovano i cluster Amazon Redshift ed Amazon EMR. 

1. Aggiungere una regola in entrata. 

   1. Per **Type** (Tipo), scegliere **Custom TCP** (TCP personalizzato). 

   1. In **Source (Origine)**, scegliere **Custom (Personalizzata)**. 

   1. Digitare il nome del gruppo di sicurezza Amazon Redshift. 

1. Aggiungere un'altra regola in entrata. 

   1. Per **Type (Tipo)**, scegliere **TCP**. 

   1. Alla voce **Port Range (Intervallo porte)**, inserire **9083**.
**Nota**  
La porta predefinita per un HMS EMR è 9083. Se HMS utilizza una porta differente, specificare la porta nella regola in entrata e nella definizione dello schema esterno. 

   1. In **Source (Origine)**, scegliere **Custom (Personalizzata)**. 

1. Inserire un nome e una descrizione del gruppo di sicurezza. 

1. Scegliere **Create Security Group** (Crea gruppo di sicurezza). 

**Per aggiungere il gruppo di sicurezza Amazon EC2 creato nella procedura precedente al cluster Amazon Redshift**

1. Nella console Amazon Redshift, scegliere il cluster. 

1. Scegli **Properties (Proprietà)**. 

1. Visualizzare **Impostazioni di rete e sicurezza** e scegliere **Modificare**. 

1. Nello stato **Gruppo di sicurezza VPC**, scegliere il nome del nuovo gruppo di sicurezza. 

1. Scegli **Save changes** (Salva modifiche). 

**Per aggiungere il gruppo di sicurezza Amazon EC2 al cluster Amazon EMR**

1. In Amazon EMR, scegliere il cluster. Per ulteriori informazioni, consulta [ Utilizzo configurazioni sicurezza per impostare la sicurezza del cluster](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html) nella *Guida alla gestione di Amazon EMR*.

1. In **Hardware**, scegliere il collegamento per il nodo master. 

1. Scegliere il collegamento nella colonna **EC2 instance ID (ID istanza EC2)**.   
![\[Schermata che evidenzia il valore dell'ID di un'istanza Amazon EC2 nella console Amazon EMR.\]](http://docs.aws.amazon.com/it_it/redshift/latest/dg/images/spectrum-emr-add-security-group.png)

1. Per **Azioni**, scegliere **Sicurezza**, **Modifica gruppi di sicurezza**. 

1. Nello stato**Gruppi di sicurezza associati**, scegliere il nuovo gruppo di sicurezza e scegliere **Aggiungi gruppo di sicurezza**. 

1. Scegli **Save** (Salva). 