Bagikan melalui


ALTER STREAMING TABLE

Berlaku untuk:centang ditandai ya Databricks SQL

Memungkinkan Anda melakukan salah satu tindakan berikut:

  • Tambahkan jadwal atau pemicu untuk me-refresh tabel streaming yang sudah ada.
  • Mengubah jadwal refresh atau pemicu yang ada untuk tabel streaming.
  • Hilangkan jadwal refresh atau pemicu untuk tabel streaming. Jika tidak ada jadwal atau pemicu, objek perlu di-refresh secara manual untuk mencerminkan data terbaru.

Untuk menambahkan atau mengubah komentar pada tabel streaming, 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 STREAMING TABLE table_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-parameternya

  • table_name

    Nama dari tabel streaming yang akan diubah definisinya. Nama tidak boleh menyertakan spesifikasi temporal.

  • jadwal

    Tambahkan atau ubah SCHEDULE pernyataan atau TRIGGER pada tabel.

    Catatan

    Anda tidak dapat mengubah jadwal tabel streaming 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 quartz cron. Time_zone_values yang valid diterima. AT TIME ZONE LOCAL tidak didukung.

        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 ]

      Penting

      Fitur ini TRIGGER ON UPDATE ada di Beta.

      Mengatur tabel untuk di-refresh 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 upstream per tabel streaming 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 tabel streaming.

  • ALTER COLUMN clause

    Lihat klausa ALTERCOLUMN.

  • SET ROW FILTER klausa

    Penting

    Fitur ini ada di Pratinjau Publik.

    Menambahkan fungsi filter baris ke tabel streaming. Semua kueri berikutnya ke tabel streaming menerima subset baris dengan fungsi yang mengevaluasi 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

    Penting

    Fitur ini ada di Pratinjau Publik.

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

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

    Penting

    Fitur ini ada di Pratinjau Publik.

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

    • tag_name

      Sebuah makna harfiah STRING. tag_name harus unik dalam tabel streaming.

    • tag_value

      Sebuah makna harfiah STRING.

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

    Penting

    Fitur ini ada di Pratinjau Publik.

    Hapus tag dari tabel streaming. Anda harus memiliki APPLY TAG izin untuk menghapus tag dari tabel streaming.

    • tag_name

      Sebuah makna harfiah STRING. tag_name harus unik dalam tabel streaming.

Klausa ALTER COLUMN

Penting

Fitur ini ada di Pratinjau Publik.

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

  • column_identifier

    Nama kolom yang akan diubah.

  • COMMENT comment

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

  • SET Klausa MASK

    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

    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 } [, ...] )

    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 [, ...] )

    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 streaming table whenever its upstream data gets updated.
> ALTER STREAMING TABLE my_st
    ADD TRIGGER ON UPDATE;

-- Alters the schedule to refresh the streaming table when its upstream data
-- gets updated, with no more than one update per hour.
> ALTER STREAMING TABLE my_st
    ALTER TRIGGER ON UPDATE AT MOST EVERY INTERVAL 1 hour;

-- Alters the schedule to run every one hour.
> ALTER STREAMING TABLE my_st
  ALTER SCHEDULE EVERY 1 HOUR;

-- Alters the schedule to refresh the streaming table once a day
-- at midnight in Los Angeles
> ALTER STREAMING TABLE my_st
  ALTER SCHEDULE CRON '0 0 0 * * ? *' AT TIME ZONE 'America/Los_Angeles';

-- Drops the schedule for a streaming table
> ALTER STREAMING TABLE my_st
  DROP SCHEDULE;

-- Adds a column comment
> ALTER STREAMING TABLE my_st
    ALTER COLUMN column_name COMMENT 'test'