Mengonfigurasi mesin berbasis kolom di AlloyDB Omni

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:

  1. Jalankan perintah PostgreSQL ALTER SYSTEM:

    ALTER SYSTEM SET google_columnar_engine.enabled = 'on'
    
  2. 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.

  3. Hentikan server database.

  4. Mulai server database.

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:

  1. 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.

  2. Hentikan server database.

  3. Mulai server database.

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:

  1. Jalankan perintah PostgreSQL ALTER SYSTEM:

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

  3. Mulai server database.

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