ALTER MATERIALIZED VIEW

Berlaku untuk:centang ditandai ya Databricks SQL

Mengubah metadata yang terkait dengan tampilan.

Memungkinkan Anda melakukan salah satu tindakan berikut:

  • Menambahkan, mengubah, atau menghilangkan jadwal atau pemicu untuk me-refresh tampilan materialisasi yang ada. Jika tidak ada jadwal atau pemicu, objek perlu di-refresh secara manual untuk mencerminkan data terbaru.
  • Tambah, ubah, atau hapus filter baris untuk view materialisasi yang ada.
  • Mengatur atau membatalkan pengaturan tag pada view materialisasi yang sudah ada.
  • Ubah properti kolom untuk tampilan materialisasi yang ada, termasuk mask, tag, dan komentar.

Untuk menambahkan atau mengubah komentar pada tampilan materialisasi, gunakan COMMENT ON.

Catatan

Mengubah dataset yang dibuat oleh pipeline dengan cara yang bertentangan dengan SQL yang mendefinisikannya dapat menyebabkan beberapa perubahan dibatalkan. Lihat Menggunakan ALTER perintah dengan Alur Deklaratif Lakeflow Spark.

Sintaks

ALTER MATERIALIZED VIEW view_name
  {
    { ADD | ALTER } schedule |
    DROP SCHEDULE |
    ALTER COLUMN column_clause |
    SET ROW FILTER clause |
    DROP ROW FILTER |
    SET TAGS clause |
    UNSET TAGS clause }

  schedule
    { SCHEDULE [ REFRESH ] schedule_clause |
      TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ] }

  schedule_clause
    { EVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS } |
      CRON cron_string [ AT TIME ZONE timezone_id ] }

  column_clause
    column_identifier
    { COMMENT clause |
      SET MASK clause |
      DROP MASK |
      SET TAGS clause |
      UNSET TAGS clause }

Parameter

  • view_name

    Nama tampilan materialisasi untuk mengubah definisi. Nama tidak boleh menyertakan spesifikasi temporal.

  • jadwal

    Tambahkan atau ubah SCHEDULE pernyataan atau TRIGGER pada tampilan materialisasi.

    Catatan

    Anda tidak dapat mengubah jadwal tampilan materialisasi yang dibuat dengan Alur Deklaratif Lakeflow Spark dengan perintah ini. Gunakan pipeline editor.

    • SCHEDULE [ REFRESH ] schedule_clause

      • EVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS }

        Untuk menjadwalkan refresh yang terjadi secara berkala, gunakan sintaks EVERY. Jika sintaks EVERY ditentukan, tabel streaming atau tampilan materialisasi di-refresh secara berkala pada interval yang ditentukan berdasarkan nilai yang disediakan, seperti HOUR, HOURS, DAY, DAYS, WEEK, atau WEEKS. Tabel berikut ini mencantumkan nilai bilangan bulat yang diterima untuk number.

        Unit waktu Nilai bilangan bulat
        HOUR or HOURS 1 <= H <= 72
        DAY or DAYS 1 <= D <= 31
        WEEK or WEEKS 1 <= W <= 8

        Catatan

        Bentuk tunggal dan jamak dari unit waktu yang disertakan setara secara semantik.

      • CRON cron_string [ AT TIME ZONE timezone_id ]

        Untuk menjadwalkan refresh menggunakan nilai cron kuarsa . Time_zone_values yang valid diterima. AT TIME ZONE LOCAL tidak didukung.

        Ekspresi cron menggunakan enam bidang yang dipisahkan spasi dalam urutan: seconds minutes hours day-of-month month day-of-week. Gunakan ? untuk salah satu day-of-month atau day-of-week untuk membiarkannya tidak ditentukan.

        Misalnya, SCHEDULE CRON '0 0 0 * * ?' AT TIME ZONE 'UTC' refresh setiap hari pada tengah malam UTC.

        Jika AT TIME ZONE tidak ada, zona waktu sesi digunakan. Jika AT TIME ZONE tidak ada dan zona waktu sesi tidak diatur, kesalahan akan muncul. SCHEDULE secara semantik setara SCHEDULE REFRESHdengan .

    • TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ]

      Mengatur tampilan materialisasi untuk disegarkan saat sumber data upstram diperbarui, paling banyak sekali setiap menit. Tetapkan nilai untuk AT MOST EVERY memerlukan setidaknya waktu minimum antara refresh.

      Sumber data upstream harus berupa tabel Delta eksternal atau terkelola (termasuk tampilan materialisasi atau tabel streaming), atau tampilan terkelola yang dependensinya terbatas pada jenis tabel yang didukung.

      Mengaktifkan peristiwa file dapat membuat pemicu lebih berkinerja, dan meningkatkan beberapa batasan pada pembaruan pemicu.

      trigger_interval adalah pernyataan INTERVAL yang setidaknya 1 menit.

      TRIGGER ON UPDATE memiliki batasan berikut

      • Tidak lebih dari 10 sumber data hulu per tampilan materialisasi saat menggunakan TRIGGER ON UPDATE.
      • Maksimum 1000 tabel streaming atau tampilan materialisasi dapat ditentukan dengan TRIGGER ON UPDATE.
      • Klausa AT MOST EVERY default ke 1 menit, dan tidak boleh kurang dari 1 menit.
  • DROP SCHEDULE

    Menghapus jadwal dari tampilan materialisasi.

  • ALTER COLUMN clause

    Lihat klausa ALTERCOLUMN.

  • SET ROW FILTER klausa

    Berlaku untuk:dicentang ya Databricks SQL dicentang ya Databricks Runtime 16.2 dan versi lebih baru

    Menambahkan fungsi filter baris ke tampilan materialisasi. Semua kueri berikutnya ke tampilan terwujud menerima subset baris di mana fungsi dievaluasi menjadi boolean TRUE. Ini dapat berguna untuk tujuan kontrol akses menurun di mana fungsi dapat memeriksa identitas atau keanggotaan grup pengguna yang memanggil untuk menentukan apakah akan memfilter baris tertentu.

    Filter baris ditambahkan setelah pembuatan hanya disebarkan ke tabel hilir setelah pembaruan berikutnya. Untuk alur berkelanjutan, ini memerlukan mulai ulang alur.

  • DROP ROW FILTER

    Berlaku untuk:dicentang ya Databricks SQL dicentang ya Databricks Runtime 16.2 dan versi lebih baru

    Menghilangkan filter baris dari tampilan materialisasi, jika ada. Kueri di masa mendatang akan mengembalikan semua baris dari tabel tanpa pemfilteran otomatis.

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

    Berlaku untuk:bercentang ya Databricks SQL bercentang ya Databricks Runtime 16.3 ke atas

    Terapkan tag ke tampilan terwujud / "materialized view" Anda perlu memiliki izin APPLY TAG untuk menambahkan tag ke tampilan materialisasi.

    • tag_name

      Sebuah makna harfiah STRING. tag_name harus unik dalam tampilan atau kolom yang terwujud.

    • tag_value

      Sebuah makna harfiah STRING.

  • UNSET TAGS ( tag_name [, ...] )

    Berlaku untuk:bercentang ya Databricks SQL bercentang ya Databricks Runtime 16.3 ke atas

    Hapus tag dari tampilan materialisasi. Anda harus memiliki APPLY TAG izin untuk menghapus tag dari tampilan yang telah materialisasi.

    • tag_name

      Sebuah makna harfiah STRING. tag_name harus unik dalam tampilan atau kolom yang terwujud.

Klausa ALTER COLUMN

Mengubah properti atau lokasi kolom.

Sintaks

  ALTER COLUMN
    column_identifier
    { COMMENT comment |
      SET MASK mask_clause |
      DROP MASK |
      SET TAGS clause |
      UNSET TAGS clause }

Parameter

  • column_identifier

    Nama kolom yang akan diubah.

  • COMMENT comment

    Berlaku untuk:dicentang ya Databricks SQL dicentang ya Databricks Runtime 16.2 dan versi lebih baru

    Mengubah deskripsi kolom column_name. comment harus berupa nilai literal STRING.

  • SET Klausa MASK

    Berlaku untuk:dicentang ya Databricks SQL dicentang ya Databricks Runtime 16.2 dan versi lebih baru

    Menambahkan fungsi masker kolom untuk menganonimkan data sensitif. Semua kueri berikutnya dari kolom tersebut akan menerima hasil evaluasi fungsi tersebut di atas kolom sebagai pengganti nilai asli kolom. Ini dapat berguna untuk tujuan kontrol akses terperinci di mana fungsi dapat memeriksa identitas atau keanggotaan grup pengguna yang memanggil untuk menentukan apakah akan menyunting nilai tersebut.

    Masker kolom yang ditambahkan setelah dibuat hanya akan dipropagasi ke tabel penerus setelah pembaruan berikutnya. Untuk alur berkelanjutan, ini memerlukan mulai ulang alur.

  • DROP MASK

    Berlaku untuk:dicentang ya Databricks SQL dicentang ya Databricks Runtime 16.2 dan versi lebih baru

    Menghapus masker kolom untuk kolom ini, jika ada. Kueri di masa mendatang dari kolom ini akan menerima nilai asli kolom.

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

    Berlaku untuk:bercentang ya Databricks SQL bercentang ya Databricks Runtime 16.3 ke atas

    Terapkan tag ke kolom. Anda harus memiliki APPLY TAG izin untuk menambahkan tag ke kolom.

    • tag_name

      Sebuah makna harfiah STRING. tag_name harus unik dalam tabel atau kolom.

    • tag_value

      Sebuah makna harfiah STRING.

  • UNSET TAGS ( tag_name [, ...] )

    Berlaku untuk:bercentang ya Databricks SQL bercentang ya Databricks Runtime 16.3 ke atas

    Hapus tag yang diberikan dari kolom. Anda harus memiliki APPLY TAG izin untuk menghapus tag dari kolom.

    • tag_name

      Sebuah makna harfiah STRING. tag_name harus unik dalam tabel atau kolom.

Contoh

-- Adds a schedule to refresh the materialized view whenever its upstream data gets updated.
> ALTER MATERIALIZED VIEW my_mv
    ADD TRIGGER ON UPDATE;

-- Alters the schedule to refresh the materialized view when its upstream data
-- gets updated, and make sure the update frequency is no more than 1 update
-- per hour.
> ALTER MATERIALIZED VIEW my_mv
    ALTER TRIGGER ON UPDATE AT MOST EVERY INTERVAL 1 hour;

-- Alters the schedule to run every two hours for a materialized view
> ALTER MATERIALIZED VIEW my_mv
    ALTER SCHEDULE EVERY 2 HOURS;

-- Alters the schedule to refresh a materialized view once a day
-- at midnight in Los Angeles
> ALTER MATERIALIZED VIEW my_mv
    ALTER SCHEDULE CRON '0 0 0 * * ? *' AT TIME ZONE 'America/Los_Angeles';

-- Drops the schedule for a materialized view
> ALTER MATERIALIZED VIEW my_mv
    DROP SCHEDULE;

-- Adds a column comment
> ALTER MATERIALIZED VIEW my_mv
    ALTER COLUMN my_column_name COMMENT 'test'