ALTER SCHEMA

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime

Mengubah pemilik skema, mengubah lokasi penyimpanan terkelola skema, mengatur perilaku pengoptimalan prediktif , mengubah metadata yang terkait dengan skema dengan mengatur DBPROPERTIES, atau mengatur periode pemulihan untuk tabel terkelola yang dihilangkan. Nilai properti yang ditentukan menggantikan nilai yang ada dengan nama properti yang sama.

Meskipun penggunaan SCHEMA dan DATABASE dapat dipertukarkan, SCHEMA lebih disukai.

Permissions

Untuk mengubah skema di Unity Catalog, Anda harus memiliki MANAGE hak istimewa pada skema atau menjadi pemiliknya, ditambah USE SCHEMA pada skema dan USE CATALOG pada katalog tempat skema berada.

Sesuai hierarki objek, pemilik katalog induk dan pengguna dengan MANAGE pada katalog induk juga dapat melakukan operasi ini.

Sintaks

ALTER SCHEMA schema_name
    { DEFAULT COLLATION default_collation_name |
      SET DBPROPERTIES ( { key = val } [, ...] ) |
      [ SET ] OWNER TO principal
      SET TAGS ( { tag_name = tag_value } [, ...] ) |
      UNSET TAGS ( tag_name [, ...] ) |
      { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION |
      SET MANAGED LOCATION location |
      [ SET ] RETAIN DROPPED TO number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS } }

Parameter

  • schema_name

    Nama skema yang akan diubah. Jika skema tidak dapat ditemukan, Azure Databricks menimbulkan kesalahan SCHEMA_NOT_FOUND.

  • KOLASI DEFAULT default_collation_name

    Berlaku untuk:check ditandai ya pemeriksaan Databricks SQL ditandai ya Databricks Runtime 17.1 ke atas

    Mengubah kolate default untuk objek baru yang ditentukan dalam skema. Kolatasi default objek yang ada dalam skema tidak diubah.

  • DBPROPERTIES ( kunci = nilai [, ...] )

    Properti pada skema yang akan dikonfigurasi atau tidak dikonfigurasi.

  • [ SET ] PEMILIK KE UTAMA

    Mengalihkan hak milik skema ke principal.

    Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime 11.3 LTS ke atas

    SET diperbolehkan sebagai kata kunci opsional.

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

    Terapkan tag ke skema. Anda harus memiliki USE SCHEMA untuk menerapkan tag ke skema.

    Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime 13.3 LTS ke atas

  • HAPUS TAGS ( nama_tag [, ...] )

    Hapus tag dari skema. Anda harus memiliki USE SCHEMA untuk menghapus tag dari skema.

    Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime 13.3 LTS ke atas

  • tag_name

    Secara literal STRING. tag_name harus unik dalam skema.

  • tag_value

    Secara literal STRING.

  • { AKTIFKAN | NONAKTIFKAN | MEWARISI } PENGOPTIMALAN PREDIKTIF

    Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime 12.2 LTS ke atas centang ditandai ya Hanya Unity Catalog

    Mengubah skema ke pengaturan pengoptimalan prediktif yang diinginkan. Secara default, ketika skema dibuat, perilakunya adalah INHERIT dari katalog. Secara default, objek baru yang dibuat dalam skema akan mewarisi pengaturan dari skema.

    Jika skema diubah, perilaku akan bersifat kaskade ke semua objek yang mewarisi pengoptimalan prediktif. Objek yang secara eksplisit menerapkan pengoptimalan prediktif ENABLE atau DISABLE tidak terpengaruh oleh pengaturan skema.

    Untuk mengatur pengoptimalan prediktif untuk skema, pengguna harus memiliki izin CREATE pada skema.

    Hanya skema dalam katalog terkelola non-OpenSharing di Katalog Unity yang memenuhi syarat untuk pengoptimalan prediktif.

  • SET Lokasi TERKELOLA

    Berlaku untuk:check ditandai ya pemeriksaan Databricks SQL ditandai ya Databricks Runtime 18.1 ke atas centang ditandai ya Unity Catalog saja

    Mengubah lokasi penyimpanan terkelola untuk skema standar. Tabel terkelola baru dan volume terkelola yang dibuat dalam skema menggunakan lokasi yang diperbarui. Databricks tidak memindahkan objek yang ada.

    • Lokasi

      Jalur penyimpanan cloud untuk lokasi penyimpanan terkelola baru. Ini harus terkandung dalam lokasi eksternal.

  • [ SET ] PERTAHANKAN DIJATUHKAN KE nomor { HOUR | JAM | HARI | HARI | MINGGU | MINGGU }

    Berlaku untuk:check ditandai ya Databricks Runtime 17.3 ke atas centang ditandai ya Unity Catalog saja

    Important

    Fitur ini ada di Pratinjau Umum.

    Mengatur periode pemulihan untuk tabel terkelola yang dihilangkan dalam skema, periode di mana tabel yang dihilangkan dapat dipulihkan menggunakan UNDROP TABLE perintah . Default mewarisi dari katalog induk (7 hari jika tidak ditetapkan). Nilainya harus 0 jam (untuk menonaktifkan pemulihan) atau antara 7–30 hari, inklusif.

    Mengatur periode pemulihan ke 0 berarti tabel yang dihilangkan tidak dapat dipulihkan menggunakan UNDROP dan file data dihapus dari penyimpanan cloud dalam waktu 48 jam.

    Periode pemulihan tingkat skema lebih diutamakan daripada pengaturan tingkat katalog apa pun untuk tabel dalam skema. Pengaturan ini hanya berlaku untuk tabel yang dihilangkan setelah periode pemulihan dikonfigurasi. Setelah periode pemulihan berakhir, file data untuk tabel terkelola dihapus dari penyimpanan cloud Anda dalam waktu 48 jam.

    SET diperbolehkan sebagai kata kunci opsional. MANAGE Memerlukan hak istimewa atau kepemilikan pada skema. Lihat juga Menghilangkan tabel terkelola.

Contoh

-- Creates a schema named `inventory`.
> CREATE SCHEMA inventory;

-- Alters the schema to set properties `Edited-by` and `Edit-date`.
> ALTER SCHEMA inventory SET DBPROPERTIES ('Edited-by' = 'John', 'Edit-date' = '01/01/2001');

-- Verify that properties are set.
> DESCRIBE SCHEMA EXTENDED inventory;
 database_description_item                 database_description_value
 ------------------------- ------------------------------------------
             Database Name                                  inventory
               Description
                  Location    file:/temp/spark-warehouse/inventory.db
                Properties ((Edit-date,01/01/2001), (Edited-by,John))

-- Transfer ownership of the schema to another user
> ALTER SCHEMA inventory OWNER TO `alf@melmak.et`

-- Applies three tags to the schema named `test`.
> ALTER SCHEMA test SET TAGS ('tag1' = 'val1', 'tag2' = 'val2', 'tag3' = 'val3');

-- Removes three tags from the schema named `test`.
> ALTER SCHEMA test UNSET TAGS ('tag1', 'tag2', 'tag3');

-- Enables predictive optimization for objects in schema my_schema
> ALTER SCHEMA my_schema ENABLE PREDICTIVE OPTIMIZATION;

-- Alter the default collation of a schema
> ALTER SCHEMA my_schema DEFAULT COLLATION UNICODE_CI_AI;

-- Change the managed storage location of a schema
> ALTER SCHEMA my_catalog.my_schema SET MANAGED LOCATION 's3://my-bucket/schemas/my_schema/';

-- Set a 14-day recovery period for dropped managed tables in a schema
> ALTER SCHEMA my_catalog.my_schema RETAIN DROPPED TO 14 DAYS;

-- Set a 7-day recovery period (overrides any catalog-level setting)
> ALTER SCHEMA my_catalog.my_schema SET RETAIN DROPPED TO 7 DAYS;