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.
Si applica a:
Databricks SQL
Databricks Runtime
Modifica i metadati associati a una vista. Può modificare la definizione di una vista, rinominare una vista e impostare o annullare l'impostazione dei metadati impostando TBLPROPERTIES. Per una vista metrica, può anche aggiungere e rimuovere relazioni (Beta).
Per aggiungere o modificare un commento in una visualizzazione, usare COMMENT ON.
Se la visualizzazione viene memorizzata nella cache, il comando cancella i dati memorizzati nella cache della visualizzazione e tutti i relativi dipendenti che vi fanno riferimento. La cache della visualizzazione viene riempita in modo differire quando si accede alla visualizzazione successiva. Il comando lascia i dipendenti della visualizzazione come non memorizzati nella cache.
Privilegi obbligatori
Se si usa Il catalogo Unity, le operazioni seguenti non richiedono la proprietà della visualizzazione:
-
SET TAGS: richiede ilAPPLY TAGprivilegio . -
UNSET TAGS: richiede ilAPPLY TAGprivilegio .
Le operazioni seguenti richiedono la proprietà della visualizzazione:
SET TBLPROPERTIESUNSET TBLPROPERTIES-
AS query(modifica definizione visualizzazione) -
WITH SCHEMA(modifica associazione dello schema)
RENAME TO richiede il MANAGE privilegio nella visualizzazione.
ADD CONSTRAINT e DROP CONSTRAINT richiedono il MANAGE privilegio sulla vista metrica o sulla sua proprietà, oltre USE CATALOG al suo USE SCHEMA catalogo e schema.
ADD CONSTRAINT per una relazione è necessario anche il SELECT privilegio sulla vista metrica target, più USE CATALOG e USE SCHEMA sul catalogo e lo schema del target.
Per SET OWNER TO, i privilegi necessari dipendono dal nuovo proprietario:
- Se l'entità è manualmente, è necessario avere il
MANAGEprivilegio per la visualizzazione. - Se l'entità è un gruppo, è necessario essere membri di tale gruppo.
- In tutti gli altri casi, è necessario essere un amministratore del metastore.
Sintassi
ALTER VIEW view_name
{ rename |
SET TBLPROPERTIES clause |
UNSET TBLPROPERTIES clause |
alter_body |
schema_binding |
owner_to |
SET TAGS clause |
UNSET TAGS clause |
add_constraint |
drop_constraint }
rename
RENAME TO to_view_name
alter_body
AS { query | yaml_definition }
yaml_definition
$$
yaml_string
$$
schema_binding
WITH SCHEMA { BINDING | [ TYPE ] EVOLUTION | COMPENSATION }
property_key
{ identifier [. ...] | string_literal }
owner_to
[ SET ] OWNER TO principal
add_constraint
ADD [ CONSTRAINT name ] relationship_constraint
relationship_constraint
cardinality RELATIONSHIP TO target_view [ [ AS ] target_alias ]
{ ON condition | USING ( column [, ...] ) }
cardinality
{ MANY | ONE } TO { MANY | ONE }
drop_constraint
DROP CONSTRAINT [ IF EXISTS ] name
Parametri
-
Identifica la visualizzazione da modificare. Se non è possibile trovare la vista, Azure Databricks genera un errore di TABLE_OR_VIEW_NOT_FOUND .
RINOMINA IN to_view_name
Rinomina la vista esistente in
to_view_name.Per le viste del catalogo Unity, deve
to_view_nametrovarsi nello stesso catalogo diview_name. Per altre viste, l'oggettoto_view_namedeve trovarsi nello stesso schema diview_name.Se
to_view_namenon è qualificato, viene qualificato in modo implicito con lo schema corrente.Non è possibile rinominare le viste materializzate.
-
Imposta o reimposta una o più proprietà definite dall'utente.
Annullare le proprietà della tabella
Rimuove una o più proprietà definite dall'utente.
AS Query
Un'interrogazione che costruisce la vista a partire da tabelle di base o altre viste.
AS querynon è supportato per le visualizzazioni delle metriche.Questa clausola equivale a un'istruzione CREATE OR REPLACE VIEW in una vista esistente, ad eccezione del fatto che i privilegi concessi nella vista vengono mantenuti.
COME yaml_definition
Si applica a:
Databricks SQL
Databricks Runtime 16.4 e versioni successive
solo per Unity CatalogUn yaml_definition per una visualizzazione delle metriche.
Questa clausola equivale a un'istruzione CREATE OR REPLACE VIEW in una vista esistente, ad eccezione del fatto che i privilegi concessi nella vista vengono mantenuti.
Se si specifica nuovamente la definizione YAML, viene aggiunta, eliminata o modificata la visualizzazione delle metriche senza alcuna modifica della
parameterssintassi. Per la sintassi dei parametri, vedere CREATE VIEW. I parametri richiedono Databricks Runtime 18.2 e versioni successive.-
Si applica a:
Databricks SQL
Databricks Runtime 15.3 e versioni successiveSpecifica il modo in cui le query successive della vista si adattano alle modifiche apportate allo schema della vista a causa di modifiche apportate alle definizioni degli oggetti sottostanti. Vedere CREATE VIEW... WITH SCHEMA per informazioni dettagliate sulle modalità di associazione dello schema.
Questa clausola non è supportata per le visualizzazioni delle metriche.
[ SET ] PROPRIETARIO A principale
Trasferisce la proprietà della vista a
principal. A meno che la vista non sia definita inhive_metastore, è possibile trasferire la proprietà solo a un gruppo a cui si appartiene.Si applica a:
Databricks SQL
Databricks Runtime 11.3 LTS e versioni successiveSETè consentito come parola chiave facoltativa.ETICHETTE SET ( { tag_name = tag_value } [, ...] )
Applica tag alla visualizzazione. È necessario il
APPLY TAGprivilegio per aggiungere tag alla visualizzazione.Si applica a:
Databricks SQL
Databricks Runtime 13.3 LTS e versioni successiveUNSET TAGS ( tag_name [, ...] )
Rimuove i tag dalla visualizzazione. È necessario il
APPLY TAGprivilegio per rimuovere i tag dalla visualizzazione.Si applica a:
Databricks SQL
Databricks Runtime 13.3 LTS e versioni successivetag_name
Valore letterale
STRING. Iltag_namedeve essere univoco all'interno della visualizzazione.tag_value
Valore letterale
STRING.add_constraint
Si applica a:
Databrick SQL
Databricks Runtime 19 e superiori
solo Unity CatalogAggiunge una relazione informativa dalla vista metrica a una vista metrica target. Questa clausola è in fase Beta. Entrambi
view_nameetarget_viewdevono essere viste metriche del Catalogo Unity. Le viste metriche temporanee non sono supportate. Azure Databricks non fa rispettare le relazioni. Vedi Relazioni tra viste metriche.CONSTRAINT Nome
Opzionalmente nomina la relazione. Il nome deve essere unico tra tutti i vincoli dello schema. Se lo ometti, Azure Databricks nomina la relazione
<source>_to_<target>, usando i nomi non qualificati delle due visualizzazioni metriche.cardinality
Uno di
MANY TO ONE,ONE TO MANY,ONE TO ONEoMANY TO MANY. Azure Databricks non controlla i dati rispetto alla cardinalità.-
Identifica la vista metrica target. Il target può trovarsi in qualsiasi catalogo o schema dello stesso metastore.
COME target_alias
Opzionalmente si nomina il bersaglio in
condition. Una relazione da una vista metrica a se stessa richiede un alias che differisce dal nome diview_name.Condizione ON
Un'espressione deterministica
BOOLEANsulle colonne diview_nameetarget_view, con le stesse regole dellaONclausola di una join. L'espressione non può riferirsi a una misura. Non può chiamare una funzione aggregata, inclusi MEASURE e AGG, una funzione finestra o un generatore. Può arrivare fino a 1.024 caratteri.USING ( colonna [, ...] )
Da uno a venti colonne che esistono con lo stesso nome in entrambe le viste metriche.
drop_constraint
Si applica a:
Databrick SQL
Databricks Runtime 19 e superiori
solo Unity CatalogElimina la relazione
namedalla vista metrica. Questa clausola è in fase Beta. Se specifichiIF EXISTS, l'affermazione ha successo quando non esiste alcuna relazione con quel nome. In caso contrario, ha esito negativo conNO_SUCH_CONSTRAINT_EXCEPTION.Avvertimento
Non specificare
RESTRICTnéCASCADEquando interrompi una relazione. A differenza di ALTER TABLE DROP CONSTRAINT, queste parole chiave non hanno un comportamento definito per le relazioni, e il loro comportamento potrebbe cambiare in una futura versione.
Esempi
-- Rename only changes the view name.
-- The source and target schemas of the view must be the same.
-- Use qualified or unqualified name for the source and target view.
> ALTER VIEW tempsc1.v1 RENAME TO tempsc1.v2;
-- Verify that the new view is created.
> DESCRIBE TABLE EXTENDED tempsc1.v2;
c1 int NULL
c2 string NULL
# Detailed Table Information
Database tempsc1
Table v2
-- Before ALTER VIEW SET TBLPROPERTIES
> DESCRIBE TABLE EXTENDED tempsc1.v2;
c1 int null
c2 string null
# Detailed Table Information
Database tempsc1
Table v2
Table Properties [....]
-- Set properties in TBLPROPERTIES
> ALTER VIEW tempsc1.v2 SET TBLPROPERTIES ('created.by.user' = "John", 'created.date' = '01-01-2001' );
-- Use `DESCRIBE TABLE EXTENDED tempsc1.v2` to verify
> DESCRIBE TABLE EXTENDED tempsc1.v2;
c1 int NULL
c2 string NULL
# Detailed Table Information
Database tempsc1
Table v2
Table Properties [created.by.user=John, created.date=01-01-2001, ....]
-- Remove the key created.by.user and created.date from `TBLPROPERTIES`
> ALTER VIEW tempsc1.v2 UNSET TBLPROPERTIES (`created`.`by`.`user`, created.date);
-- Use `DESCRIBE TABLE EXTENDED tempsc1.v2` to verify the changes
> DESCRIBE TABLE EXTENDED tempsc1.v2;
c1 int NULL
c2 string NULL
# Detailed Table Information
Database tempsc1
Table v2
Table Properties [....]
-- Change the view definition
> ALTER VIEW tempsc1.v2 AS SELECT * FROM tempsc1.v1;
-- Use `DESCRIBE TABLE EXTENDED` to verify
> DESCRIBE TABLE EXTENDED tempsc1.v2;
c1 int NULL
c2 string NULL
# Detailed Table Information
Database tempsc1
Table v2
Type VIEW
View Text select * from tempsc1.v1
View Original Text select * from tempsc1.v1
-- Transfer ownership of a view to another user
> ALTER VIEW v1 OWNER TO `alf@melmak.et`
-- Change the view schema binding to adopt type evolution
> ALTER VIEW v1 WITH SCHEMA TYPE EVOLUTION;
-- Apply three tags to the view named `test`.
> ALTER VIEW test SET TAGS ('tag1' = 'val1', 'tag2' = 'val2', 'tag3' = 'val3');
-- Remove three tags from the view named `test`.
> ALTER VIEW test UNSET TAGS ('tag1', 'tag2', 'tag3');
-- Alter the metric view `region_sales_metrics` defined in CREATE VIEW
-- to drop the `total_revenue_for_open_orders` measure.
> ALTER VIEW region_sales_metrics
AS $$
version: 0.1
source: samples.tpch.orders
filter: o_orderdate > '1990-01-01'
dimensions:
- name: month
expr: date_trunc('MONTH', o_orderdate)
- name: status
expr: case
when o_orderstatus = 'O' then 'Open'
when o_orderstatus = 'P' then 'Processing'
when o_orderstatus = 'F' then 'Fulfilled'
end
- name: order_priority
expr: split(o_orderpriority, '-')[1]
measures:
- name: count_orders
expr: count(1)
- name: total_revenue
expr: SUM(o_totalprice)
- name: total_revenue_per_customer
expr: SUM(o_totalprice) / count(distinct o_custkey)
$$;
> DESCRIBE EXTENDED region_sales_metrics;
col_name data_type
month timestamp
status string
order_priority string
count_orders bigint measure
total_revenue decimal(28,2) measure
total_revenue_per_customer decimal(38,12) measure
# Detailed Table Information
Catalog main
Database default
Table region_sales_metrics
Owner alf@melmak.et
Created Time Sun May 18 23:45:25 UTC 2025
Last Access UNKNOWN
Created By Spark
Type METRIC_VIEW
Comment A metric view for regional sales metrics.
View Text "
version: 0.1
source: samples.tpch.orders
filter: o_orderdate > '1990-01-01'
dimensions:
- name: month
expr: date_trunc('MONTH', o_orderdate)
- name: status
expr: case
when o_orderstatus = 'O' then 'Open'
when o_orderstatus = 'P' then 'Processing'
when o_orderstatus = 'F' then 'Fulfilled'
end
- name: order_priority
expr: split(o_orderpriority, '-')[1]
measures:
- name: count_orders
expr: count(1)
- name: total_revenue
expr: SUM(o_totalprice)
- name: total_revenue_per_customer
expr: SUM(o_totalprice) / count(distinct o_custkey)
"
Language YAML
Table Properties [metric_view.from.name=samples.tpch.orders, metric_view.from.type=ASSET, metric_view.where=o_orderdate > '1990-01-01']
-- Declare that each order in the `orders_mv` metric view matches one customer
-- in the `customers_mv` metric view, joined on the shared `customer_id` column.
> ALTER VIEW main.sales.orders_mv ADD CONSTRAINT orders_customer
MANY TO ONE RELATIONSHIP TO main.sales.customers_mv
USING (customer_id);
-- Declare a relationship that refers to the target by an alias in the ON condition.
> ALTER VIEW main.travel.flights_mv ADD CONSTRAINT departure_city
MANY TO ONE RELATIONSHIP TO main.travel.cities_mv AS c
ON flights_mv.departure_city_id = c.city_id;
-- Drop the relationship.
> ALTER VIEW main.travel.flights_mv DROP CONSTRAINT IF EXISTS departure_city;