

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à.

# Utilizza le viste di Catalogo Dati in Athena
<a name="views-glue"></a>

La creazione di viste del catalogo dati in Amazon Athena richiede una dichiarazione speciale `CREATE VIEW`. La loro interrogazione utilizza la sintassi SQL `SELECT` convenzionale. Le viste del Data Catalog vengono anche chiamate viste *multidialettali*, o. MDVs

## Crea una vista data-catalog.
<a name="views-glue-creating-a-data-catalog-view"></a>

Per creare una vista Catalogo Dati in Athena, utilizza la sintassi seguente.

```
CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW view_name 
SECURITY DEFINER 
[ SHOW VIEW JSON ]
AS athena-sql-statement
```

**Nota**  
L’opzione `SHOW VIEW JSON` si applica solo alle viste del catalogo dati e non alle viste Athena. L’utilizzo dell’`SHOW VIEW JSON`opzione esegue una «esecuzione a secco» che convalida l’input e, se la convalida ha esito positivo, restituisce il codice JSON dell’oggetto AWS Glue tabella che rappresenterà la vista. La vista effettiva non viene creata. Se l’opzione `SHOW VIEW JSON` non è specificata, vengono eseguite le convalide e la vista viene creata come di consueto nel Data Catalog.

La sintassi di esempio seguente mostra come un utente del ruolo `Definer` crea la vista di Catalogo Dati di `orders_by_date`. L'esempio presuppone che il ruolo `Definer` disponga delle autorizzazioni `SELECT` complete sulla tabella `orders` del database `default`.

```
CREATE PROTECTED MULTI DIALECT VIEW orders_by_date 
SECURITY DEFINER 
AS 
SELECT orderdate, sum(totalprice) AS price 
FROM orders 
WHERE order_city = 'SEATTLE' 
GROUP BY orderdate
```

Per informazioni sulla sintassi, consultare la pagina [CREATE PROTECTED MULTI DIALECT VIEW](create-view.md#create-protected-multi-dialect-view).

## Interrogazione di una vista di Catalogo Dati
<a name="views-glue-querying-a-data-catalog-view"></a>

Dopo la creazione della vista, l’amministratore `Lake Formation` di `SELECT` può concedere le autorizzazioni per la vista di Catalogo Dati ai principali `Invoker`. I principali `Invoker` possono quindi interrogare la vista senza avere accesso alle tabelle di base sottostanti a cui la vista fa riferimento. Di seguito è riportato un esempio di query `Invoker`.

```
SELECT * from orders_by_date where price > 5000
```

## Considerazioni e limitazioni
<a name="views-glue-limitations"></a>

La maggior parte delle seguenti limitazioni alla visualizzazione del catalogo dati sono specifiche di Athena. Per ulteriori limitazioni sulle visualizzazioni del Data Catalog che si applicano anche ad altri servizi, consulta la documentazione di Lake Formation.
+ Le viste di Catalogo Dati non possono fare riferimento ad altre viste, collegamenti a risorse di database o collegamenti a risorse di tabelle.
+ È possibile fare riferimento a un massimo di 10 tabelle nella definizione della vista.
+ Le tabelle non devono avere l’autorizzazione per il data lake `IAMAllowedPrincipals` in Lake Formation. Se presente, si verifica l'errore Multi Dialect views può fare riferimento solo a tabelle senza IAMAllowed le autorizzazioni Principal.
+ La posizione Amazon S3 della tabella deve essere registrata come posizione del data lake. Se la tabella non è così registrata, si verifica l’errore Multi Dialect views may only reference tables managed tables Lake Formation. Per informazioni su come registrare le posizioni Amazon S3 in [, consultare ](https://docs.aws.amazon.com/lake-formation/latest/dg/register-location.html)Registrazione di una posizione Amazon S3*AWS Lake Formation nella Guida per gli sviluppatori di *.
+ Le chiamate AWS Glue [GetTables](https://docs.aws.amazon.com/glue/latest/webapi/API_GetTables.html)e [SearchTables](https://docs.aws.amazon.com/glue/latest/webapi/API_SearchTables.html)API non aggiornano il parametro. `IsRegisteredWithLakeFormation` Per visualizzare il valore corretto del parametro, utilizza l' AWS Glue [GetTable](https://docs.aws.amazon.com/glue/latest/webapi/API_GetTable.html)API. Per ulteriori informazioni, [ SearchTables APIs consultate GetTables e non aggiornate il valore del IsRegisteredWithLakeFormation parametro nella Guida per](https://docs.aws.amazon.com/lake-formation/latest/dg/limitations.html#issue-GetTables-value) *gli AWS Lake Formation sviluppatori*.
+ Il principale `DEFINER` può essere solo un ruolo IAM.
+ Il ruolo `DEFINER` deve disporre di autorizzazioni `SELECT` (concedibili) complete per tutte le tabelle sottostanti.
+ Le viste di Catalogo Dati di `UNPROTECTED` non sono supportate.
+ Le funzioni definite dall'utente (UDFs) non sono supportate nella definizione della vista.
+ Le origini dati federate Athena non possono essere utilizzate nelle viste di Catalogo Dati.
+ Le viste di Catalogo Dati non sono supportate per i metastore Hive esterni.
+ Athena visualizza un messaggio di errore quando rileva viste non aggiornate. Una vista obsoleta viene segnalata quando si verifica una delle seguenti operazioni:
  + La vista fa riferimento a tabelle o database che non esistono.
  + Una modifica dello schema o dei metadati viene effettuata in una tabella di riferimento. 
  + Una tabella di riferimento viene eliminata e ricreata con uno schema o una configurazione diversa.

## Permissions
<a name="views-glue-permissions"></a>

Le viste di Catalogo Dati richiedono tre ruoli: `Lake Formation Admin`, `Definer` e `Invoker`. 
+ **`Lake Formation Admin`**: ha accesso alla configurazione di tutte le autorizzazioni di Lake Formation.
+ **`Definer`**: crea la vista di Catalogo Dati. Il ruolo `Definer` deve disporre di autorizzazioni `SELECT` complete per tutte le tabelle sottostanti a cui la definizione della vista fa riferimento.
+ **`Invoker`**: può interrogare la vista di Catalogo Dati o controllarne i metadati. Per mostrare l’invocatore di una query, è possibile utilizzare la funzione DML. `invoker_principal()` Per ulteriori informazioni, consulta [invoker\$1principal ()](functions-env3.md#functions-env3-invoker-principal).

Le relazioni di fiducia del `Definer` ruolo devono consentire l'`sts:AssumeRole`azione dei responsabili del servizio AWS Glue e di Lake Formation. Per ulteriori informazioni, consulta [Prerequisiti per la firma delle immagini di  container](https://docs.aws.amazon.com/lake-formation/latest/dg/working-with-views.html#views-prereqs) nella *Guida per gli sviluppatori di AWS Lake Formation *.

Sono inoltre necessarie le autorizzazioni IAM per l'accesso ad Athena. Per ulteriori informazioni, consulta [AWS politiche gestite per Amazon Athena](security-iam-awsmanpol.md).

# Viste di Catalogo dati di Glue
<a name="views-glue-managing"></a>

Puoi usare i comandi DDL per aggiornare e gestire le viste del catalogo dati.

## Aggiornamento di una vista di Catalogo Dati
<a name="views-glue-updating-a-data-catalog-view"></a>

L’amministratore `Lake Formation` oppure il definer possono utilizzare la sintassi `ALTER VIEW UPDATE DIALECT` per aggiornare la definizione della vista. L'esempio seguente modifica la definizione della vista per selezionare le colonne dalla tabella `returns` anziché dalla tabella `orders`.

```
ALTER VIEW orders_by_date UPDATE DIALECT
AS
SELECT return_date, sum(totalprice) AS price
FROM returns
WHERE order_city = 'SEATTLE'
GROUP BY orderdate
```

## Azioni DDL supportate per le visualizzazioni AWS Glue Data Catalog
<a name="views-glue-supported-actions"></a>

Athena supporta le seguenti azioni per AWS Glue Data Catalog le viste.


| Dichiarazione | Description | 
| --- | --- | 
| [ALTER VIEW DIALECT](alter-view-dialect.md) |  È possibile aggiornare le viste di Catalogo Dati aggiungendo un dialetto del motore o aggiornando o eliminando un dialetto del motore esistente.  | 
| [CREATE PROTECTED MULTI DIALECT VIEW](create-view.md#create-protected-multi-dialect-view) |  Crea un nuovo Catalogo Dati da una query `SELECT` specificata. Per ulteriori informazioni, consulta [CREATE PROTECTED MULTI DIALECT VIEW](create-view.md#create-protected-multi-dialect-view). La clausola opzionale `OR REPLACE` consente di aggiornare la visualizzazione esistente sostituendola.  | 
| [DESCRIBE VIEW](describe-view.md) |  Visualizza l'elenco delle colonne per la visualizzazione specificata. In questo modo è possibile esaminare gli attributi di una visualizzazione complessa.   | 
| [DROP VIEW](drop-view.md) |  Elimina una visualizzazione esistente. La clausola facoltativa `IF EXISTS` sopprime l'errore se la visualizzazione non esiste.  | 
| [SHOW CREATE VIEW](show-create-view.md) |  Mostra l'istruzione SQL che crea la vista specificata.  | 
| [SHOW VIEWS](show-views.md) |  Elenca le viste nel database specificato o, se si omette il nome del database, quelle nel database corrente. Utilizza la clausola `LIKE` facoltativa con un'espressione regolare per limitare l'elenco dei nomi di vista. È possibile visualizzare l'elenco delle visualizzazioni anche nel riquadro a sinistra della console.  | 
| [SHOW COLUMNS](show-columns.md) |  Elenca le colonne nello schema per una visualizzazione.  | 