全部产品
Search
文档中心

AnalyticDB:Mengelola tampilan yang di-materialisasi

更新时间:Mar 03, 2026

Setelah membuat tampilan yang di-materialisasi, Anda dapat mengelola semua tampilan tersebut dalam kluster AnalyticDB for MySQL. Misalnya, Anda dapat mengkueri catatan refresh, mengkueri definisi, mengubah kelompok sumber daya elastis yang digunakan, mengaktifkan atau menonaktifkan fitur query rewrite, serta menghapus tampilan yang di-materialisasi.

Mengkueri definisi tampilan yang di-materialisasi

Anda dapat mengkueri pernyataan DDL yang digunakan untuk membuat tampilan yang di-materialisasi.

Izin yang diperlukan

Anda harus memiliki izin SELECT pada tampilan yang di-materialisasi tersebut. Untuk mendapatkan izin ini, akun istimewa atau akun standar yang memiliki izin GRANT dapat memberikan izin SELECT kepada akun Anda melalui halaman Account Management di Konsol atau dengan menjalankan pernyataan GRANT SELECT ON database.mv_name TO username;.

Sintaks

SHOW CREATE MATERIALIZED VIEW <mv_name>

Contoh

Mengkueri pernyataan DDL yang digunakan untuk membuat tampilan yang di-materialisasi compl_mv1.

SHOW CREATE MATERIALIZED VIEW demo.compl_mv1;

Mengkueri metadata tampilan yang di-materialisasi

Deskripsi bidang

Tabel `information_schema.mv_info` berisi metadata semua tampilan yang di-materialisasi. Jika ingin mengkueri definisi satu tampilan yang di-materialisasi, kami menyarankan Anda menjalankan pernyataan SHOW CREATE MATERIALIZED VIEW.

Tabel berikut menjelaskan bidang-bidang umum dalam tabel information_schema.mv_info.

Bidang

Deskripsi

MV_SCHEMA

Nama database tempat tampilan yang di-materialisasi berada.

MV_NAME

Nama tampilan yang di-materialisasi.

MV_DEFINITION

Pernyataan DDL yang digunakan untuk membuat tampilan yang di-materialisasi.

MV_QUERY

Kueri SQL asli dari tampilan yang di-materialisasi.

FIRST_REFRESH_TIME

Waktu refresh pertama jika tampilan yang di-materialisasi dikonfigurasi untuk melakukan refresh secara otomatis.

NEXT_REFRESH_TIME_FUNC

Fungsi yang digunakan untuk memperkirakan waktu refresh berikutnya jika tampilan yang di-materialisasi dikonfigurasi untuk melakukan refresh secara otomatis.

OWNER

Pembuat tampilan yang di-materialisasi.

QUERY_SCHEMA

Nama database tempat pernyataan pembuatan tampilan yang di-materialisasi dieksekusi.

REFRESH_CONDITION

Mekanisme pemicu refresh

  • DEMAND: Sistem dapat memicu refresh tampilan yang di-materialisasi secara otomatis atau manual sesuai jadwal.

  • OVERWRITE: refresh otomatis saat tabel dasar ditimpa.

REFRESH_STATE

Kebijakan refresh tampilan yang di-materialisasi.

  • COMPLETE: refresh lengkap.

  • FAST: Melakukan refresh bertahap.

UPDATE_TIME

Waktu terakhir metadata tampilan yang di-materialisasi diperbarui.

Contoh

  • Menghitung jumlah seluruh tampilan yang di-materialisasi dalam kluster.

    SELECT count(*) FROM information_schema.mv_info;
  • Mengkueri metadata untuk semua tampilan yang di-materialisasi.

    SELECT * FROM information_schema.mv_info;

Mengkueri semua tampilan yang di-materialisasi

Anda dapat mengkueri semua tampilan yang di-materialisasi yang memiliki izin SELECT di suatu database. Jika Anda menentukan pola SQL, semua tampilan yang di-materialisasi yang sesuai dengan pola tersebut akan dikembalikan.

Izin yang diperlukan

Anda harus memiliki izin SELECT pada semua tampilan yang di-materialisasi di database yang ditentukan. Jika tidak memiliki izin ini, akun istimewa atau akun standar yang memiliki izin GRANT dapat memberikannya kepada akun Anda melalui halaman Accounts di Konsol atau menggunakan pernyataan SQL GRANT SELECT ON database.* TO username;.

Sintaks

Mengkueri semua tampilan yang di-materialisasi di database saat ini.

SHOW MATERIALIZED VIEWS [LIKE 'pattern']

Mengkueri semua tampilan yang di-materialisasi di database tertentu. Anda dapat menentukan database selain database saat ini.

SELECT * FROM information_schema.mv_info WHERE mv_schema='schema_name';

Contoh

  • Mengkueri semua tampilan yang di-materialisasi di database saat ini.

    SHOW MATERIALIZED VIEWS;
  • Mengkueri semua tampilan yang di-materialisasi yang namanya diawali dengan compl di database saat ini.

    SHOW MATERIALIZED VIEWS LIKE 'compl%';
    Catatan

    Untuk informasi lebih lanjut tentang cara menggunakan `LIKE 'pattern'`, lihat String functions.

  • Mengkueri semua tampilan yang di-materialisasi di database demo.

    SELECT * FROM information_schema.mv_info WHERE mv_schema='demo';

Mengkueri catatan refresh tampilan yang di-materialisasi

Melihat catatan penyegaran otomatis

Sintaks

Anda dapat menjalankan pernyataan berikut untuk mengkueri catatan refresh otomatis tampilan yang di-materialisasi, termasuk waktu mulai, waktu selesai, status, dan ID kueri:

SELECT * FROM information_schema.mv_auto_refresh_jobs WHERE mv_schema='<schema_name>' AND mv_name = '<mv_name>';

Tabel information_schema.mv_auto_refresh_jobs berisi hingga 1.024 catatan refresh otomatis tampilan yang di-materialisasi. Hanya tampilan yang di-materialisasi yang dikonfigurasi untuk melakukan refresh otomatis pada interval terjadwal menggunakan parameter START WITH atau NEXT yang dimasukkan ke dalam tabel ini.

Catatan

Tabel `information_schema.mv_auto_refresh_jobs` tidak mencakup catatan refresh pertama yang terjadi setelah pembuatan.

Contoh

  • Mengkueri semua catatan refresh otomatis tampilan yang di-materialisasi compl_mv1 di database demo.

    SELECT * FROM information_schema.mv_auto_refresh_jobs WHERE mv_schema = 'demo' AND mv_name = 'compl_mv1';
  • Mengkueri pekerjaan refresh otomatis terbaru yang sedang tertunda (pending) untuk tampilan yang di-materialisasi `compl_mv1` di database `demo`.

    SELECT * FROM information_schema.mv_auto_refresh_jobs WHERE mv_schema = 'demo' AND mv_name = 'compl_mv1' AND state = 'PENDING';

Deskripsi bidang

Deskripsi bidang umum:

Bidang

Deskripsi

MV_SCHEMA

Nama database tempat tampilan yang di-materialisasi berada.

MV_NAME

Nama tampilan yang di-materialisasi.

PROCESS_ID

ID Proses dari tugas refresh.

SCHEDULED_START_TIME

Waktu mulai terjadwal dari pekerjaan refresh.

START_TIME

Waktu mulai aktual dari pekerjaan refresh.

END_TIME

Waktu selesai aktual dari pekerjaan refresh.

STATE

Status refresh.

  • PENDING: Pekerjaan refresh sedang menunggu untuk dipicu.

  • RUNNING: Pekerjaan refresh sedang berlangsung. Jika beberapa tampilan yang di-materialisasi direfresh secara bersamaan, tampilan tersebut mungkin menunggu sumber daya komputasi.

  • FINISHED: Pekerjaan refresh telah selesai.

  • FAILED: Pekerjaan refresh gagal. Jika pekerjaan refresh gagal, pekerjaan tersebut akan dicoba ulang hingga jumlah maksimum percobaan ulang tercapai. Pekerjaan refresh dapat dicoba ulang hingga 10 kali. Jika pekerjaan refresh masih gagal setelah 10 kali percobaan ulang, pekerjaan tersebut dibatalkan.

  • TIMEOUT: Pekerjaan refresh melebihi batas waktu dan gagal diselesaikan. Pekerjaan refresh dalam status TIMEOUT dapat dipicu ulang.

Menampilkan Catatan Penyegaran Manual

  • Untuk mengkueri catatan refresh manual dari 30 hari terakhir, gunakan fitur Audit SQL. Masukkan REFRESH MATERIALIZED VIEW mv_name di bidang Keyword pada tab SQL Audit. Anda kemudian dapat melihat waktu, durasi, alamat IP, dan username untuk setiap refresh manual.

    Catatan

    Anda harus mengaktifkan fitur Audit SQL. Operasi SQL yang terjadi sebelum fitur ini diaktifkan tidak dicatat dalam log audit.

    image

  • Untuk mengkueri catatan refresh manual dan otomatis dari 14 hari terakhir, gunakan fitur diagnostik dan optimasi SQL. Masukkan nama tampilan yang di-materialisasi, seperti compl_mv1, pada tab SQL Diagnostics and Optimization. Anda kemudian dapat melihat waktu mulai, username, durasi, dan ID kueri untuk semua kueri SQL terkait, termasuk pembuatan, refresh manual, refresh otomatis, dan modifikasi.

    image

Memodifikasi tampilan yang di-materialisasi

Anda dapat mengubah tampilan yang di-materialisasi standar menjadi elastic materialized view, mengubah kelompok sumber dayanya, mengaktifkan atau menonaktifkan fitur query rewrite-nya, atau mengganti namanya.

Anda tidak dapat mengubah properti lainnya, seperti definisi, kebijakan refresh, atau mekanisme pemicu refresh.

Izin yang diperlukan

Anda harus memiliki izin ALTER pada tampilan yang di-materialisasi tersebut. Jika tidak memiliki izin ini, akun istimewa atau akun standar yang memiliki izin GRANT harus memberikan izin ALTER kepada akun Anda. Hal ini dapat dilakukan melalui halaman Account Management di Konsol atau dengan menjalankan pernyataan SQL GRANT ALTER ON database.mv_name TO username;.

Sintaks

ALTER MATERIALIZED VIEW <mv_name>
[MV_PROPERTIES=<MV_PROPERTIES>]
[ENABLE|DISABLE QUERY REWRITE]
[RENAME <new_mv_name>]
  • MV_PROPERTIES: Properti tampilan yang di-materialisasi, termasuk parameter `mv_resource_group` dan `mv_refresh_hints`.

    mv_resource_group: kelompok sumber daya yang digunakan oleh tampilan yang di-materialisasi. Jika kelompok sumber daya yang ditentukan tidak ada, terjadi error saat membuat tampilan yang di-materialisasi.

    mv_refresh_hints: parameter hint dari tampilan yang di-materialisasi. Untuk informasi lebih lanjut, lihat bagian "Common hint parameters" dalam topik Config and hint configuration parameters.

    Penting

    Nilai parameter <MV_PROPERTIES> yang ditentukan dalam pernyataan `ALTER` akan menimpa nilai parameter <MV_PROPERTIES> yang ditentukan saat membuat tampilan yang di-materialisasi.

    Misalnya, asumsikan Anda mengonfigurasi parameter mv_resource_group dan mv_refresh_hints saat membuat tampilan yang di-materialisasi. Jika kemudian Anda hanya mengonfigurasi parameter mv_resource_group dalam pernyataan `ALTER`, maka parameter mv_resource_group akan dimodifikasi dan parameter mv_refresh_hints akan dihapus setelah pernyataan tersebut dijalankan.

  • ENABLE|DISABLE QUERY REWRITE: Mengaktifkan atau menonaktifkan fitur query rewrite.

  • RENAME <new_mv_name>: Mengganti nama tampilan yang di-materialisasi.

Contoh

  • Mengaktifkan fitur query rewrite untuk tampilan yang di-materialisasi compl_mv1.

    ALTER MATERIALIZED VIEW compl_mv1 ENABLE QUERY REWRITE;
  • Mengubah kelompok sumber daya yang digunakan oleh elastic materialized view job_mv.

    ALTER MATERIALIZED VIEW job_mv 
    MV_PROPERTIES='{
      "mv_resource_group":"my_job_rg_2",
      "mv_refresh_hints":{"query_priority":"NORMAL"}
    }';
  • Mengubah tampilan yang di-materialisasi standar compl_mv1 menjadi elastic materialized view.

    ALTER MATERIALIZED VIEW compl_mv1 
    MV_PROPERTIES='{
      "mv_resource_group":"my_job_rg_2"
    }';
  • Mengganti nama tampilan yang di-materialisasi `mv1` menjadi `mv2`.

    ALTER MATERIALIZED VIEW mv1 RENAME mv2;

Menghapus tampilan yang di-materialisasi

Jika Anda menghapus tampilan yang di-materialisasi secara fisik, tampilan tersebut beserta datanya akan dihapus.

Catatan

Jika Anda menjalankan `DROP TABLE` untuk menghapus tampilan yang di-materialisasi, sistem akan mengembalikan error. Contohnya: demo.myview11 is materialized view, use DROP MATERIALIZED VIEW.

Izin yang diperlukan

Anda harus memiliki izin DROP pada tampilan yang di-materialisasi tersebut. Jika tidak memiliki izin ini, akun istimewa atau akun standar yang memiliki izin GRANT harus memberikan izin DROP kepada akun Anda. Hal ini dapat dilakukan melalui halaman Accounts di Konsol atau dengan menjalankan pernyataan SQL GRANT DROP ON database.mv_name TO username;.

Sintaks

DROP MATERIALIZED VIEW <mv_name>

Contoh

Menghapus tampilan yang di-materialisasi compl_mv1.

DROP MATERIALIZED VIEW compl_mv1;