Operasi penggabungan multi-tabel dan agregat kompleks sering kali memakan waktu lama serta membutuhkan banyak sumber daya komputasi. Untuk mengatasi masalah ini, AnalyticDB for MySQL menyediakan tampilan materialized. Tampilan materialized melakukan pra-komputasi terhadap kueri yang ditentukan oleh pengguna dan menyimpan hasilnya. Saat menjalankan kueri, AnalyticDB for MySQL membaca hasil kueri dari tampilan materialized untuk meningkatkan waktu respons. Topik ini menjelaskan cara membuat tampilan materialized.
Prasyarat
Klaster AnalyticDB for MySQL versi V3.1.3.4 atau lebih baru telah dibuat.
Membuat tampilan materialized
Izin yang diperlukan
Sebelum membuat tampilan materialized, pastikan Anda memiliki izin berikut:
Izin CREATE pada tabel di dalam database tempat Anda ingin membuat tampilan materialized.
Izin SELECT pada kolom tertentu atau semua kolom dari semua tabel dasar yang direferensikan dalam tampilan materialized.
Jika Anda ingin membuat tampilan materialized yang dapat diperbarui secara otomatis, Anda juga harus memiliki izin berikut:
Izin untuk terhubung ke AnalyticDB for MySQL dari alamat IP apa pun yang dilambangkan dengan
'%'.Izin INSERT pada tampilan materialized atau semua tabel di dalam database tempat tampilan materialized berada. Jika tidak, data dalam tampilan materialized tidak dapat diperbarui.
Menyiapkan tabel dasar
Buat dua tabel dasar bernama customer dan sales.
/*+ RC_DDL_ENGINE_REWRITE_XUANWUV2=false */ -- Set mesin tabel ke XUANWU.
CREATE TABLE customer (
customer_id INT PRIMARY KEY,
customer_name VARCHAR(255),
is_vip Boolean
);/*+ RC_DDL_ENGINE_REWRITE_XUANWUV2=false */ -- Set mesin tabel ke XUANWU.
CREATE TABLE sales (
sale_id INT PRIMARY KEY,
product_id INT,
customer_id INT,
price DECIMAL(10, 2),
quantity INT,
sale_date TIMESTAMP
);Pada contoh-contoh berikut yang menunjukkan cara membuat tampilan materialized, tidak ada grup sumber daya yang ditentukan. Jika tidak ada grup sumber daya yang ditentukan, AnalyticDB for MySQL menggunakan sumber daya komputasi dari grup sumber daya interaktif default untuk membuat dan memperbarui tampilan materialized. Untuk informasi tentang perbedaan antara grup sumber daya interaktif dan grup sumber daya pekerjaan saat membuat dan memperbarui tampilan materialized, atau cara membuat dan memperbarui tampilan materialized menggunakan grup sumber daya pekerjaan, lihat bagian "Gunakan sumber daya elastis untuk membuat atau memperbarui tampilan materialized" dari topik ini.
Membuat tampilan materialized yang mendukung pembaruan lengkap
Anda dapat membuat tampilan materialized yang mendukung pembaruan lengkap (selanjutnya disebut sebagai tampilan materialized lengkap) berdasarkan tabel internal dan eksternal AnalyticDB for MySQL, tampilan materialized yang sudah ada, dan tampilan.
Buat tampilan materialized lengkap bernama join_mv berdasarkan tabel customer dan sales, dengan mekanisme pemicu pembaruan diatur ke pembaruan manual.
CREATE MATERIALIZED VIEW join_mv
REFRESH COMPLETE ON DEMAND
AS
SELECT
sale_id,
SUM(price * quantity) AS price
FROM customer
INNER JOIN (SELECT sale_id,customer_id,price,quantity FROM sales) sales ON customer.customer_id = sales.customer_id
GROUP BY customer.customer_id;Untuk memperbarui data dalam tampilan materialized, jalankan pernyataan berikut: REFRESH MATERIALIZED VIEW join_mv;.
Membuat tampilan materialized yang mendukung pembaruan cepat
Anda dapat membuat tampilan materialized yang mendukung pembaruan cepat (selanjutnya disebut sebagai tampilan materialized cepat) berdasarkan tabel internal AnalyticDB for MySQL.
Berikut ini menjelaskan cara membuat tampilan materialized cepat berdasarkan beberapa tabel yang digabungkan.
Sebelum membuat tampilan materialized cepat, selesaikan persiapan berikut:
Periksa apakah versi minor klaster AnalyticDB for MySQL Anda adalah 3.1.9.0 atau lebih baru.
Aktifkan fitur pencatatan biner untuk klaster dan tabel dasar.
Jika terjadi kesalahan saat mengaktifkan fitur pencatatan biner untuk tabel dasar, atasi masalah ini dengan merujuk pada bagian berjudul "Kesalahan eksekusi kueri: : Tidak dapat membuat tampilan materialized CEPAT, karena demotable tidak mendukung mendapatkan data inkremental" dalam topik ini.
SET ADB_CONFIG BINLOG_ENABLE=true; ALTER TABLE customer binlog=true; ALTER TABLE sales binlog=true;
Buat tampilan materialized cepat bernama sales_mv_incre berdasarkan tabel sales.
CREATE MATERIALIZED VIEW sales_mv_incre
REFRESH FAST NEXT now() + INTERVAL 3 minute
AS
SELECT
sale_id,
SUM(price * quantity) AS price
FROM sales
GROUP BY sale_id;Jika versi minor klaster AnalyticDB for MySQL Anda adalah 3.2.1.0 atau lebih baru, buat tampilan materialized cepat bernama join_mv_incre berdasarkan tabel customer dan sales yang digabungkan, dengan interval pembaruan diatur menjadi 3 menit.
CREATE MATERIALIZED VIEW join_mv_incre
REFRESH FAST NEXT now() + INTERVAL 3 minute
AS
SELECT
customer.customer_id,
SUM(sales.price) AS price
FROM customer
INNER JOIN (SELECT customer_id,price FROM sales) sales ON customer.customer_id = sales.customer_id
GROUP BY customer.customer_id;Untuk informasi lebih lanjut tentang sintaksis dan contoh tampilan materialized, lihat CREATE MATERIALIZED VIEW.
Kueri tampilan materialized yang sedang dibuat
Anda dapat menjalankan pernyataan SHOW PROCESSLIST WHERE info LIKE '%CREATE MATERIALIZED VIEW%'; untuk menanyakan tampilan materialized yang sedang dibuat.
Setiap baris dalam hasil kueri menunjukkan tampilan materialized yang sedang dibuat. Bidang user menunjukkan akun database yang digunakan untuk membuat tampilan materialized. Bidang status menunjukkan status pembuatan. Bidang Info mencakup pernyataan SQL yang digunakan untuk membuat tampilan materialized. Untuk informasi lebih lanjut tentang bidang dalam hasil kueri, lihat SHOW PROCESSLIST.
Jika tidak ada informasi yang dikembalikan dari pernyataan SHOW PROCESSLIST, pembuatan tampilan materialized selesai. Ini menunjukkan bahwa skema tabel tampilan materialized telah dibuat, dan data awal telah dimuat ke tampilan materialized.
Tulis kueri pada tabel dasar saat Anda membuat tampilan materialized
Kueri tabel dasar untuk tampilan materialized lengkap
Tampilan materialized lengkap dapat dibuat berdasarkan tabel internal dan eksternal AnalyticDB for MySQL, tampilan materialized yang sudah ada, dan tampilan. Tidak ada batasan yang diberlakukan pada kueri tabel dasar. Untuk informasi tentang sintaksis kueri, lihat SELECT.
Kueri tabel dasar untuk tampilan materialized cepat
Tampilan materialized cepat hanya dapat dibuat berdasarkan tabel internal dan eksternal AnalyticDB for MySQL. Kueri tabel dasar harus mematuhi aturan berikut:
SELECT kolom
Jika Anda menentukan fungsi agregat dengan klausa GROUP BY, kolom SELECT harus mencakup semua kolom yang direferensikan dalam klausa GROUP BY.
Jika Anda menentukan fungsi agregat tanpa klausa GROUP BY, kolom SELECT dapat mencakup hanya kolom konstan dan agregat, atau hanya kolom agregat.
Jika Anda menentukan kueri non-agregat, kolom SELECT harus mencakup semua kolom kunci utama dari tabel dasar.
Anda harus menentukan alias untuk kolom berbasis ekspresi yang direferensikan dalam klausa SELECT. Kami merekomendasikan agar Anda menentukan alias yang mudah dikenali. Contoh:
SUM(price) AS total_price.
Batasan lainnya
Gunakan sumber daya elastis untuk membuat atau memperbarui tampilan materialized
Sumber daya elastis mengacu pada sumber daya komputasi dalam grup sumber daya pekerjaan. Saat membuat dan memperbarui tampilan materialized dalam klaster AnalyticDB for MySQL, sumber daya komputasi klaster digunakan. Jika Anda tidak menggunakan parameter MV_PROPERTIES='{"mv_resource_group":"rg_name"}' untuk menentukan grup sumber daya, sumber daya cadangan dari grup sumber daya interaktif default bernama user_default digunakan untuk membuat dan memperbarui tampilan materialized.
Jika Anda menentukan grup sumber daya pekerjaan saat membuat tampilan materialized, grup sumber daya pekerjaan digunakan untuk membuat dan memperbarui tampilan materialized. Anda dapat menggunakan parameter "mv_refresh_hints":{"elastic_job_max_acu":"value"} untuk menentukan jumlah sumber daya yang tersedia untuk tampilan materialized. Untuk informasi lebih lanjut, lihat bagian "mv_properties" dari topik CREATE MATERIALIZED VIEW.
Perbedaan antara grup sumber daya interaktif default dan grup sumber daya pekerjaan saat membuat atau memperbarui tampilan materialized: Jika Anda menggunakan grup sumber daya pekerjaan, Anda tidak perlu membeli sumber daya terlebih dahulu. Ini mencegah pemborosan sumber daya dan mengurangi biaya. Namun, kinerja pembaruan grup sumber daya interaktif default lebih baik daripada grup sumber daya pekerjaan. Setiap kali Anda memperbarui tampilan materialized, grup sumber daya pekerjaan membutuhkan beberapa detik atau menit untuk menyediakan sumber daya komputasi.
Jika klaster AnalyticDB for MySQL Anda memenuhi persyaratan berikut, Anda dapat menggunakan sumber daya elastis untuk membuat dan memperbarui tampilan materialized:
Klaster adalah Edisi Enterprise, Edisi Dasar, atau Edisi Data Lakehouse.
Versi minor klaster adalah 3.1.9.3 atau lebih baru.
Gunakan sumber daya elastis dari grup sumber daya pekerjaan bernama my_job_rg untuk membuat dan memperbarui tampilan materialized dengan prioritas tinggi berdasarkan tabel customer.
CREATE MATERIALIZED VIEW job_mv
MV_PROPERTIES='{
"mv_resource_group":"my_job_rg",
"mv_refresh_hints":{"query_priority":"HIGH"}
}'
REFRESH COMPLETE ON DEMAND
START WITH now()
NEXT now() + INTERVAL 1 DAY
AS
SELECT * FROM customer;Mekanisme pemicu pembaruan tampilan materialized
Tampilan materialized menampilkan data dari pembaruan terbaru dan mungkin tidak mencerminkan data terbaru dari tabel dasar. Tampilan materialized tidak secara otomatis memperbarui data setelah setiap kueri. Untuk memastikan ketepatan waktu dan akurasi data dalam tampilan materialized, Anda dapat mengonfigurasi mekanisme pemicu pembaruan untuk tampilan materialized, seperti pembaruan otomatis pada interval yang dijadwalkan, pembaruan otomatis saat tabel dasar ditimpa, dan pembaruan manual.
Tampilan materialized diperbarui berdasarkan kebijakan pembaruannya: pembaruan lengkap dan pembaruan cepat.
Untuk informasi lebih lanjut tentang perbedaan antara mekanisme pemicu pembaruan dan kebijakan pembaruan serta skenario mereka, lihat Perbarui tampilan materialized.
Batasan
Batasan umum
Batasan umum berlaku untuk semua jenis tampilan materialized, termasuk tampilan materialized lengkap dan cepat.
Anda tidak dapat melakukan operasi
INSERT,DELETE, atauUPDATEpada tampilan materialized.Anda tidak dapat menghapus atau mengganti nama tabel dasar yang direferensikan dalam tampilan materialized atau kolom dalam tabel dasar. Sebelum memodifikasi tabel dasar, Anda harus menghapus tampilan materialized.
Secara default, jumlah maksimum tampilan materialized yang dapat dibuat untuk klaster AnalyticDB for MySQL bervariasi berdasarkan versi minor klaster.
V3.1.4.7 atau lebih baru: hingga 64 tampilan materialized.
Versi sebelum V3.1.4.7: hingga delapan tampilan materialized.
CatatanJika jumlah tampilan materialized sudah mencapai batas atas, Anda dapat menghubungi dukungan teknis untuk meningkatkan jumlah maksimum tampilan materialized.
Batasan pada tampilan materialized lengkap
Saat menyesuaikan jumlah node sumber daya cadangan dalam klaster AnalyticDB for MySQL, pekerjaan asinkron tidak didukung. Operasi pembaruan lengkap pada tampilan materialized adalah pekerjaan asinkron. Akibatnya, operasi pembaruan lengkap tidak dapat dilakukan saat menyesuaikan jumlah node sumber daya cadangan. Namun, operasi pembaruan cepat tidak terpengaruh.
Batasan pada tampilan materialized cepat
Batasan pada tabel dasar tampilan materialized cepat:
Anda tidak dapat menggunakan tabel XUANWU_V2 sebagai tabel dasar tampilan materialized cepat.
Alasannya adalah bahwa tabel XUANWU_V2 tidak mendukung fitur pencatatan biner.
Anda tidak dapat menggunakan tabel partisi sebagai tabel dasar untuk membuat tampilan materialized cepat di klaster AnalyticDB for MySQL sebelum versi V3.2.3.0.
Anda tidak dapat menjalankan pernyataan INSERT OVERWRITE atau TRUNCATE pada tabel dasar tampilan materialized cepat di klaster AnalyticDB for MySQL sebelum versi V3.2.3.1. Jika tidak, akan terjadi kesalahan.
Jika Anda menggunakan fungsi MAX(), MIN(), APPROX_DISTINCT(), atau COUNT(DISTINCT) dalam kueri tampilan materialized, Anda hanya dapat melakukan operasi INSERT pada tabel dasar. Anda tidak dapat melakukan operasi yang dapat mengakibatkan penghapusan data pada tabel dasar, seperti DELETE, UPDATE, REPLACE, dan INSERT ON DUPLICATE KEY UPDATE.
Batasan pada mekanisme pemicu pembaruan tampilan materialized cepat:
Tampilan materialized cepat hanya dapat diperbarui secara otomatis pada interval yang dijadwalkan, dan tidak dapat diperbarui secara manual. Interval yang dijadwalkan untuk pembaruan cepat berkisar antara 5 detik hingga 5 menit.
Batasan pada kueri tampilan materialized cepat:
Anda tidak dapat menentukan ekspresi yang mungkin menghasilkan nilai tak tentu. Contoh: NOW() dan RAND().
Anda tidak dapat menentukan klausa ORDER BY.
Anda tidak dapat menentukan klausa HAVING.
Anda tidak dapat menentukan fungsi jendela.
Anda tidak dapat menentukan operator set, seperti UNION, EXCEPT, dan INTERSECT.
Anda hanya dapat menentukan INNER JOIN untuk operasi join. Bidang JOIN harus berupa bidang asli dari tabel dasar, menggunakan tipe data yang sama, dan digunakan untuk membuat indeks. Anda dapat menggabungkan hingga lima tabel dasar.
Untuk menggabungkan lebih banyak tabel dasar, hubungi dukungan teknis.
Anda hanya dapat menentukan fungsi agregat berikut: COUNT(), SUM(), MAX(), MIN(), AVG(), APPROX_DISTINCT(), dan COUNT(DISTINCT).
Fungsi AVG() tidak mendukung tipe DECIMAL.
Fungsi COUNT(DISTINCT) hanya mendukung tipe INTEGER.
FAQ
Bagaimana cara saya menyimpan data hanya untuk tahun terbaru dalam tampilan materialized?
Saat mendefinisikan tampilan materialized, Anda dapat menggunakan kolom tanggal sebagai kunci partisi dan menentukan siklus hidup untuk menyimpan data hanya untuk tahun terbaru.
Sebagai contoh, data penjualan baru dihasilkan di tabel sales setiap hari. Saat membuat tampilan materialized berdasarkan tabel sales, Anda dapat menggunakan kolom sale_date sebagai kunci partisi dan mengatur siklus hidup menjadi 365. Dengan cara ini, tampilan materialized menyimpan data hanya untuk tahun terbaru.
CREATE MATERIALIZED VIEW sales_mv_lifecycle
PARTITION BY VALUE(DATE_FORMAT(sale_date, '%Y%m%d')) LIFECYCLE 365
REFRESH FAST NEXT now() + INTERVAL 100 second
AS
SELECT
sale_date,
SUM(price * quantity) AS price
FROM sales
GROUP BY sale_date;Kesalahan umum dan pemecahan masalah
Kesalahan eksekusi kueri: : Tidak dapat membuat tampilan materialized CEPAT, karena demotable tidak mendukung mendapatkan data inkremental
Penyebab: Fitur pencatatan biner dinonaktifkan untuk tabel dasar demotable dari tampilan materialized cepat. Jika ingin membuat tampilan materialized cepat, Anda harus mengaktifkan fitur pencatatan biner untuk semua tabel dasar.
Solusi: Jalankan pernyataan ALTER TABLE demotable binlog=true; untuk mengaktifkan fitur pencatatan biner untuk tabel dasar demotable.
Jika kesalahan XUANWU_V2 engine not support ALTER_BINLOG_ENABLE now terjadi saat mengaktifkan fitur pencatatan biner untuk tabel dasar demotable, itu menunjukkan bahwa tabel tersebut menggunakan mesin XUANWU_V2. Mesin XUANWU_V2 tidak mendukung fitur pencatatan biner. Mesin tabel tidak dapat diubah. Anda harus menonaktifkan mesin XUANWU_V2, membuat tabel yang menggunakan mesin XUANWU, memigrasikan data dari tabel XUANWU_V2 ke tabel XUANWU, dan kemudian membuat tampilan materialized cepat berdasarkan tabel XUANWU.
Cara menonaktifkan mesin XUANWU_V2:
Jika tabel dasar dibuat secara otomatis dengan menggunakan Data Transmission Service (DTS), zero-ETL, atau sinkronisasi data, Anda dapat menonaktifkan mesin XUANWU_V2 di tingkat klaster. Setelah menonaktifkan mesin XUANWU_V2, semua tabel baru menggunakan mesin XUANWU.
Nonaktifkan mesin XUANWU_V2 di tingkat klaster:
SET adb_config RC_DDL_ENGINE_REWRITE_XUANWUV2=false;Jika tabel dasar dibuat secara manual dengan menjalankan pernyataan CREATE TABLE, dan sejumlah kecil tabel dasar diperlukan untuk membuat tampilan materialized cepat, Anda dapat menonaktifkan mesin XUANWU_V2 dalam pernyataan CREATE TABLE yang terlibat. Dengan cara ini, tabel yang menggunakan mesin XUANWU dibuat dari pernyataan CREATE TABLE yang terlibat. Pernyataan CREATE TABLE lainnya masih dapat digunakan untuk membuat tabel yang menggunakan mesin XUANWU_V2.
Nonaktifkan mesin XUANWU_V2 di tingkat tabel:
/*+ RC_DDL_ENGINE_REWRITE_XUANWUV2=false */CREATE TABLE ...
Kesalahan eksekusi kueri: : PRIMARY KEY id harus keluar ke MV.
Penyebab: Kueri tampilan materialized cepat adalah kueri non-agregat tanpa klausa GROUP BY. Dalam hal ini, kunci utama tampilan materialized harus sama dengan kunci utama tabel dasar. Namun, kunci utama tabel dasar tidak terkandung dalam klausa SELECT.
Pernyataan sampel salah:
CREATE MATERIALIZED VIEW wrong_example1
REFRESH FAST ON DEMAND
NEXT now() + interval 200 second
AS
SELECT product_id,price -- Kunci utama tabel dasar sales adalah sale_id. Namun, sale_id tidak terkandung dalam klausa SELECT.
FROM sales;Solusi: Tambahkan kunci utama tabel dasar ke klausa SELECT kueri tampilan materialized.
Pernyataan sampel benar:
CREATE MATERIALIZED VIEW correct_example1
REFRESH FAST ON DEMAND
NEXT now() + interval 200 second
AS
SELECT sale_id,product_id, price -- Tambahkan kunci utama tabel dasar, sale_id, ke klausa SELECT.
FROM sales;Kesalahan eksekusi kueri: : KUNCI UTAMA MV harus sama dengan KUNCI UTAMA tabel dasar.
Penyebab: Kueri tampilan materialized cepat adalah kueri non-agregat tanpa klausa GROUP BY. Dalam hal ini, kunci utama tampilan materialized harus sama dengan kunci utama tabel dasar. Namun, kunci utama dan kolom bukan kunci utama dari tabel dasar ditentukan sebagai kunci utama tampilan materialized dalam definisi tampilan materialized.
Pernyataan sampel salah:
CREATE MATERIALIZED VIEW wrong_example2
(PRIMARY KEY(sale_id,product_id)) -- product_id adalah kolom bukan kunci utama dari tabel dasar sales.
REFRESH FAST ON DEMAND
NEXT now() + interval 200 second
AS
SELECT sale_id,product_id,price
FROM sales;Solusi: Hapus kolom bukan kunci utama dari tabel dasar untuk memodifikasi kunci utama tampilan materialized.
Pernyataan sampel benar:
CREATE MATERIALIZED VIEW correct_example2
(PRIMARY KEY(sale_id)) -- Hapus kolom product_id dari kunci utama tampilan materialized.
REFRESH FAST ON DEMAND
NEXT now() + interval 200 second
AS
SELECT sale_id,product_id,price
FROM sales;Kesalahan eksekusi kueri: : Tampilan materialized CEPAT harus mendefinisikan KUNCI UTAMA
Penyebab: Kesalahan ini dapat disebabkan oleh alasan berikut:
Tidak ada kunci utama yang benar yang ditentukan untuk tampilan materialized cepat.
Fungsi dipanggil pada kunci utama tabel dasar dalam kueri tampilan materialized.
Solusi: Pilih solusi optimal berdasarkan alasannya.
Jika tidak ada kunci utama yang benar yang ditentukan untuk tampilan materialized, modifikasi definisi tampilan materialized untuk memastikan bahwa kunci utama memenuhi persyaratan berikut:
Jika Anda menentukan fungsi agregat dengan klausa GROUP BY, kunci utama harus berupa kolom yang direferensikan dalam klausa GROUP BY. Sebagai contoh, jika
GROUP BY a,bditentukan, kunci utama harus berupa kolom a dan b.Jika Anda menentukan fungsi agregat tanpa klausa GROUP BY, kunci utama harus berupa konstanta.
Jika Anda menentukan kueri non-agregat, kunci utama harus cocok dengan kunci utama tabel dasar. Sebagai contoh, jika kunci utama tabel dasar adalah PRIMARY KEY(sale_id,sale_date), kunci utama tampilan materialized juga harus PRIMARY KEY(sale_id,sale_date).
Jika fungsi dipanggil pada kunci utama tabel dasar, modifikasi kueri tampilan materialized untuk menghapus fungsi.
Kesalahan eksekusi kueri: : Grafik join tidak didukung.
Penyebab: Kolom yang digunakan untuk menggabungkan tabel dasar dalam kueri tampilan materialized cepat menggunakan tipe data yang berbeda. Contoh: sales INNER JOIN customer ON customer.id=sales.id. Jika kolom customer.id dan sales.id menggunakan tipe data yang berbeda, kesalahan ini terjadi.
Solusi: Jalankan pernyataan ALTER TABLE tablename MODIFY COLUMN columnname newtype; untuk mengubah tipe data kolom. Untuk informasi lebih lanjut, lihat bagian "Ubah tipe data kolom" dari topik ALTER TABLE.
Kesalahan eksekusi kueri: : Tidak dapat menggunakan join indeks untuk memperbarui tampilan materialized cepat ini.
Penyebab: Tidak ada indeks yang dibuat pada kolom yang digunakan untuk menggabungkan tabel dasar dalam kueri tampilan materialized cepat. Contoh: sales INNER JOIN customer ON customer.id=sales.id. Jika tidak ada indeks yang dibuat pada kolom customer.id atau sales.id, kesalahan ini terjadi.
Solusi: Jalankan pernyataan ALTER TABLE tablename ADD KEY idx_name(columnname); untuk membuat indeks pada kolom yang digunakan untuk menggabungkan tabel dasar. Untuk informasi lebih lanjut, lihat bagian "Buat indeks" dari topik ALTER TABLE.
Kesalahan eksekusi kueri: : Kueri melebihi batas memori yang dicadangkan
Penyebab: Penggunaan memori kueri pada satu node melebihi batas atas.
Solusi: Dalam banyak kasus, pernyataan SQL yang intensif memori mencakup operator Aggregation, TopN, Window, dan Join. Anda dapat menggunakan fitur diagnostik SQL untuk mengidentifikasi tahap dan operator yang intensif memori dan melakukan optimasi SQL pada operator tersebut. Untuk informasi lebih lanjut, lihat bagian "Metrik memori" dari topik Optimasi kinerja klaster dan Gunakan detail tahap dan tugas untuk menganalisis kueri.
Referensi
Tampilan materialized: menjelaskan konsep, skenario aplikasi, dan pembaruan fitur tampilan materialized.
CREATE MATERIALIZED VIEW: menjelaskan sintaksis tampilan materialized.
Perbarui tampilan materialized: menjelaskan kebijakan dan mekanisme pemicu pembaruan tampilan materialized dan cara memperbarui tampilan materialized secara manual.
Kelola tampilan materialized: menjelaskan cara menanyakan definisi dan catatan pembaruan tampilan materialized, menanyakan semua tampilan materialized, dan menghapus tampilan materialized.
Kueri data dari tampilan materialized: menjelaskan cara menanyakan data dari tampilan materialized.