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à.
Utilizzo delle visualizzazioni
Una visualizzazione in Amazon Athena è una tabella logica, non fisica. La query che definisce una visualizzazione viene eseguita ogni volta che si fa riferimento alla visualizzazione in una query.
È possibile creare una visualizzazione da una query SELECT
e quindi fare riferimento a questa visualizzazione nelle query future. Per ulteriori informazioni, consulta CREATE VIEW.
Argomenti
Quando usare le visualizzazioni?
È possibile creare visualizzazioni per:
-
Eseguire query su un sottoinsieme di dati. Ad esempio, è possibile creare una visualizzazione con un sottoinsieme di colonne della tabella originale per semplificare l'esecuzione delle query sui dati.
-
Combinare più tabelle in un'unica query. Quando si dispone di più tabelle e si desidera combinarle con
UNION ALL
, è possibile creare una visualizzazione con quell'espressione per semplificare le query sulle tabelle combinate. -
Nascondere la complessità delle query di base esistenti e semplificare l'esecuzione delle query da parte degli utenti. Le query di base spesso includono join tra tabelle, espressioni nell'elenco delle colonne e altre sintassi SQL che rendono difficile la comprensione e l'esecuzione del debug. È possibile creare una visualizzazione che nasconda la complessità e semplifichi le query.
-
Provare tecniche di ottimizzazione e creare query ottimizzate. Ad esempio, se si trova una combinazione di condizioni
WHERE
, ordineJOIN
o altre espressioni che dimostrano le prestazioni migliori, è possibile creare una visualizzazione con queste clausole ed espressioni. Le applicazioni possono quindi rendere relativamente semplici le query su questa visualizzazione. Se successivamente si trova un modo migliore per ottimizzare la query originale, quando si ricrea la visualizzazione, tutte le applicazioni sfruttano immediatamente la query di base ottimizzata. -
Nascondere i nomi delle tabelle e delle colonne sottostanti e ridurre al minimo i problemi di manutenzione in caso di modifica di tali nomi. In questo caso, è necessario ricreare la visualizzazione utilizzando i nuovi nomi. Tutte le query che utilizzano la visualizzazione anziché le tabelle sottostanti continuano a essere eseguite senza modifiche.
Operazioni supportate per le visualizzazioni in Athena
Athena supporta le seguenti operazioni per le visualizzazioni. È possibile eseguire questi comandi nell'Editor delle query.
Dichiarazione | Descrizione |
---|---|
CREATE VIEW |
Crea una nuova visualizzazione da una query La clausola opzionale |
DESCRIBE VIEW |
Visualizza l'elenco delle colonne per la visualizzazione specificata. In questo modo è possibile esaminare gli attributi di una visualizzazione complessa. |
DROP VIEW |
Elimina una visualizzazione esistente. La clausola facoltativa |
SHOW CREATE VIEW |
Mostra l'istruzione SQL che crea la vista specificata. |
SHOW VIEWS |
Elenca le viste nel database specificato o, se si omette il nome del database, quelle nel database corrente. Utilizza la clausola |
SHOW COLUMNS |
Elenca le colonne nello schema per una visualizzazione. |
Considerazioni per le visualizzazioni
Le seguenti considerazioni valgono per la creazione e l'utilizzo di visualizzazioni in Athena:
-
In Athena, puoi visualizzare in anteprima e lavorare con le viste create nella console Athena, in AWS Glue Data Catalog, se hai effettuato la migrazione per utilizzarla, o con Presto in esecuzione sul cluster Amazon EMR connesso allo stesso catalogo. Non è possibile visualizzare in anteprima o aggiungere ad Athena visualizzazioni create in altri modi.
-
Se hai creato visualizzazioni Athena nel Catalogo dati, le visualizzazioni vengono trattate come tabelle. È possibile utilizzare il controllo degli accessi granulare a livello di tabella nel catalogo dati per limitare l'accesso a queste visualizzazioni.
-
Athena impedisce di eseguire visualizzazioni ricorsive e, in questi casi, viene visualizzato un messaggio di errore. Una visualizzazione ricorsiva è una query di visualizzazione che fa riferimento a se stessa.
-
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.
-
-
È possibile creare ed eseguire visualizzazioni nidificate a condizione che la query alla base della visualizzazione nidificata sia valida e le tabelle e i database esistano.
Limitazioni per le visualizzazioni
-
I nomi delle visualizzazioni Athena non possono contenere caratteri speciali, diversi dal trattino basso
(_)
. Per ulteriori informazioni, consulta Nomi di tabelle, database e colonne. -
Occorre evitare di utilizzare parole chiave per nominare le visualizzazioni. Se si utilizzano parole chiave riservate, occorre utilizzare le virgolette doppie per racchiudere le parole chiave riservate nella query sulle visualizzazioni. Per informazioni, consulta Parole chiave riservate.
-
Non puoi utilizzare le visualizzazioni create in Athena con metastore Hive esterni o UDF. Per informazioni sull'utilizzo di visualizzazioni create esternamente in Hive, consulta Utilizzo delle visualizzazioni Hive.
-
Non è possibile utilizzare visualizzazioni con funzioni geospaziali.
-
Non è possibile utilizzare le visualizzazioni per gestire il controllo degli accessi sui dati in Amazon S3. Per eseguire query su una visualizzazione, è necessario disporre delle autorizzazioni per accedere ai dati archiviati in Amazon S3. Per ulteriori informazioni, consulta Accesso ad Amazon S3 da Athena.
-
Sebbene l'esecuzione di query sulle visualizzazioni tra gli account sia supportata sia nella versione 2 sia nella versione 3 del motore Athena, non puoi creare una visualizzazione che AWS Glue Data Catalog su più account. Per ulteriori informazioni sull'accesso tra account ai cataloghi dati, consulta Accesso tra account ai cataloghi dati AWS Glue.
-
Le colonne di metadati nascosti Hive o Iceberg
$bucket
,$file_modified_time
,$file_size
e$partition
non sono supportate per le visualizzazioni in Athena. Per informazioni sull'utilizzo della colonna dei metadati$path
in Athena, consulta Ottenere le posizioni dei file per i dati di origine in Amazon S3 .
Utilizzo delle visualizzazioni nella console
Nella console Athena, puoi:
-
Individuare tutte le visualizzazioni nel riquadro a sinistra, in cui sono elencate le tabelle.
-
Filtrare le visualizzazioni.
-
Eseguire l'anteprima di una visualizzazione, visualizzarne le proprietà, modificarla o eliminarla.
Per mostrare le operazioni per una visualizzazione
Una visualizzazione viene mostrata nella console solo se è già stata creata.
-
Nella console Athena, seleziona Views (Visualizzazioni) e quindi scegli una visualizzazione per espanderla e mostrare le colonne al suo interno.
-
Scegli i tre punti verticali accanto alla visualizzazione per visualizzare un elenco di operazioni.
-
Scegli le operazioni per visualizzare in anteprima la visualizzazione, inserire il nome della visualizzazione nell'editor di query, eliminare la visualizzazione, visualizzare le proprietà della visualizzazione o visualizzare e modificare la visualizzazione nell'editor di query.
Creazione di visualizzazioni
È possibile creare una visualizzazione nella console di Athena utilizzando un modello o eseguendo una query esistente.
Per utilizzare un modello per creare una visualizzazione
-
Nella console Athena, accanto a Tables and views (Tabelle e visualizzazioni), scegli Create (Crea) e quindi scegli Create view (Crea visualizzazione).
Questa operazione inserisce un modello di visualizzazione modificabile nell'editor di query.
-
Modifica il modello di visualizzazione in base alle tue esigenze. Quando inserisci un nome per la visualizzazione nell'istruzione, ricorda che i nomi delle visualizzazioni non possono contenere caratteri speciali diversi dal carattere di sottolineatura
(_)
. Per informazioni, consulta Nomi di tabelle, database e colonne. Evitare di utilizzare Parole chiave riservate per nominare le visualizzazioni.Per ulteriori informazioni sulla creazione di visualizzazioni, consulta CREATE VIEW e Esempi di visualizzazioni.
-
Scegli Run (Esegui) per creare la visualizzazione. La visualizzazione viene mostrata nell'elenco delle visualizzazioni nella console Athena.
Per creare una visualizzazione da una query esistente
-
Utilizza l'editor di query Athena per eseguire una query esistente.
-
Nella finestra dell'editor di query, scegli Create (Crea) e quindi scegli View from query (Visualizzazione da query).
-
Nella finestra di dialogo Create view (Crea visualizzazione), inserisci un nome per la visualizzazione, quindi scegli Create (Crea). I nomi delle visualizzazioni non possono contenere caratteri speciali, diversi dal carattere di sottolineatura
(_)
. Per informazioni, consulta Nomi di tabelle, database e colonne. Evitare di utilizzare Parole chiave riservate per nominare le visualizzazioni.Athena aggiunge la visualizzazione all'elenco delle visualizzazioni nella console e mostra l'istruzione
CREATE VIEW
per la visualizzazione nell'editor di query.
Note
-
Se si elimina una tabella su cui è basata una tabella e quindi si cerca di eseguire la visualizzazione, Athena mostra un messaggio di errore.
-
È possibile creare una visualizzazione nidificata, ovvero una visualizzazione sopra una visualizzazione esistente. Athena ti impedisce di eseguire una visualizzazione ricorsiva che fa riferimento a se stessa.
Esempi di visualizzazioni
Per visualizzare la sintassi della query di visualizzazione, utilizza SHOW CREATE VIEW.
Esempio 1
Considera le due tabelle seguenti: una tabella employees
con due colonne, id
e name
, e una tabella salaries
con due colonne, id
e salary
.
In questo esempio, creiamo una visualizzazione denominata name_salary
come query SELECT
che ottiene un elenco di ID mappati agli stipendi delle tabelle employees
e salaries
:
CREATE VIEW name_salary AS SELECT employees.name, salaries.salary FROM employees, salaries WHERE employees.id = salaries.id
Esempio 2
Nell'esempio seguente, creiamo una visualizzazione denominata view1
che consente di nascondere la sintassi delle query più complesse.
Questa visualizzazione viene eseguita su due tabelle, table1
e table2
, ognuna delle quali è una query SELECT
diversa. La visualizzazione seleziona le colonne di table1
e unisce i risultati con table2
. Il join si basa sulla colonna a
presente in entrambe le tabelle.
CREATE VIEW view1 AS WITH table1 AS ( SELECT a, MAX(b) AS the_max FROM x GROUP BY a ), table2 AS ( SELECT a, AVG(d) AS the_avg FROM y GROUP BY a) SELECT table1.a, table1.the_max, table2.the_avg FROM table1 JOIN table2 ON table1.a = table2.a;
Per informazioni relative all'esecuzione di query su visualizzazioni federate, consulta Esecuzione di query su visualizzazioni federate.