Utilizza le viste di Catalogo Dati in Athena
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 visualizzazioni del catalogo dati vengono anche chiamate visualizzazioni multidialettali o MDV.
Crea una vista data-catalog.
Per creare una vista Catalogo Dati in Athena, utilizza la sintassi seguente.
CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEWview_nameSECURITY DEFINER [ SHOW VIEW JSON ] ASathena-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 il codice JSON dell'oggetto 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.
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.
Interrogazione di una vista di Catalogo Dati
Dopo la creazione della vista, l'SELECT di Lake Formation può concedere le autorizzazioni per la vista di Catalogo Dati ai principali . 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
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
IAMAllowedPrincipalsin Lake Formation. Se presente, si verifica l'erroreLe viste multi-dialettali possono fare riferimento solo a tabelle senza le autorizzazioni IAMAllowedPrincipals. -
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 Registrazione di una posizione Amazon S3AWS Lake Formation nella Guida per gli sviluppatori di . -
Le chiamate API AWS Glue GetTables e SearchTables non aggiornano il parametro.
IsRegisteredWithLakeFormationPer visualizzare il valore corretto per il parametro, utilizza l'API AWS Glue GetTable. Per ulteriori informazioni, consulta GetTables e SearchTables Le API non aggiornano il valore del parametro isRegisteredWithLakeFormation nella Guida per gli sviluppatori. AWS Lake Formation -
Il principale
DEFINERpuò essere solo un ruolo IAM. -
Il ruolo
DEFINERdeve disporre di autorizzazioniSELECT(concedibili) complete per tutte le tabelle sottostanti. -
Le viste di Catalogo Dati di
UNPROTECTEDnon sono supportate. -
Le funzioni definite dall'utente (UFD) 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 ruoloDefinerdeve disporre di autorizzazioniSELECTcomplete 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_principal ().
Le relazioni di fiducia del ruolo Definer devono consentire l'operazione sts:AssumeRole per i principali del servizio AWS Glue e Lake Formation, come nell'esempio seguente. Per ulteriori informazioni, consulta Prerequisiti per la firma delle immagini di container nella Guida per gli sviluppatori di AWS Lake Formation.
Sono inoltre necessarie le autorizzazioni IAM per l'accesso ad Athena. Per ulteriori informazioni, consulta AWSPoliticy gestite da per Amazon Athena.