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 ringkasan konseptual mesin berbasis kolom AlloyDB, lihat ringkasan mesin berbasis kolom AlloyDB Omni.
Mengaktifkan mesin kolom
Untuk menggunakan mesin berbasis kolom pada instance, tetapkan flag
google_columnar_engine.enabled
instance ke on
.
Langkah-langkah yang Anda gunakan untuk menetapkan tanda ini pada instance bergantung pada apakah Anda menjalankan AlloyDB Omni dalam penampung atau di cluster Kubernetes.
Server tunggal
Untuk menetapkan google_columnar_engine.enabled
ke on
, lakukan langkah-langkah 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, selesaikan langkah berikut untuk memulai ulang server database sekarang.
Agar perubahan parameter konfigurasi diterapkan, mulai ulang penampung yang berjalan dengan AlloyDB Omni.
Docker
sudo docker restart CONTAINER_NAME
Podman
sudo podman restart CONTAINER_NAME
Kubernetes
Untuk menetapkan tanda google_columnar_engine.enabled
ke on
, ubah manifes cluster database Anda untuk menambahkan atribut parameters
ke bagian primarySpec
:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "15.7.0"
primarySpec:
parameters:
google_columnar_engine.enabled: "on"
Ganti CLUSTER_NAME
dengan nama cluster database Anda. Nama ini sama dengan nama cluster database yang Anda deklarasikan saat membuatnya.
Mengonfigurasi ukuran penyimpanan kolom
Saat mesin berbasis kolom diaktifkan di instance, AlloyDB Omni mengalokasikan sebagian memori instance untuk menyimpan data kolomnya. Dengan menyediakan RAM berkecepatan tinggi untuk penyimpanan kolom, Anda memastikan bahwa AlloyDB Omni dapat mengakses data kolom sesegera mungkin.
Cache memori dan penyimpanan bersama-sama mewakili kapasitas keseluruhan mesin kolom.
Mengonfigurasi memori
Anda dapat menetapkan alokasi ke ukuran tetap menggunakan
flag google_columnar_engine.memory_size_in_mb
.
Langkah-langkah yang Anda gunakan untuk mengonfigurasi memori kolom penyimpanan untuk AlloyDB Omni bergantung pada apakah Anda menjalankan AlloyDB Omni dalam penampung atau di cluster Kubernetes.
Server tunggal
Untuk menetapkan flag google_columnar_engine.memory_size_in_mb
pada instance, lakukan hal berikut:
Konfigurasikan memori dengan menjalankan perintah PostgreSQL
ALTER SYSTEM
:ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_MEMORY_SIZE;
Ganti
COLUMN_MEMORY_SIZE
dengan ukuran baru penyimpanan kolom, dalam megabyte—misalnya,256
.Agar perubahan parameter konfigurasi diterapkan, mulai ulang penampung yang berjalan dengan AlloyDB Omni.
Docker
sudo docker restart CONTAINER_NAME
Podman
sudo podman restart CONTAINER_NAME
Kubernetes
Untuk menetapkan tanda google_columnar_engine.memory_size_in_mb
, ubah manifes cluster database Anda untuk menambahkan atribut parameters
ke bagian primarySpec
:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "15.7.0"
primarySpec:
parameters:
google_columnar_engine.memory_size_in_mb: "COLUMN_MEMORY_SIZE"
Ganti kode berikut:
CLUSTER_NAME
: nama cluster database Anda. Nama ini sama dengan nama cluster database yang Anda deklarasikan saat membuatnya.COLUMN_MEMORY_SIZE
: ukuran baru penyimpanan kolom, dalam megabyte—misalnya,256
.
Mengonfigurasi cache penyimpanan
Sebelum mengonfigurasi cache penyimpanan, Anda harus mengaktifkan cache disk AlloyDB Omni.
Langkah-langkah yang Anda gunakan untuk mengaktifkan cache penyimpanan untuk AlloyDB Omni bergantung pada apakah Anda menjalankan AlloyDB Omni dalam penampung atau di cluster Kubernetes.
Server tunggal
Konfigurasikan cache penyimpanan sebagai berikut:
ALTER SYSTEM SET google_columnar_engine.storage_cache_size = STORAGE_CACHE_SIZE;
Ganti
STORAGE_CACHE_SIZE
dengan ukuran cache penyimpanan yang Anda inginkan, dalam megabyte. Secara default, 5% cache disk dialokasikan ke mesin kolom. Nilai maksimum yang diizinkan untuk flag ini adalah 50% dari total cache disk atau 1000 * google_columnar_engine.memory_size_in_mb, mana saja yang lebih kecil.Agar perubahan parameter konfigurasi diterapkan, mulai ulang penampung yang berjalan dengan AlloyDB Omni.
Docker
sudo docker restart CONTAINER_NAME
Podman
sudo podman restart CONTAINER_NAME
Kubernetes
Untuk mengaktifkan cache penyimpanan untuk database, ubah manifes cluster database untuk menambahkan atribut columnarSpillToDisk
ke bagian features
di bagian primarySpec
:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "15.7.0"
primarySpec:
features:
columnarSpillToDisk:
cacheSize: STORAGE_CACHE_SIZE
ultraFastCache:
cacheSize: ULTRAFAST_CACHE_SIZE
genericVolume:
storageClass: "STORAGE_CLASS_NAME"
...
Ganti kode berikut:
CLUSTER_NAME
: nama cluster database Anda. Nama ini sama dengan nama cluster database yang Anda deklarasikan saat membuatnya.STORAGE_CACHE_SIZE
: ukuran cache penyimpanan kolom—misalnya,5Gi
. Jika Anda tidak menentukan nilai untuk kolom ini, 5% cache disk akan dialokasikan ke mesin kolom secara default.ULTRAFAST_CACHE_SIZE
: ukuran cache—misalnya,100Gi
. Nilainya harus lebih besar darishared_buffers
. Kolom ini bersifat opsional. Jika Anda tidak menentukan nilai kolom ini, AlloyDB Omni akan menggunakan semua ruang yang tersisa di disk, yang berlaku untuk AlloyDB Omni dalam penampung dan di cluster Kubernetes. Untuk mengetahui informasi selengkapnya tentang satuan pengukuran, lihat Unit resource memori.STORAGE_CLASS_NAME
: nama class penyimpanan volume cache ultra cepat—misalnya,local-storage
.
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 setiap 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 Omni 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. Nilai maksimumnya adalah cpu_count * 2
.
Memuat ulang mesin kolom secara manual
Secara default, saat mesin kolom diaktifkan, mesin akan memuat ulang penyimpanan kolom di latar belakang.
Untuk memuat ulang mesin kolom secara manual, jalankan kueri SQL berikut:
SELECT google_columnar_engine_refresh(relation =>'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
.
Langkah-langkah yang Anda gunakan untuk menetapkan tanda ini pada instance bergantung pada apakah Anda menjalankan AlloyDB Omni dalam penampung di satu server, atau di cluster Kubernetes.
Server tunggal
Untuk menetapkan google_columnar_engine.enabled
ke off
, lakukan langkah-langkah berikut:
- Jalankan perintah PostgreSQL
ALTER SYSTEM
:
ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
- Agar perubahan parameter konfigurasi diterapkan, mulai ulang penampung yang berjalan dengan AlloyDB Omni.
Docker
Untuk memulai ulang penampung AlloyDB Omni, jalankan perintah docker container restart
:
sudo docker restart CONTAINER_NAME
Ganti CONTAINER_NAME
dengan nama yang Anda tetapkan
ke penampung AlloyDB Omni saat menginstalnya.
Podman
Untuk memulai ulang penampung AlloyDB Omni, jalankan perintah podman container start
:
sudo podman restart CONTAINER_NAME
Ganti CONTAINER_NAME
dengan nama yang Anda tetapkan
ke penampung AlloyDB Omni saat menginstalnya.
Kubernetes
Untuk menetapkan tanda google_columnar_engine.enabled
ke off
, ubah manifes cluster database Anda untuk menambahkan atribut parameters
ke bagian primarySpec
:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "15.7.0"
primarySpec:
parameters:
google_columnar_engine.enabled: "off"
Ganti CLUSTER_NAME
dengan nama cluster database Anda. Nama ini sama dengan nama cluster database yang Anda deklarasikan saat membuatnya.
Memecahkan masalah mesin kolom
Memperbaiki error insufficient shared memory
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 Anda.
Linux
Tingkatkan ukuran partisi /dev/shm
mesin host Anda, menggunakan teknik seperti mengedit file /etc/fstab
.
macOS
Instal penampung AlloyDB Omni baru,
yang 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 hal berikut mungkin benar:
Kolom yang ingin Anda tambahkan menyertakan jenis data yang tidak didukung.
Persyaratan mesin kolom tidak terpenuhi.
Untuk memecahkan masalah ini, coba langkah berikut:
- Konfirmasi bahwa tabel atau tampilan terwujud dalam kueri berada di mesin kolom.
- Verifikasi penggunaan mesin kolom menggunakan pernyataan
EXPLAIN
.
Langkah selanjutnya
Pelajari tutorial Google CodeLab Mempercepat kueri analisis dengan columnar engine di AlloyDB Omni.