Condividi tramite


Che cos'è una vista?

Una vista è un oggetto di sola lettura derivante da una query su una o più tabelle e viste in un metastore di Unity Catalog. È possibile creare una vista da tabelle e da altre viste in più schemi e cataloghi.

Questo articolo descrive le visualizzazioni che è possibile creare in Azure Databricks e fornisce una spiegazione delle autorizzazioni e delle risorse di calcolo necessarie per eseguirne query.

Per informazioni sulla creazione di visualizzazioni, vedere:

Visualizzazioni in Unity Catalog

Nel Catalogo Unity, le visualizzazioni si trovano al terzo livello dello spazio dei nomi gerarchico a tre livelli (catalog.schema.view):

diagramma del modello a oggetti del catalogo Unity, incentrato sulla visualizzazione

Una vista archivia il testo di una query in genere su una o più origini dati o tabelle nel metastore. In Azure Databricks, una vista è equivalente a un DataFrame Spark persistente come oggetto in uno schema. A differenza dei dataframe, è possibile eseguire query sulle viste da qualsiasi posizione in Azure Databricks, presupponendo di disporre delle autorizzazioni necessarie. La creazione di una vista non elabora o scrive dati. Solo il testo della query viene registrato nel metastore relativo allo schema associato.

Nota

Le viste possono avere una semantica di esecuzione diversa se sono supportate da origini dati diverse da tabelle Delta. Databricks consiglia di definire sempre le viste facendo riferimento alle origini dati usando un nome di tabella o vista. La definizione di visualizzazioni rispetto ai set di dati specificando un percorso o un URI può portare a requisiti di governance dei dati confusi.

Viste materializzate

Le viste materializzate calcolano e aggiornano in modo incrementale i risultati restituiti dalla query di definizione. Le viste materializzate in Azure Databricks sono un tipo speciale di tabella Delta. Mentre tutte le altre viste in Azure Databricks calcolano i risultati valutando la logica che ha definito la vista quando viene eseguita una query, le viste materializzate elaborano i risultati e le archiviano in una tabella sottostante quando gli aggiornamenti vengono elaborati usando una pianificazione di aggiornamento o eseguendo un aggiornamento della pipeline.

È possibile registrare viste materializzate in Unity Catalog usando Databricks SQL o definirle come parte di una pipeline DLT. Vedere Usare viste materializzate in Databricks SQL e Che cos'è DLT?.

Visualizzazioni temporanee

Una vista temporanea ha ambito e persistenza limitati e non è registrata in uno schema o catalogo. La durata di una visualizzazione temporanea varia in base all'ambiente in uso:

  • Nei notebook e nei lavori, le visualizzazioni temporanee sono limitate al livello del notebook o dello script. Non è possibile fare riferimento all'esterno del notebook in cui sono dichiarati e non esistono più quando il notebook si disconnette dal cluster.
  • In Databricks SQL, le viste temporanee sono limitate al livello di query. Più istruzioni all'interno della stessa query possono utilizzare la vista temporanea, ma non può essere richiamata in altre query, nemmeno all'interno dello stesso dashboard.

Visualizzazioni dinamiche

Le visualizzazioni dinamiche possono essere usate per fornire il controllo di accesso a livello di riga e colonna, oltre all'offuscamento dei dati. Vedere Creare una visualizzazione dinamica.

Visualizzazioni nel metastore Hive (legacy)

È possibile definire viste Hive legacy su qualsiasi origine dati e registrarle nel metastore Hive legacy. Databricks consiglia di eseguire la migrazione di tutte le viste Hive legacy a Unity Catalog. Consultare le viste nel metastore di Hive.

Visualizzazione temporanea globale Hive (legacy)

Le viste temporanee globali sono una funzionalità legacy di Azure Databricks che consente di registrare una visualizzazione temporanea disponibile per tutti i carichi di lavoro in esecuzione su una risorsa di calcolo. Le visualizzazioni temporanee globali sono un retaggio di Hive e HDFS. Databricks sconsiglia l'uso di viste temporanee globali.

Requisiti per l'esecuzione di query sulle viste

Per leggere le visualizzazioni registrate in Unity Catalog, le autorizzazioni necessarie dipendono dal tipo di calcolo, dalla versione di Databricks Runtime e dalla modalità di accesso.

Nota

Per tutte le viste, i controlli delle autorizzazioni vengono eseguiti sia sulla vista stessa che sulle tabelle e viste sottostanti su cui la vista è costruita. L'utente le cui autorizzazioni vengono verificate per le tabelle e le viste sottostanti dipende dal sistema di calcolo. Per quanto riguarda quanto segue, Unity Catalog controlla le autorizzazioni del proprietario della visualizzazione per i dati sottostanti.

  • Magazzini SQL.
  • Calcolo standard (in precedenza calcolo condiviso).
  • Calcolo dedicato (precedentemente chiamato calcolo utente singolo) su Databricks Runtime 15.4 LTS e versioni successive, con controllo degli accessi a granularità fine abilitato.

Per il calcolo dedicato in Databricks Runtime 15.3 e versioni successive, Unity Catalog controlla sia le autorizzazioni del proprietario della visualizzazione che le autorizzazioni dell'utente di visualizzazione per i dati sottostanti.

Questo comportamento si riflette nei requisiti elencati di seguito. In entrambi i casi, il proprietario della visualizzazione deve mantenere le autorizzazioni per i dati sottostanti per consentire agli utenti di visualizzare la visualizzazione.

  • Per tutte le risorse di calcolo, è necessario disporre di SELECT nella vista stessa, USE CATALOG nel catalogo padre e USE SCHEMA nello schema padre. Questo vale per tutti i tipi di calcolo che supportano il catalogo Unity, inclusi i warehouse SQL, i cluster in modalità di accesso standard e i cluster in modalità di accesso dedicato in Databricks Runtime 15.4 e versioni successive.
  • Per i cluster in Databricks Runtime 15.3 e versioni successive che usano la modalità di accesso dedicato, è necessario disporre anche di SELECT in tutte le tabelle e viste a cui fa riferimento la vista, oltre a USE CATALOG nei cataloghi padre e USE SCHEMA negli schemi padre.

Nota

Se si usa un cluster dedicato in Databricks Runtime 15.4 LTS e versioni successive e si vuole evitare il requisito di avere SELECT nelle tabelle e nelle viste sottostanti, verificare che l'area di lavoro sia abilitata per il calcolo serverless.

Il calcolo serverless gestisce il filtro dei dati, consentendo l'accesso a una vista senza dover richiedere autorizzazioni per le tabelle e le viste sottostanti. Tenere presente che è possibile che si verifichino addebiti di calcolo serverless quando si utilizzano risorse dedicate per interrogare le viste. Per maggiori informazioni, vedere controllo degli accessi a grana fine su calcolo dedicato (in precedenza calcolo dedicato per singolo utente).