REFRESH (MATERIALIZED VIEW atau STREAMING TABLE)

Berlaku untuk:centang ditandai ya Databricks SQL

Refresh data untuk tabel streaming atau tampilan materialisasi. Data disegarkan secara sinkron secara default. Anda dapat melacak status refresh dengan menjalankan DESCRIBE EXTENDED.

Catatan

Operasi buat dan refresh pada tampilan materialisasi dan tabel streaming didukung oleh alur Lakeflow tanpa server. Anda dapat menggunakan Catalog Explorer untuk melihat detail tentang alur backing di UI. Lihat Apa itu Catalog Explorer?.

Catatan

REFRESH MATERIALIZED VIEW juga berlaku untuk tampilan metrik materialisasi. Gunakan untuk me-refresh materialisasi yang mendukung tampilan metrik secara manual. Lihat Materialisasi untuk tampilan metrik.

Sintaks

REFRESH { MATERIALIZED VIEW | [ STREAMING ] TABLE } table_name
  [ FULL ] [ WHERE predicate ] [ SYNC | ASYNC ]

Anda dapat menentukan subset apa pun dari FULL, WHERE, dan SYNC atau ASYNC dalam perintah yang sama.

Parameter

  • table_name

    Mengidentifikasi tampilan materialisasi atau tabel streaming untuk di-refresh. Nama tidak boleh menyertakan spesifikasi temporal atau spesifikasi opsi. Jika objek tidak dapat ditemukan, Azure Databricks menimbulkan kesalahan TABLE_OR_VIEW_NOT_FOUND .

  • PENUH

    Apakah akan melakukan refresh penuh.

    • Untuk tampilan materialisasi, refresh penuh memproses semua data yang tersedia di sumbernya.
    • Untuk tabel streaming, pemutakhiran penuh memangkas tabel dan memproses semua data yang tersedia di sumber dengan definisi terbaru tabel streaming.

    Tidak disarankan untuk memanggil refresh penuh pada sumber yang tidak menyimpan seluruh riwayat data atau memiliki periode retensi singkat, seperti Kafka, karena refresh penuh memotong data yang ada. Anda mungkin tidak dapat memulihkan data lama jika data tidak lagi tersedia di sumbernya.

  • Predikat WHERE

    Berlaku untuk:centang bertanda ya tabel streaming yang FLOW REPLACE WHERE dibuat dengan klausa

    Mengambil alih predikat alur REPLACE WHERE untuk refresh tunggal ini. Refresh hanya menghapus baris yang cocok predicate dari target dan mengolah ulang dari sumbernya. Predikat alur yang ditentukan tidak berubah dan berlaku lagi pada refresh berikutnya, sehingga penimpaan predikat adalah operasi satu kali yang tidak mengubah definisi tabel. Gunakan untuk backfill atau koreksi satu kali. Lihat alur REPLACE WHERE untuk tabel streaming mandiri.

    Klausa WHERE hanya didukung pada tabel streaming yang alurnya dibuat dengan FLOW REPLACE WHERE. Menentukan WHERE pada tabel streaming lainnya, atau pada tampilan materialisasi, mengembalikan kesalahan.

  • SYNC

    Apakah akan melakukan refresh sinkron. Perintah memblokir hingga tampilan materialisasi atau tabel streaming dibuat dan beban data awal selesai.

    Ini adalah perilaku default.

  • ASINKRON

    Apakah akan melakukan refresh asinkron, yang memulai pekerjaan latar belakang pada alur Lakeflow. Perintah kembali segera sebelum pemuatan data selesai dengan tautan ke alur yang mendukung tampilan materialisasi atau tabel streaming. Anda dapat mengunjungi tautan untuk melihat status refresh.

    Anda harus menentukan ASYNC apakah Anda ingin melakukan refresh asinkron. Operasi dilakukan secara sinkron jika tidak ada kata kunci yang ditentukan.

Contoh

-- Refreshes the materialized view to reflect the latest available data
> REFRESH MATERIALIZED VIEW catalog.schema.view_name;

-- Refreshes the streaming table to process the latest available data
-- The current catalog and schema will be used to qualify the table
> REFRESH STREAMING TABLE st_name;

-- Truncates the table and processes all data from scratch for the streaming table
> REFRESH STREAMING TABLE cat.db.st_name FULL;

-- Overrides the REPLACE WHERE predicate for a single asynchronous refresh.
-- Only rows matching id = 3 are recomputed. The flow's static predicate is unchanged.
> REFRESH STREAMING TABLE rep_st WHERE id = 3 ASYNC;