Setelah membuat tampilan yang di-materialisasi, Anda dapat mengelolanya di kluster Anda, termasuk mengkueri catatan refresh dan definisinya, mengubah kelompok sumber daya yang digunakan, mengaktifkan atau menonaktifkan fitur query rewrite, serta menghapusnya.
Kueri definisi tampilan yang di-materialisasi
Anda dapat mengkueri pernyataan DDL yang digunakan untuk membuat tampilan yang di-materialisasi.
Izin
Anda harus memiliki izin SELECT pada tampilan yang di-materialisasi tersebut. Jika tidak, akun istimewa atau akun standar dengan izin GRANT harus memberikan izin tersebut kepada Anda melalui halaman account management di Konsol atau dengan menjalankan pernyataan SQL berikut: GRANT SELECT ON database.mv_name TO username;
Sintaks
SHOW CREATE MATERIALIZED VIEW <mv_name>
Contoh
Kueri pernyataan DDL untuk tampilan yang di-materialisasi compl_mv1.
SHOW CREATE MATERIALIZED VIEW demo.compl_mv1;
Kueri metadata tampilan yang di-materialisasi
Bidang
Tampilan information_schema.mv_info berisi metadata untuk semua tampilan yang di-materialisasi. Jika hanya ingin melihat definisi satu tampilan yang di-materialisasi, gunakan pernyataan SHOW CREATE MATERIALIZED VIEW.
Tabel berikut menjelaskan bidang umum dalam information_schema.mv_info.
|
Bidang |
Deskripsi |
|
MV_SCHEMA |
Database tempat tampilan yang di-materialisasi berada. |
|
MV_NAME |
Nama tampilan yang di-materialisasi. |
|
MV_DEFINITION |
DDL untuk properti tabel dari tampilan yang di-materialisasi. |
|
MV_QUERY |
Kueri SQL asli (query_body) dari tampilan yang di-materialisasi. |
|
FIRST_REFRESH_TIME |
Waktu refresh pertama, jika refresh otomatis dikonfigurasi. |
|
NEXT_REFRESH_TIME_FUNC |
Fungsi yang menentukan waktu refresh berikutnya, jika refresh otomatis dikonfigurasi. |
|
OWNER |
Pembuat tampilan yang di-materialisasi. |
|
QUERY_SCHEMA |
Database tempat pernyataan |
|
REFRESH_CONDITION |
Mekanisme pemicu refresh.
|
|
REFRESH_STATE |
Metode refresh untuk tampilan yang di-materialisasi.
|
|
UPDATE_TIME |
Waktu pembaruan terakhir untuk baris metadata ini. |
Contoh
-
Hitung jumlah tampilan yang di-materialisasi di kluster.
SELECT count(*) FROM information_schema.mv_info; -
Kueri metadata untuk semua tampilan yang di-materialisasi.
SELECT * FROM information_schema.mv_info;
Daftar tampilan yang di-materialisasi
Menampilkan daftar tampilan yang di-materialisasi di database tertentu yang memiliki izin SELECT. Jika menentukan pola, hanya tampilan yang di-materialisasi dengan nama yang sesuai pola tersebut yang dikembalikan.
Izin
Anda harus memiliki izin SELECT pada semua tampilan yang di-materialisasi di database yang ditentukan. Jika tidak, akun istimewa atau akun standar dengan izin GRANT harus memberikan izin tersebut kepada Anda melalui halaman account management di Konsol atau dengan menjalankan pernyataan SQL berikut: GRANT SELECT ON database.* TO username;
Sintaks
Kueri semua tampilan yang di-materialisasi di database saat ini:
SHOW MATERIALIZED VIEWS [LIKE 'pattern']
Kueri semua tampilan yang di-materialisasi di database tertentu (yang bisa berbeda dari database saat ini):
SELECT * FROM information_schema.mv_info WHERE mv_schema='schema_name';
Contoh
-
Kueri semua tampilan yang di-materialisasi di database saat ini.
SHOW MATERIALIZED VIEWS; -
Kueri semua tampilan yang di-materialisasi di database saat ini yang namanya diawali dengan
compl.SHOW MATERIALIZED VIEWS LIKE 'compl%';CatatanUntuk informasi lebih lanjut tentang cara menggunakan
LIKE 'pattern', lihat String functions. -
Kueri semua tampilan yang di-materialisasi di database
demo.SELECT * FROM information_schema.mv_info WHERE mv_schema='demo';
Kueri catatan refresh
Catatan refresh otomatis
Sintaks
Gunakan pernyataan SQL berikut untuk mengkueri catatan refresh otomatis untuk tampilan yang di-materialisasi tertentu. Catatan tersebut mencakup waktu mulai (START_TIME), waktu selesai (END_TIME), status (STATE), dan ID proses (PROCESS_ID) dari refresh tersebut.
SELECT * FROM information_schema.mv_auto_refresh_jobs WHERE mv_schema='<schema_name>' AND mv_name = '<mv_name>';
Tampilan information_schema.mv_auto_refresh_jobs menyimpan catatan pekerjaan refresh otomatis untuk tampilan yang di-materialisasi dan menyimpan maksimal 1.024 catatan. Tabel ini hanya mencantumkan tampilan yang di-materialisasi yang dikonfigurasi untuk refresh otomatis terjadwal (menggunakan parameter START WITH atau NEXT).
Tampilan information_schema.mv_auto_refresh_jobs tidak mencakup catatan untuk refresh awal yang terjadi saat tampilan yang di-materialisasi dibuat.
Contoh
-
Kueri semua catatan refresh untuk tampilan yang di-materialisasi
compl_mv1di databasedemo.SELECT * FROM information_schema.mv_auto_refresh_jobs WHERE mv_schema = 'demo' AND mv_name = 'compl_mv1'; -
Kueri pekerjaan refresh tertunda terbaru untuk tampilan yang di-materialisasi
compl_mv1di databasedemo.SELECT * FROM information_schema.mv_auto_refresh_jobs WHERE mv_schema = 'demo' AND mv_name = 'compl_mv1' AND state = 'PENDING';
Bidang
Tabel berikut menjelaskan 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 pekerjaan refresh. |
|
SCHEDULED_START_TIME |
Waktu mulai terjadwal untuk pekerjaan refresh. |
|
START_TIME |
Waktu mulai aktual dari pekerjaan refresh. |
|
END_TIME |
Waktu selesai aktual dari pekerjaan refresh. |
|
STATE |
Status refresh.
|
Catatan refresh manual
-
Anda dapat menggunakan fitur SQL Audit untuk mengkueri catatan refresh manual untuk tampilan yang di-materialisasi dari 30 hari terakhir. Saat mengkueri, masukkan kata kunci
REFRESH MATERIALIZED VIEW mv_nameuntuk menemukan informasi seperti waktu, durasi, alamat IP, dan username untuk refresh manual.CatatanFitur SQL Audit harus diaktifkan secara terpisah. Operasi SQL yang dilakukan sebelum fitur ini diaktifkan tidak dicatat.
-
Anda dapat menggunakan fitur SQL Diagnostics and Optimization untuk mengkueri catatan refresh manual maupun otomatis dari 14 hari terakhir. Saat mengkueri, masukkan nama tampilan yang di-materialisasi, seperti
compl_mv1. Anda dapat mengambil informasi tentang semua kueri SQL terkait (termasuk pembuatan, refresh manual, refresh otomatis, dan pengubahan), seperti waktu mulai, username, durasi, dan ID kueri.
Ubah tampilan yang di-materialisasi
Anda dapat mengonversi tampilan yang di-materialisasi standar menjadi elastic materialized view, mengubah kelompok sumber daya yang digunakan, mengaktifkan atau menonaktifkan fitur query rewrite, atau mengganti namanya.
Anda tidak dapat mengubah properti lainnya, seperti definisi tampilan, kebijakan refresh, atau pemicu refresh.
Izin
Anda harus memiliki izin ALTER pada tampilan yang di-materialisasi tersebut. Jika tidak, akun istimewa atau akun standar dengan izin GRANT harus memberikan izin tersebut kepada Anda melalui halaman account management di Konsol atau dengan menjalankan pernyataan SQL berikut: 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>]
[BINLOG={TRUE|FALSE}]
-
MV_PROPERTIES: Menentukan properti tampilan yang di-materialisasi, termasuk parametermv_resource_groupdanmv_refresh_hints.mv_resource_group: Menentukan kelompok sumber daya yang digunakan oleh tampilan yang di-materialisasi. Jika kelompok sumber daya yang ditentukan tidak ada, kesalahan akan dikembalikan saat membuat tampilan yang di-materialisasi.mv_refresh_hints: Mengatur parameter untuk tampilan yang di-materialisasi. Untuk detail parameter konfigurasi yang didukung, lihat Common Hints.PentingProperti
<MV_PROPERTIES>yang ditentukan dalam pernyataanALTERakan sepenuhnya menimpa properti<MV_PROPERTIES>yang ditentukan saat tampilan yang di-materialisasi dibuat.Sebagai contoh, jika Anda membuat tampilan yang di-materialisasi dan mengonfigurasi parameter
mv_resource_groupdanmv_refresh_hints, lalu menjalankan pernyataan ALTER yang hanya menentukan parametermv_resource_group, maka parametermv_resource_groupdiperbarui, sedangkan parametermv_refresh_hintsdihapus. -
ENABLE|DISABLE QUERY REWRITE: Mengaktifkan atau menonaktifkan fitur query rewrite. -
RENAME <new_mv_name>: Mengganti nama tampilan yang di-materialisasi. -
BINLOG={TRUE|FALSE}: Mengaktifkan atau menonaktifkan fitur binlog untuk tampilan yang di-materialisasi. Fitur ini didukung pada versi kernel kluster 3.2.5.0 dan yang lebih baru.
Contoh
-
Aktifkan fitur query rewrite untuk tampilan yang di-materialisasi
compl_mv1.ALTER MATERIALIZED VIEW compl_mv1 ENABLE QUERY REWRITE; -
Ubah 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"} }'; -
Konversi tampilan yang di-materialisasi standar
compl_mv1menjadi elastic materialized view.ALTER MATERIALIZED VIEW compl_mv1 MV_PROPERTIES='{ "mv_resource_group":"my_job_rg_2" }'; -
Ganti nama tampilan yang di-materialisasi mv1 menjadi mv2.
ALTER MATERIALIZED VIEW mv1 RENAME mv2;
Hapus tampilan yang di-materialisasi
Operasi ini menghapus secara fisik tampilan yang di-materialisasi beserta datanya.
Jika Anda menggunakan DROP TABLE untuk menghapus tampilan yang di-materialisasi, kesalahan akan dikembalikan. Pesan kesalahan tersebut mirip dengan demo.myview11 is materialized view, use DROP MATERIALIZED VIEW.
Izin
Anda harus memiliki izin DROP pada tampilan yang di-materialisasi tersebut. Jika tidak, akun istimewa atau akun standar dengan izin GRANT harus memberikan izin tersebut kepada Anda melalui halaman account management di Konsol atau dengan menjalankan pernyataan SQL berikut: GRANT DROP ON database.mv_name TO username;
Sintaks
DROP MATERIALIZED VIEW <mv_name>
Contoh
Hapus tampilan yang di-materialisasi compl_mv1.
DROP MATERIALIZED VIEW compl_mv1;