Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive come configurare le viste materializzate in Databricks SQL, incluso il controllo di accesso sui risultati. La maggior parte della configurazione può essere eseguita quando si crea la vista materializzata con l'istruzione CREATE OR REPLACE MATERIALIZED VIEW o dopo la creazione con l'istruzione ALTER TABLE .
Descrivere una vista materializzata
Per recuperare le colonne e i tipi di dati per una vista materializzata, utilizzare l'istruzione DESCRIBE. Per recuperare le colonne, i tipi di dati e i metadati, ad esempio proprietario, posizione, ora di creazione e stato di aggiornamento per una vista materializzata, usare DESCRIBE EXTENDED. Per inviare un'istruzione DESCRIBE , usare l'editor SQL nell'interfaccia utente di Azure Databricks, nell'interfaccia della riga di comando sql di Databricks o nell'API SQL di Databricks.
Ottenere informazioni dettagliate sulle viste materializzate con Esplora cataloghi
In alternativa, è possibile utilizzare Esplora cataloghi per visualizzare i dettagli relativi a una vista materializzata.
- Fare clic
Catalogo nella barra laterale.
- Nel riquadro di esplorazione dei cataloghi a sinistra, aprite il catalogo e selezionate lo schema in cui si trova la vista materializzata.
- Aprire l'elemento tabelle sotto lo schema selezionato e fare clic sulla vista materializzata.
Da qui è possibile usare le schede sotto il nome della vista materializzata per visualizzare e modificare le informazioni sulla vista materializzata, tra cui:
- Aggiorna lo stato e il programma
- Vedere i dettagli della pipeline per visualizzare la cronologia degli aggiornamenti, nonché i log dettagliati per ogni aggiornamento. Fare clic su Visualizza i dettagli dell'aggiornamento nella scheda Panoramica per vedere i dettagli della pipeline.
- Schema della tabella
- Dati di esempio (richiede un calcolo attivo)
- Permissions
- Lineage, incluse tabelle e pipeline da cui dipende questa vista materializzata
- Informazioni dettagliate sull'utilizzo
- Monitoraggi che hai creato per questa vista materializzata
Alcune proprietà della tabella non sono disponibili in Esplora cataloghi. Per tali proprietà o per ottenere le informazioni a livello di codice, è possibile usare il comando DESCRIBE EXTENDED .
Aggiornare la definizione di una vista materializzata
La query che specifica la vista materializzata è la relativa definizione. Per modificare la definizione della vista materializzata, modificare la query o creare una nuova query CREATE OR REPLACE MATERIALIZED VIEW con lo stesso nome di visualizzazione e quindi eseguirla. Viene eseguito un aggiornamento completo per aggiornare la vista materializzata e altri aggiornamenti usano la nuova definizione.
Controllare l'accesso alle viste materializzate
Le viste materializzate supportano controlli di accesso avanzati per supportare la condivisione dei dati evitando di esporre dati potenzialmente privati. Il proprietario di una vista materializzata o un utente con il privilegio MANAGE può concedere il privilegio SELECT ad altri utenti. Gli utenti con SELECT accesso alla vista materializzata non devono accedere SELECT alle tabelle a cui fa riferimento la vista materializzata. Questo controllo di accesso consente la condivisione dei dati durante il controllo dell'accesso ai dati sottostanti.
Concedere privilegi a una vista materializzata
Per concedere l'accesso a una vista materializzata, utilizzare l'istruzioneGRANT:
GRANT <privilege_type> ON <mv_name> TO <principal>;
Il privilege_type può essere:
-
SELECT: l'utente puòSELECTla visualizzazione materializzata. -
REFRESH: l'utente puòREFRESHla visualizzazione materializzata. Gli aggiornamenti vengono eseguiti usando le autorizzazioni del proprietario.
L'esempio seguente crea una vista materializzata e concede privilegi di selezione e aggiornamento agli utenti:
CREATE MATERIALIZED VIEW mv_name AS SELECT * FROM source_table;
-- Grant read-only access:
GRANT SELECT ON mv_name TO read_only_user;
-- Grand read and refresh access:
GRANT SELECT ON mv_name TO refresh_user;
GRANT REFRESH ON mv_name TO refresh_user;
Revocare i privilegi di una vista materializzata
Per revocare l'accesso a una vista materializzata, usare l'istruzioneREVOKE :
REVOKE privilege_type ON <mv_name> FROM principal;
Quando i privilegi SELECT per una tabella di origine vengono revocati al proprietario della vista materializzata o a qualsiasi altro utente a cui sono stati concessi i privilegi MANAGE o SELECT sulla vista materializzata, oppure quando la tabella di origine viene eliminata, il proprietario della vista materializzata o l'utente a cui è stato concesso l'accesso è comunque in grado di eseguire query sulla vista materializzata. In ogni caso, si ha il seguente comportamento:
- Il proprietario della vista materializzata o altri utenti che hanno perso l'accesso a una vista materializzata non possono più
REFRESHquella vista materializzata, che diventerà obsoleta. - Se l’operazione è automatizzata con una pianificazione, la successiva pianificazione
REFRESHha esito negativo o non viene eseguita.
Nel seguente esempio viene revocato il privilegio SELECT a read_only_user:
REVOKE SELECT ON mv_name FROM read_only_user;
Impostare il canale di esecuzione
Le viste materializzate create con sql warehouse vengono aggiornate automaticamente tramite una pipeline. Per impostazione predefinita, le pipeline usano il runtime nel current canale. Per informazioni sul processo di rilascio, vedere le note di rilascio delle pipeline dichiarative di Lakeflow Spark e il processo di aggiornamento della versione.
Databricks consiglia di usare il current canale per i carichi di lavoro di produzione. Le nuove funzionalità vengono rilasciate per la prima volta al preview canale. È possibile impostare una pipeline sul canale di anteprima per testare le nuove funzionalità specificando preview come proprietà della tabella. È possibile specificare questa proprietà quando si crea la tabella o dopo la creazione della tabella utilizzando un'istruzione ALTER.
L'esempio di codice seguente illustra come impostare il canale per l'anteprima in un'istruzione CREATE:
CREATE OR REPLACE MATERIALIZED VIEW sales
TBLPROPERTIES ('pipelines.channel' = 'preview')
AS ...
Per modificare il canale dopo la creazione, usare l'istruzione ALTER TABLE :
ALTER TABLE <table-name> SET TBLPROPERTIES ('pipelines.channel' = 'preview');