Mengonfigurasi mesin berbasis kolom di AlloyDB Omni

Pilih versi dokumentasi:

Halaman ini menjelaskan cara mengaktifkan atau menonaktifkan mesin berbasis kolom pada cluster database AlloyDB Omni. Dokumen ini juga membahas cara mengonfigurasi ukuran awal yang sesuai untuk penyimpanan kolomnya.

Untuk menggunakan mesin berbasis kolom saat menggunakan AlloyDB untuk PostgreSQL di Google Cloud, lihat Mengonfigurasi mesin berbasis kolom.

Untuk mengetahui ringkasan konseptual mesin berbasis kolom AlloyDB, lihat artikel Tentang mesin berbasis kolom AlloyDB.

Mengaktifkan mesin columnar

Untuk menggunakan mesin berbasis kolom pada sebuah instance, tetapkan flag google_columnar_engine.enabled instance ke on.

Untuk menyetel tanda ini pada instance, lakukan hal berikut:

  1. Jalankan perintah ALTER SYSTEM PostgreSQL:

    ALTER SYSTEM SET google_columnar_engine.enabled = 'on'
    
  2. Jika Anda ingin menyesuaikan konfigurasi mesin columnar, ikuti petunjuk di bagian berikutnya sebelum Anda memulai ulang server database. Jika tidak, ikuti dua langkah berikutnya untuk memulai ulang server database sekarang.

  3. Hentikan server database.

  4. Mulai server database.

Mengonfigurasi ukuran penyimpanan kolom

Saat mesin berbasis kolom diaktifkan pada instance, AlloyDB akan mengalokasikan sebagian memori instance untuk menyimpan data berbasis kolomnya. Mendedikasikan RAM berkecepatan tinggi untuk penyimpanan kolom Anda memastikan AlloyDB dapat mengakses data kolom secepat mungkin.

Anda juga dapat menetapkan alokasi ke ukuran tetap dan spesifik menggunakan flag google_columnar_engine.memory_size_in_mb.

Untuk menyetel tanda ini pada instance, lakukan hal berikut:

  1. Jalankan perintah ALTER SYSTEM PostgreSQL:

    ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_STORE_SIZE;
    

    Ganti COLUMN_STORE_SIZE dengan ukuran baru penyimpanan kolom, dalam megabyte.

  2. Hentikan server database.

  3. Mulai server database.

Mengaktifkan gabungan tervektorisasi

Mesin columnar memiliki fitur penggabungan tervektorisasi yang dapat meningkatkan performa penggabungan dengan menerapkan pemrosesan tervektorisasi ke kueri yang memenuhi syarat.

Setelah Anda mengaktifkan gabungan tervektorisasi, perencana kueri AlloyDB memiliki opsi untuk menerapkan operator gabungan tervektorisasi, bukan operator gabungan hash PostgreSQL standar. Perencana membuat keputusan ini dengan membandingkan biaya eksekusi kueri menggunakan salah satu metode.

Untuk mengaktifkan gabungan tervektor pada instance, setel tanda google_columnar_engine.enable_vectorized_join instance ke on.

Untuk menyetel 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 gabungan vektor secara default. Anda dapat meningkatkan jumlah thread yang tersedia untuk fitur ini dengan menyetel tanda google_columnar_engine.vectorized_join_threads ke nilai yang lebih besar.

Memuat ulang mesin berbasis kolom secara manual

Secara default, mesin columnar disetel untuk otomatis memuat ulang penyimpanan kolom di latar belakang saat diaktifkan. Anda mungkin perlu memperbarui penyimpanan kolom secara manual dalam situasi tertentu, seperti jika pemuatan ulang otomatis tidak memperbarui hubungan dengan sejumlah besar 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 columnar

Untuk menonaktifkan mesin columbar pada instance, setel flag google_columnar_engine.enabled ke off.

Untuk menyetel tanda ini pada instance, lakukan hal berikut:

  1. Jalankan perintah ALTER SYSTEM PostgreSQL:

    ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
    
  2. Hentikan server database.

  3. Mulai server database.

Memecahkan masalah mesin berbasis kolom

Memperbaiki error "memori bersama tidak cukup"

Jika Anda menjalankan AlloyDB Omni tanpa memori bersama yang cukup untuk digunakan mesin berbasis kolom, Anda mungkin akan 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 Anda

Linux

Tingkatkan ukuran partisi /dev/shm mesin host Anda, menggunakan teknik seperti mengedit file /etc/fstab Anda.

macOS

Instal penampung AlloyDB Omni baru, dengan menentukan nilai memori bersama yang lebih besar untuk tanda --shm-size.

Memperbaiki kolom yang tidak terisi

Jika kolom tidak terisi di mesin kolom, salah satu situasi berikut mungkin terjadi:

  • Kolom yang ingin Anda tambahkan berisi jenis data yang tidak didukung.

  • Persyaratan columnar engine tidak terpenuhi.

Untuk mengetahui penyebab masalah ini, coba langkah-langkah berikut:

  • Konfirmasi bahwa tabel atau tampilan terwujud dalam kueri kita berada di mesin columnar.

  • Verifikasi penggunaan mesin berbasis kolom menggunakan pernyataan EXPLAIN.

Langkah berikutnya