ALTER VIEW

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

Görünümle ilişkili meta verileri değiştirir. ayarıyla TBLPROPERTIESgörünümün tanımını değiştirebilir, görünümü yeniden adlandırabilir ve meta verileri ayarlayabilir veya kaldırabilir. Bir metrik görünüm için, ilişki ekleyip çıkarabilir (Beta).

Görünüme açıklama eklemek veya değiştirmek için kullanın COMMENT ON.

Görünüm önbelleğe alınmışsa, komut görünümün önbelleğe alınmış verilerini ve buna başvuran tüm bağımlılarını temizler. Görünüme bir sonraki erişildiğinde görünümün önbelleği gevşek bir şekilde doldurulur. komutu görünümün bağımlılarını kazınmış olarak bırakır.

Gerekli ayrıcalıklar

Unity Kataloğu'nu kullanıyorsanız, aşağıdaki işlemler görünümün sahipliğini gerektirmez:

  • SET TAGS: Ayrıcalık gerektirir APPLY TAG .
  • UNSET TAGS: Ayrıcalık gerektirir APPLY TAG .

Aşağıdaki işlemler görünümün sahipliğini gerektirir:

  • SET TBLPROPERTIES
  • UNSET TBLPROPERTIES
  • AS query (görünüm tanımını değiştir)
  • WITH SCHEMA (şema bağlamayı değiştir)

RENAME TO görünümde MANAGE ayrıcalığı gerektirir.

ADD CONSTRAINTve DROP CONSTRAINT metrik görünümü veya sahipliği, ayrıca USE CATALOGUSE SCHEMA kataloğu ve şeması üzerindeki ayrıcalık gerektirirMANAGE. ADD CONSTRAINTbir ilişki için ayrıca hedef metrik görünümü ve USE CATALOGUSE SCHEMA hedefin kataloğu ve şeması üzerinde ayrıcalık gerektirirSELECT.

için SET OWNER TOgerekli ayrıcalıklar yeni sahipe bağlıdır:

  • Sorumlu kendinizse, görünümde MANAGE ayrıcalığınız olmalıdır.
  • Sorumlu bir grupsa, bu grubun üyesi olmanız gerekir.
  • Diğer tüm durumlarda meta veri deposu yöneticisi olmanız gerekir.

Sözdizimi

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

Parametreler

  • view_name

    Değiştirilecek görünümü tanımlar. Görünüm bulunamazsa Azure Databricks bir TABLE_OR_VIEW_NOT_FOUND hatası oluşturur.

  • TO_VIEW_NAME OLARAK YENIDEN ADLANDıR

    Mevcut görünümü to_view_name olarak yeniden adlandırır.

    Unity Kataloğu görünümleri için , to_view_name ile aynı katalog view_nameiçinde olmalıdır. Diğer görünümler için , to_view_name ile aynı şema view_nameiçinde olmalıdır.

    Nitelenmemişse to_view_name , geçerli şemayla örtük olarak nitelenmiş olur.

    Gerçekleştirilmiş görünümler yeniden adlandırılamaz.

  • SET TBLPROPERTIES

    Bir veya daha fazla kullanıcı tanımlı özelliği ayarlar veya sıfırlar.

  • TBLPROPERTIES'I KALDıRMA

    Bir veya daha fazla kullanıcı tanımlı özelliği kaldırır.

  • AS sorgusu

    Görünümü temel tablolardan veya diğer görünümlerden oluşturan sorgu.

    AS query ölçüm görünümleri için desteklenmez.

    Bu yan tümce, görünümde verilen ayrıcalıkların korunması dışında mevcut görünümdeki CREATE VEYA REPLACE VIEW deyimine eşdeğerdir.

  • AS yaml_definition

    Şunun için geçerlidir:evet olarak işaretlendi Databricks SQL evet olarak işaretlendi Databricks Runtime 16.4 ve üzeri evet olarak işaretlendi Sadece Unity Kataloğu

    Ölçüm görünümü için YAML tanımı.

    Bu yan tümce, görünümde verilen ayrıcalıkların korunması dışında mevcut görünümdeki CREATE VEYA REPLACE VIEW deyimine eşdeğerdir.

    YAML tanımının yeniden belirtilmesi, söz dizimi değişikliği olmadan ölçüm görünümünü parameters ekler, bırakır veya değiştirir. Parametre söz dizimi için bkz CREATE VIEW. . Parametreler Databricks Runtime 18.2 ve üzerini gerektirir.

  • şema_bağlama

    Şunun için geçerlidir:evet olarak işaretlendi Databricks SQL evet olarak işaretlendi Databricks Runtime 15.3 ve üzeri

    Görünümün şemasına yapılan değişikliklere uyum sağlamak amacıyla, temel alınan nesne tanımlarındaki değişiklikler sonrasında görünümün nasıl sorgulanacağını belirtir. Bkz.CREATE VIEW ... ŞEMA bağlama modlarıyla ilgili ayrıntılar için WITHSCHEMA.

    Bu madde ölçüm görünümleri için desteklenmez.

  • [ SET ] SAHİBİ TEMEL

    Görünümün sahipliğini öğesine principalaktarır. Görünüm içinde hive_metastoretanımlanmadığı sürece, sahipliğini yalnızca ait olduğunuz bir gruba aktarabilirsiniz.

    Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 11.3 LTS ve üzeri

    SET isteğe bağlı anahtar sözcük olarak izin verilir.

  • SET TAGS ( { tag_name = tag_value } [, ...] )

    Etiketleri görünüme uygular. Görünüme APPLY TAG etiket eklemek için ayrıcalığınız olmalıdır.

    Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 13.3 LTS ve üzeri

  • ETIKETLERIN KÜMESINI KALDıR ( tag_name [, ...] )

    Etiketleri görünümden kaldırır. Etiketleri görünümden kaldırmak için ayrıcalığınız olmalıdır APPLY TAG .

    Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 13.3 LTS ve üzeri

  • tag_name

    Değişmez değer STRING. tag_name görünümü içinde benzersiz olmalıdır.

  • tag_value

    Değişmez değer STRING.

  • add_constraint

    Geçerlidir:işaretlenmiş evet, Databricks SQL işaretli evet Databricks Runtime 19 ve üzeri işaretli evet Unity Catalog için geçerlidir.

    Metrik görünümünden hedef metrik görünümüne bilgi ilişkisi ekler. Bu madde Beta'da. Her ikisi view_name de target_view Unity Kataloğu metrik görünümleri olmalıdır. Geçici metrik görünümler desteklenmiyor. Azure Databricks ilişkileri zorunlu kılmaz. Metrik görünümler arasındaki ilişkilere bakınız.

    • CONSTRAINT İsim

      İstehşi olarak ilişkiye isim ver. İsmin, şemadaki tüm kısıtlamalar arasında benzersiz olması gerekir. Eğer bunu çıkarırsanız, Azure Databricks ilişkiyi <source>_to_<target>iki metrik görünümünün niteliksiz isimleriyle adlandırır.

    • kardinalite

      Biri MANY TO ONE, ONE TO MANY, ONE TO ONE veya MANY TO MANY. Azure Databricks verileri kardinaliteyle karşılaştırmıyor.

    • TO target_view

      Hedef metrik görünümünü tanımlar. Hedef, aynı metastore'un herhangi bir katalogunda veya şemasında olabilir.

    • AS target_alias

      İstehsal olarak hedefi 'de conditionadlandırır. Bir metrik bakış açısından kendisiyle ilişki, 'nın view_nameadından farklı bir takma ad gerektirir.

    • ŞARTLI

      Ve target_viewsütunları view_name üzerinde deterministik BOOLEAN bir ifade, birleştirme cümlesinin kurallarına sahiptirON. İfade bir ölçüye referans veremez. MEASURE ve AGG dahil olmak üzere bir toplam fonksiyon, pencere fonksiyonu veya bir üretici çağıramaz. En fazla 1.024 karakter olabilir.

    • KULLANIM ( sütun [, ...] )

      Her iki metrik görünümde de aynı isimle bir ila 20 sütun var.

  • drop_constraint

    Geçerlidir:işaretlenmiş evet, Databricks SQL işaretli evet Databricks Runtime 19 ve üzeri işaretli evet Unity Catalog için geçerlidir.

    İlişkini name metrik görünümünden çıkarıyor. Bu madde Beta'da. Eğer belirtirseniz IF EXISTS, bu isimle ilişki olmadığında ifadesi başarılı olur. Aksi takdirde, . ile başarısız NO_SUCH_CONSTRAINT_EXCEPTIONolur.

    Warning

    İlişkiyi ne zaman bitireceğinizi belirtmeyin RESTRICTCASCADE . Bunun aksine ALTER TABLE DROP CONSTRAINT, bu anahtar kelimelerin ilişkiler için tanımlanmış bir davranışı yoktur ve davranışları gelecekteki bir sürümde değişebilir.

Örnekler

-- 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;