Creare e gestire views
Questo articolo illustra come creare views in Unity Catalog. Vedere Che cos'è una visualizzazione?.
Autorizzazioni necessarie
Per creare una visualizzazione:
- È necessario avere l'autorizzazione
USE CATALOG
sul genitore catalog e le autorizzazioniUSE SCHEMA
eCREATE TABLE
sul genitore schema. Un amministratore del metastore o il proprietario del catalog può grant tutti questi privilegi. Un proprietario o un utente schema con il privilegio diMANAGE
può grant,USE SCHEMA
eCREATE TABLE
privilegi sul schema. - È necessario essere in grado di leggere il tables e views a cui si fa riferimento nella vista (
SELECT
nella table o nella vista, nonchéUSE CATALOG
nella catalog eUSE SCHEMA
nel schema). - Se una vista fa riferimento a tables nel metastore Hive locale dell'area di lavoro, è possibile accedere alla vista solo dall'area di lavoro che contiene il metastore Hive locale dell'area di lavoro tables. Per questo motivo, Databricks consiglia di creare views solo da tables o views presenti nel metastore Unity Catalog.
- Non è possibile creare una vista che faccia riferimento a una visualizzazione condivisa con l'utente usando la condivisione delta. Si veda Che cos'è Delta Sharing?.
Per leggere una visualizzazione, le autorizzazioni necessarie dipendono dal tipo di calcolo, dalla versione di Databricks Runtime e dalla modalità di accesso:
- Per tutte le risorse di calcolo, è necessario disporre di
SELECT
nella vista stessa,USE CATALOG
sul relativo catalogpadre eUSE SCHEMA
sul relativo schemapadre. Questo vale per tutti i tipi di calcolo che supportano Unity Catalog, inclusi SQL warehouse, cluster in modalità di accesso condiviso e cluster in modalità di accesso singolo su Databricks Runtime 15.4 e versioni successive. - Per i cluster in Databricks Runtime 15.3 e versioni precedenti che utilizzano la modalità di accesso utente singolo, è necessario disporre anche di
SELECT
su tutte le tables e views a cui fa riferimento la vista, oltre aUSE CATALOG
sul catalogs padre eUSE SCHEMA
nei rispettivi schemi padre.
Nota
Se si usa un cluster a utente singolo in Databricks Runtime 15.4 LTS e versioni successive e si desidera evitare il requisito di avere SELECT
nei tables sottostanti e nel views, verificare che l'area di lavoro sia abilitata per l'ambiente di calcolo serverless.
L'ambiente di calcolo serverless gestisce il filtro dei dati, che consente l'accesso a una vista senza richiedere autorizzazioni per i tables sottostanti e views. Si consiglia di tenere presente che è possibile incorrere in addebiti di calcolo serverless quando si utilizza il calcolo per utente singolo per eseguire query su views. Per altre informazioni, vedere Controllo di accesso con granularità fine per il calcolo di un singolo utente.
Crea una visualizzazione
Per creare una vista, eseguire il comando SQL seguente. Gli elementi tra parentesi sono facoltativi. Sostituire il segnaposto values:
-
<catalog-name>
: nome del catalog. -
<schema-name>
: nome del schema. -
<view-name>
: nome della visualizzazione. -
<query>
: La query, columns, tables e views usate per comporre la vista.
CREATE VIEW <catalog-name>.<schema-name>.<view-name> AS
SELECT <query>;
Ad esempio, per creare una vista denominata sales_redacted
da columns nel sales_raw
table:
CREATE VIEW sales_metastore.sales.sales_redacted AS
SELECT
user_id,
email,
country,
product,
total
FROM sales_metastore.sales.sales_raw;
È anche possibile creare una vista usando il provider Databricks Terraform e databricks_table. È possibile recuperare un list di nomi completi di visualizzazione utilizzando databricks_views.
Eliminare una vista
È necessario essere il proprietario della visualizzazione o avere il privilegio MANAGE
nella visualizzazione per eliminare una visualizzazione. Per eliminare una vista, eseguire il comando SQL seguente:
DROP VIEW IF EXISTS catalog_name.schema_name.view_name;