Usare le viste AWS Glue Data Catalog - 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à.

Usare le viste AWS Glue Data Catalog

Questa caratteristica è in versione di anteprima ed è soggetta a modifica. Per ulteriori informazioni, consulta la sezione Beta e anteprime nel documento Termini del servizio AWS.

Usa le AWS Glue Data Catalog viste quando desideri un'unica vista comune su Servizi AWS Amazon Athena e Amazon Redshift. Nelle viste di Catalogo dati, le autorizzazioni di accesso sono definite dall'utente che ha creato la vista anziché dall'utente che la interroga. Questo metodo di concessione delle autorizzazioni è chiamato semantica del definitore.

Di seguito sono riportati casi d'uso che mostrano come è possibile utilizzare le viste di Catalogo dati.

  • Maggiore controllo degli accessi: crea una vista che limita l'accesso ai dati in base al livello di autorizzazioni richiesto dall'utente. Ad esempio, è possibile utilizzare le viste di Catalogo dati per impedire ai dipendenti che non lavorano nel reparto delle risorse umane di visualizzare informazioni di identificazione personale.

  • Completezza dei record garantita: applicando determinati filtri alla vista di Catalogo dati, puoi assicurarti che i record di dati in una vista di Catalogo dati siano sempre completi.

  • Sicurezza avanzata: nelle viste di Catalogo dati, la definizione della query che crea la vista deve essere intatta per assicurare la corretta creazione della vista. Ciò rende le visualizzazioni di Catalogo dati meno suscettibili ai comandi SQL da parte di soggetti malintenzionati.

  • Accesso alle tabelle sottostanti interdetto: la semantica del definitore consente agli utenti di accedere a una vista senza rendere loro disponibile la tabella sottostante. Solo l'utente che definisce la vista richiede l'accesso alle tabelle.

Le definizioni delle viste di Catalogo dati sono archiviate in AWS Glue Data Catalog. Ciò significa che è possibile utilizzare AWS Lake Formation per concedere l'accesso tramite concessioni di risorse, concessioni di colonne o controlli di accesso basati su tag. Per ulteriori informazioni sulla concessione e la revoca dell'accesso a Lake Formation, consulta la pagina Granting and revoking permissions on Data Catalog resources nella Guida per gli sviluppatori di AWS Lake Formation .

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, puoi usare la funzione DML. invoker_principal() 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, come nell'esempio seguente.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com", "lakeformation.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

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

Limitazioni

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

Creazione di una vista di Catalogo Dati

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

Interrogazione di una vista di Catalogo Dati

Dopo la creazione della vista, l'Admin di Lake Formation può concedere le autorizzazioni SELECT 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

Aggiornamento di una vista di Catalogo Dati

L'Lake Formation Admin 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

Per ulteriori informazioni sulla sintassi per la creazione e la gestione delle viste di Catalogo Dati, consulta la pagina Sintassi delle viste di Catalogo Dati di Glue.