Utilizzo delle visualizzazioni - Amazon Athena

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.

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, ordine JOIN 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 SELECT specificata. Per ulteriori informazioni, consulta Creazione di visualizzazioni.

La clausola opzionale OR REPLACE consente di aggiornare la visualizzazione esistente sostituendola.

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 IF EXISTS sopprime l'errore se la visualizzazione non esiste.

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

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.

  1. Nella console Athena, seleziona Views (Visualizzazioni) e quindi scegli una visualizzazione per espanderla e mostrare le colonne al suo interno.

  2. Scegli i tre punti verticali accanto alla visualizzazione per visualizzare un elenco di operazioni.

    Il menu delle operazioni per una visualizzazione.
  3. 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
  1. Nella console Athena, accanto a Tables and views (Tabelle e visualizzazioni), scegli Create (Crea) e quindi scegli Create view (Crea visualizzazione).

    Creazione di una visualizzazione.

    Questa operazione inserisce un modello di visualizzazione modificabile nell'editor di query.

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

  3. 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
  1. Utilizza l'editor di query Athena per eseguire una query esistente.

  2. Nella finestra dell'editor di query, scegli Create (Crea) e quindi scegli View from query (Visualizzazione da query).

    Scegli Create (Crea), View from query (Visualizzazione da query).
  3. 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.