Bagikan melalui


REFRESH Klausul POLICY

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

Penting

Fitur ini ada di Beta. Admin ruang kerja dapat mengontrol akses ke fitur ini dari halaman Pratinjau . Lihat Kelola Pratinjau Azure Databricks.

Menambahkan kebijakan refresh ke tampilan materialisasi, mengontrol kapan harus menambah penyegaran. Berlaku untuk CREATE MATERIALIZED VIEW pernyataan.

Untuk mempelajari tentang inkrementalisasi, lihat Refresh inkremental untuk tampilan materialisasi. Anda dapat memeriksa apakah kueri SQL inkrementalizable dengan EXPLAIN CREATE MATERIALIZED VIEW pernyataan tersebut. Lihat EXPLAIN CREATE MATERIALIZED VIEW.

Syntax

REFRESH POLICY refresh_policy

refresh_policy:
  AUTO | INCREMENTAL | INCREMENTAL STRICT | FULL

Parameter-parameternya

  • refresh_policy

    Menentukan kebijakan refresh untuk tampilan materialisasi. Jika dihilangkan REFRESH POLICY , AUTO adalah kebijakan default.

    Kebijakan refresh menentukan bagaimana refresh menangani inkrementalisasi tampilan materialisasi.

    • AUTO

      Sistem secara otomatis memilih refresh inkremental atau penuh, berdasarkan model biaya.

      State Perilaku
      Inkremental tersedia untuk refresh. Menggunakan model biaya untuk menentukan mana yang lebih murah, inkremental atau penuh.
      Inkremental tidak tersedia untuk refresh. Melakukan refresh penuh.
      Membuat atau menginisialisasi ulang diperlukan (misalnya, pada perubahan skema) Melakukan refresh penuh.
    • INCREMENTAL

      Sistem menggunakan refresh inkremental jika memungkinkan. Pada CREATE, jika kueri tidak dimungkinkan untuk ditahapkan, pembuatan gagal.

      State Perilaku
      Inkremental tersedia untuk refresh. Melakukan refresh inkremental.
      Inkremental tidak tersedia untuk refresh. Melakukan refresh penuh.
      Membuat atau menginisialisasi ulang diperlukan, tetapi inkrementalisasi dimungkinkan untuk kueri. Melakukan refresh penuh.
      Membuat atau menginisialisasi ulang diperlukan, dan inkrementalisasi tidak dimungkinkan untuk kueri. Operasi gagal.
    • INCREMENTAL STRICT

      Sistem menggunakan refresh inkremental. Pada CREATE, jika kueri tidak dimungkinkan untuk ditahapkan, pembuatan gagal.

      State Perilaku
      Inkremental tersedia untuk refresh. Melakukan refresh inkremental.
      Inkremental tidak tersedia untuk refresh. Refresh gagal.
      Membuat atau menginisialisasi ulang diperlukan, tetapi inkrementalisasi dimungkinkan untuk kueri. Melakukan refresh penuh.
      Membuat atau menginisialisasi ulang diperlukan, dan inkrementalisasi tidak dimungkinkan untuk kueri. Operasi gagal.
    • FULL

      Sistem selalu menggunakan refresh penuh.

      State Perilaku
      Inkremental tersedia untuk refresh. Melakukan refresh penuh.
      Inkremental tidak tersedia untuk refresh. Melakukan refresh penuh.
      Membuat atau menginisialisasi ulang diperlukan. Melakukan refresh penuh.

Perilaku pada kegagalan

Ketika refresh gagal karena tidak dapat memenuhi kebijakan refresh (untuk REFRESH POLICY INCREMENTAL (STRICT)), sistem mengembalikan kelas MATERIALIZED_VIEW_NOT_INCREMENTALIZABLE kesalahan dengan informasi terperinci yang menjelaskan alasan tidak dapat ditingkatkan. Contohnya:

  • OPERATOR_NOT_SUPPORTED: Operator, seperti gabungan kompleks, mencegah inkrementalisasi.
  • EXPRESSION_NOT_DETERMINSTIC: Fungsi non-deterministik, seperti RAND, digunakan dalam kueri.

Untuk memahami apa yang membuat kueri tidak dapat diubah, lihat Refresh inkremental untuk tampilan materialisasi.

Untuk memeriksa apakah kueri SQL dapat diperbaiki, gunakan pernyataan .EXPLAINCREATE MATERIALIZED VIEW Lihat EXPLAIN CREATE MATERIALIZED VIEW.

Examples

-- Create a materialized view with an incremental policy
CREATE MATERIALIZED VIEW IF NOT EXISTS my_mv
REFRESH POLICY INCREMENTAL
AS SELECT a, sum(b) FROM my_catalog.example.my_table GROUP BY a;