Halaman ini menjelaskan cara mengaktifkan atau menonaktifkan mesin kolom di cluster database AlloyDB Omni. Panduan ini juga membahas cara mengonfigurasi ukuran awal yang sesuai untuk penyimpanan kolomnya.
Untuk menggunakan mesin kolom saat menggunakan AlloyDB untuk PostgreSQL di Google Cloud, lihat Mengonfigurasi mesin kolom.
Untuk ringkasan konseptual mesin berbasis kolom AlloyDB, lihat Tentang mesin berbasis kolom AlloyDB.
Mengaktifkan mesin kolom
Untuk menggunakan mesin kolom pada instance, tetapkan flag
google_columnar_engine.enabled
instance ke on
.
Untuk menetapkan tanda ini pada instance, lakukan hal berikut:
Jalankan perintah PostgreSQL
ALTER SYSTEM
:ALTER SYSTEM SET google_columnar_engine.enabled = 'on'
Jika Anda ingin menyesuaikan konfigurasi mesin kolom, ikuti petunjuk di bagian berikutnya sebelum memulai ulang server database. Jika tidak, ikuti dua langkah berikutnya untuk memulai ulang server database sekarang.
Mengonfigurasi ukuran penyimpanan kolom
Saat mesin kolom diaktifkan di instance, AlloyDB mengalokasikan sebagian memori instance untuk menyimpan data kolomnya. Dengan menyediakan RAM berkecepatan tinggi untuk penyimpanan kolom, AlloyDB dapat mengakses data kolom sesegera mungkin.
Anda juga dapat menetapkan alokasi ke ukuran tetap dan spesifik menggunakan
flag google_columnar_engine.memory_size_in_mb
.
Untuk menetapkan tanda ini pada instance, lakukan hal berikut:
Jalankan perintah PostgreSQL
ALTER SYSTEM
:ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_STORE_SIZE;
Ganti
COLUMN_STORE_SIZE
dengan ukuran baru penyimpanan kolom, dalam megabyte.
Mengaktifkan join vektor
Mesin kolom memiliki fitur join vektor yang dapat meningkatkan performa join dengan menerapkan pemrosesan vektor ke kueri yang memenuhi syarat.
Setelah Anda mengaktifkan join vektor, perencana kueri AlloyDB memiliki opsi untuk menerapkan operator join vektor, bukan operator join hash PostgreSQL standar. Perencana membuat keputusan ini dengan membandingkan biaya eksekusi kueri menggunakan salah satu metode.
Untuk mengaktifkan join vektor pada instance, tetapkan tanda
google_columnar_engine.enable_vectorized_join
instance ke on
.
Untuk menetapkan tanda ini pada instance, jalankan perintah PostgreSQL ALTER SYSTEM
:
ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';
AlloyDB mengalokasikan satu thread ke fitur join
vektor secara default. Anda dapat meningkatkan jumlah thread yang tersedia untuk
fitur ini dengan menetapkan
tanda google_columnar_engine.vectorized_join_threads
ke nilai yang lebih besar.
Memuat ulang mesin kolom secara manual
Secara default, mesin kolom disetel untuk otomatis memuat ulang penyimpanan kolom di latar belakang saat diaktifkan. Anda mungkin perlu memuat ulang penyimpanan kolom secara manual dalam situasi tertentu, seperti jika pembaruan otomatis tidak memuat ulang hubungan dengan banyak blok yang tidak valid.
Untuk memuat ulang mesin kolom secara manual, jalankan kueri SQL berikut:
SELECT google_columnar_engine_refresh('TABLE_NAME');
Ganti TABLE_NAME
dengan nama tabel atau tampilan terwujud yang ingin Anda
muat ulang secara manual.
Menonaktifkan mesin kolom
Untuk menonaktifkan mesin kolom pada instance, tetapkan flag google_columnar_engine.enabled
ke off
.
Untuk menetapkan tanda ini pada instance, lakukan hal berikut:
Jalankan perintah PostgreSQL
ALTER SYSTEM
:ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
Memecahkan masalah mesin kolom
Memperbaiki error "memori bersama tidak memadai"
Jika Anda menjalankan AlloyDB Omni tanpa memori bersama yang cukup untuk digunakan mesin kolom, Anda mungkin melihat error ini:
Insufficient shared memory for generating the columnar formats.
Anda dapat mengatasi masalah ini dengan menentukan jumlah memori bersama yang tersedia untuk penampung AlloyDB Omni. Cara Anda melakukannya berbeda-beda, bergantung pada sistem operasi host
Linux
Tingkatkan ukuran partisi /dev/shm
mesin host Anda, menggunakan teknik seperti mengedit file /etc/fstab
.
macOS
Instal penampung AlloyDB Omni baru, dengan menentukan nilai memori bersama yang lebih besar untuk flag --shm-size
.
Memperbaiki kolom yang tidak terisi
Jika kolom tidak terisi di mesin kolom, salah satu situasi berikut mungkin berlaku:
Kolom yang ingin Anda tambahkan menyertakan jenis data yang tidak didukung.
Persyaratan mesin kolom tidak terpenuhi.
Untuk menemukan penyebab masalah ini, coba langkah-langkah berikut:
Konfirmasi bahwa tabel atau tampilan terwujud dalam kueri kita berada di mesin kolom.
Verifikasi penggunaan mesin kolom menggunakan pernyataan
EXPLAIN
.
Langkah selanjutnya
Pelajari kolom otomatis.