Usa le viste del catalogo dati in Athena - 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à.

Usa le viste del catalogo dati in Athena

La creazione di viste del catalogo dati in Amazon Athena richiede una dichiarazione specialeCREATE VIEW. Per interrogarle si utilizza la sintassi convenzionale SQLSELECT.

Crea una vista del catalogo dati

Per creare una vista del catalogo dati in Athena, usa la seguente sintassi.

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

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

L'esempio seguente mostra come un utente del Definer ruolo crea la vista del catalogo orders_by_date dati. 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, vedereCREATE PROTECTED MULTI DIALECT VIEW.

Interroga una vista del catalogo dati

Dopo aver creato la vista, l'Lake Formationamministratore può concedere SELECT le autorizzazioni per la visualizzazione del catalogo dati ai Invoker responsabili. 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

Limitazioni

Le seguenti limitazioni alla visualizzazione del catalogo dati sono specifiche di Athena. Per le limitazioni alle visualizzazioni del Data Catalog che si applicano sia ad Athena che ad altri servizi, consulta la documentazione di Lake Formation.

  • Le viste di Catalogo Dati non possono fare riferimento ad altre viste.

  • È possibile fare riferimento a un massimo di 10 tabelle nella definizione della vista.

  • Le tabelle sottostanti devono essere registrate con Lake Formation.

  • Il DEFINER preside può essere solo un IAM ruolo.

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

Autorizzazioni

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. invoker_principal() DML Per ulteriori informazioni, consulta invoker_principal ().

Le relazioni di fiducia del Definer ruolo devono consentire l'sts:AssumeRoleazione dei responsabili del servizio AWS Glue e di Lake Formation. Per ulteriori informazioni, consulta Prerequisiti per la creazione di viste nella Guida per gli AWS Lake Formation sviluppatori.

IAMsono inoltre necessarie le autorizzazioni per l'accesso ad Athena. Per ulteriori informazioni, consulta AWS politiche gestite per Amazon Athena.