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 viste del Glue Data Catalog
È possibile creare e gestire viste nel AWS Glue Data Catalog da utilizzare con EMR Serverless. Queste sono note comunemente come viste del AWS Glue Data Catalog. Queste viste sono utili perché supportano più motori di query SQL, quindi puoi accedere alla stessa vista su AWS servizi diversi, come EMR Serverless e Amazon Amazon Athena Redshift.
Creando una vista nel Data Catalog, puoi utilizzare la concessione di risorse e i controlli di accesso basati su tag per concedere l'accesso AWS Lake Formation ad essa. Utilizzando questo metodo di controllo degli accessi, non è necessario configurare un accesso aggiuntivo alle tabelle a cui hai fatto riferimento durante la creazione della vista. Questo metodo di concessione delle autorizzazioni si chiama definer semantics e queste viste sono chiamate definer views. Per ulteriori informazioni sul controllo degli accessi in Lake Formation, consulta Concessione e revoca delle autorizzazioni sulle risorse del Data Catalog nella AWS Lake Formation Developer Guide.
Le visualizzazioni del catalogo dati sono utili per i seguenti casi d'uso:
Controllo granulare degli accessi: è possibile creare una visualizzazione che limiti l'accesso ai dati in base alle autorizzazioni necessarie all'utente. Ad esempio, puoi utilizzare le viste nel Catalogo dati per impedire ai dipendenti che non lavorano nel reparto delle risorse umane di visualizzare le informazioni di identificazione personale (PII).
Definizione completa della vista: applicando filtri alla visualizzazione nel Data Catalog, ti assicuri che i record di dati disponibili in una vista del Data Catalog siano sempre completi.
Sicurezza avanzata: la definizione della query utilizzata per creare la vista deve essere completa. Questo vantaggio significa che le visualizzazioni del Data Catalog sono meno suscettibili ai comandi SQL di attori malintenzionati.
Condivisione semplice dei dati: condividi i dati con altri AWS account senza spostare i dati. Per ulteriori informazioni, consulta Condivisione dei dati tra account in Lake Formation.
Creazione di una vista di Catalogo Dati
Esistono diversi modi per creare una visualizzazione del catalogo dati. Questi includono l'utilizzo di AWS CLI o Spark SQL. Seguono alcuni esempi.
Operazioni di visualizzazione supportate
I seguenti frammenti di comandi mostrano vari modi di lavorare con le viste del catalogo dati:
CREA VISTA
Crea una vista del catalogo di dati. Di seguito è riportato un esempio che mostra la creazione di una vista da una tabella esistente:
CREATE PROTECTED MULTI DIALECT VIEW catalog_view SECURITY DEFINER AS SELECT * FROM my_catalog.my_database.source_table
MODIFICA VISUALIZZAZIONE
Sintassi disponibile:
ALTER VIEW view_name [FORCE] ADD DIALECT AS query
ALTER VIEW view_name [FORCE] UPDATE DIALECT AS query
ALTER VIEW view_name DROP DIALECT
È possibile utilizzare l'
FORCE ADD DIALECT
opzione per forzare l'aggiornamento dello schema e degli oggetti secondari secondo il nuovo dialetto del motore. Tieni presente che questa operazione può causare errori di query se non lo utilizzi ancheFORCE
per aggiornare altri dialetti del motore. Di seguito viene mostrato un esempio:ALTER VIEW catalog_view FORCE ADD DIALECT AS SELECT order_date, sum(totalprice) AS price FROM source_table GROUP BY orderdate;
Quanto segue mostra come modificare una vista per aggiornare il dialetto:
ALTER VIEW catalog_view UPDATE DIALECT AS SELECT count(*) FROM my_catalog.my_database.source_table;
DESCRIVI LA VISTA
Sintassi disponibile per descrivere una vista:
SHOW COLUMNS {FROM|IN} view_name [{FROM|IN} database_name]
— Se l'utente dispone delle autorizzazioni AWS Glue and Lake Formation necessarie per descrivere la vista, può elencare le colonne. Di seguito sono riportati un paio di comandi di esempio per la visualizzazione delle colonne:SHOW COLUMNS FROM my_database.source_table; SHOW COLUMNS IN my_database.source_table;
DESCRIBE view_name
— Se l'utente dispone delle autorizzazioni AWS Glue and Lake Formation necessarie per descrivere la vista, può elencare le colonne della vista insieme ai relativi metadati.
ELIMINA VISTA
Sintassi disponibile:
DROP VIEW [ IF EXISTS ] view_name
L'esempio seguente mostra un'
DROP
istruzione che verifica l'esistenza di una vista prima di eliminarla:DROP VIEW IF EXISTS catalog_view;
MOSTRA CREA VISTA
SHOW CREATE VIEW view_name
— Mostra l'istruzione SQL che crea la vista specificata. Di seguito è riportato un esempio che mostra la creazione di una vista del catalogo di dati:SHOW CREATE TABLE my_database.catalog_view; CREATE PROTECTED MULTI DIALECT VIEW my_catalog.my_database.catalog_view ( net_profit, customer_id, item_id, sold_date) TBLPROPERTIES ( 'transient_lastDdlTime' = '1736267222') SECURITY DEFINER AS SELECT * FROM my_database.store_sales_partitioned_lf WHERE customer_id IN (SELECT customer_id from source_table limit 10)
MOSTRA VISUALIZZAZIONI
Elenca tutte le viste del catalogo, ad esempio viste regolari, visualizzazioni multidialettali (MDV) e MDV senza dialetto Spark. La sintassi disponibile è la seguente:
SHOW VIEWS [{ FROM | IN } database_name] [LIKE regex_pattern]
:Di seguito viene illustrato un comando di esempio per mostrare le viste:
SHOW VIEWS IN marketing_analytics LIKE 'catalog_view*';
Per ulteriori informazioni sulla creazione e la configurazione delle viste del catalogo dati, consulta Building AWS Glue Data Catalog views nella Developer Guide. AWS Lake Formation
Interrogazione di una vista di Catalogo Dati
Dopo aver creato una vista del catalogo dati, puoi interrogarla utilizzando un job Amazon EMR Serverless Spark con controllo granulare degli accessi abilitato AWS Lake Formation . Il ruolo di job runtime deve disporre dell'SELECT
autorizzazione Lake Formation per la visualizzazione Data Catalog. Non è necessario concedere l'accesso alle tabelle sottostanti a cui si fa riferimento nella vista.
Dopo aver impostato tutto, puoi interrogare la tua vista. Ad esempio, dopo aver creato un'applicazione EMR Serverless in EMR Studio, è possibile eseguire la seguente query per accedere a una vista.
SELECT * from
my_database
.catalog_view
LIMIT 10;
Una funzione utile è la. invoker_principal
Restituisce l'identificatore univoco del ruolo EMRS Job Runtime. Questo può essere usato per controllare l'output della vista, in base al principio di invocazione. Puoi usarlo per aggiungere una condizione nella tua vista che perfeziona i risultati della query, in base al ruolo chiamante. Il ruolo di job runtime deve disporre dell'autorizzazione all'azione LakeFormation:GetDataLakePrincipal
IAM per utilizzare questa funzione.
select invoker_principal();
È possibile aggiungere questa funzione a una WHERE
clausola, ad esempio, per perfezionare i risultati delle query.
Considerazioni e limitazioni
Quando si creano viste del catalogo dati, si applica quanto segue:
Puoi creare viste del catalogo dati solo con Amazon EMR 7.6 e versioni successive.
Il definitore della vista del catalogo dati deve avere
SELECT
accesso alle tabelle di base sottostanti a cui si accede dalla vista. La creazione della vista Data Catalog non riesce se una tabella base specifica ha dei filtri Lake Formation imposti sul ruolo di definizione.Le tabelle di base non devono avere l'autorizzazione del
IAMAllowedPrincipals
data lake in Lake Formation. Se presente, si verifica l'errore Multi Dialect views può fare riferimento solo a tabelle senza le autorizzazioni IAMAllowed Principal.La posizione Amazon S3 della tabella deve essere registrata come posizione del data lake Lake Formation. Se la tabella non è registrata, si verifica l'errore Le viste multidialettali possono fare riferimento solo alle tabelle gestite da Lake Formation. Per informazioni su come registrare le sedi Amazon S3 in Lake Formation, consulta Registrazione di una sede Amazon S3 nella Developer Guide. AWS Lake Formation
Puoi creare solo viste di
PROTECTED
Data Catalog.UNPROTECTED
le visualizzazioni non sono supportate.Non è possibile fare riferimento alle tabelle di un altro AWS account in una definizione di visualizzazione del catalogo dati. Inoltre, non puoi fare riferimento a una tabella nello stesso account che si trova in una regione separata.
Per condividere i dati tra un account o un'area geografica, l'intera visualizzazione deve essere condivisa tra account e regioni, utilizzando i link alle risorse di Lake Formation.
Le funzioni definite dall'utente (UDFs) non sono supportate.
È possibile utilizzare viste basate sulle tabelle Iceberg. Sono supportati anche i formati a tabella aperta Apache Hudi e Delta Lake.
Non puoi fare riferimento ad altre viste nelle viste del Catalogo dati.
Lo schema di visualizzazione di AWS Glue Data Catalog viene sempre memorizzato in lettere minuscole. Ad esempio, se si utilizza un'istruzione DDL per creare una vista del Glue Data Catalog con una colonna denominata
Castle
, la colonna creata nel Glue Data Catalog verrà composta in minuscolo, to.castle
Se poi si specifica il nome della colonna in una query DML comeCastle
oCASTLE
, EMR Spark renderà il nome in minuscolo per eseguire la query. Tuttavia, l'intestazione della colonna viene visualizzata utilizzando il maiuscolo/minuscolo specificato nella query.Se si desidera che una query abbia esito negativo nel caso in cui il nome di colonna specificato nella query DML non corrisponda al nome della colonna nel Glue Data Catalog, è possibile impostare
spark.sql.caseSensitive=true
.