Untuk mengetahui ringkasan konseptual columnar engine AlloyDB, lihat Ringkasan columnar engine AlloyDB Omni.
Mengaktifkan columnar engine
Untuk menggunakan columnar engine pada sebuah instance, tetapkan flag
google_columnar_engine.enabled
instance ke on.
Kubernetes
Untuk menyetel flag 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: "18.3.0"
primarySpec:
parameters:
google_columnar_engine.enabled: "on"
Ganti CLUSTER_NAME dengan nama cluster database Anda. Nama cluster database ini sama dengan yang Anda deklarasikan saat Anda membuatnya.
Mengonfigurasi ukuran penyimpanan kolom
Saat columnar engine diaktifkan pada instance, AlloyDB Omni akan mengalokasikan sebagian memori instance untuk menyimpan data kolomnya. Mengkhususkan RAM berkecepatan tinggi untuk penyimpanan kolom Anda akan memastikan bahwa AlloyDB Omni dapat mengakses data kolom secepat mungkin.
Cache memori dan penyimpanan bersama-sama menunjukkan kapasitas keseluruhan columnar engine.
Mengonfigurasi memori
Anda dapat menyetel alokasi ke ukuran tetap menggunakan
flag google_columnar_engine.memory_size_in_mb.
Kubernetes
Untuk menyetel flag 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: "18.3.0"
primarySpec:
parameters:
google_columnar_engine.memory_size_in_mb: "COLUMN_MEMORY_SIZE"
Ganti kode berikut:
CLUSTER_NAME: nama cluster database Anda. Nama cluster database ini sama dengan yang Anda deklarasikan saat Anda membuatnya.COLUMN_MEMORY_SIZE: ukuran baru penyimpanan kolom, dalam megabyte—misalnya,256.
Mengonfigurasi cache penyimpanan
Anda dapat mengonfigurasi cache penyimpanan columnar engine di perangkat bersama atau khusus.
Kubernetes
Perangkat bersama
Untuk mengaktifkan cache penyimpanan untuk database Anda di perangkat bersama, ubah manifes cluster database Anda untuk menambahkan atribut columnarSpillToDisk ke bagian features dari bagian primarySpec:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "18.3.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 cluster database ini sama dengan yang Anda deklarasikan saat Anda membuatnya.STORAGE_CACHE_SIZE: ukuran cache penyimpanan berkolom—misalnya,5Gi. Jika Anda tidak menentukan nilai untuk kolom ini, 5% cache disk akan dialokasikan ke mesin columnar 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 container dan di cluster Kubernetes. Untuk mengetahui informasi selengkapnya tentang satuan ukuran, lihat Unit resource memori.STORAGE_CLASS_NAME: nama class penyimpanan volume cache ultra cepat—misalnya,local-storage.
Perangkat khusus
Secara default, cache penyimpanan mesin columnar berbagi perangkat yang sama dengan cache disk AlloyDB Omni. Namun, Anda dapat mengonfigurasi columnar engine untuk menggunakan perangkat khusus sendiri untuk cache penyimpanannya karena alasan berikut:
- Anda tidak memerlukan cache disk karena penyimpanan utama Anda sudah menggunakan SSD berperforma tinggi. Dalam skenario ini, Anda dapat membuat cache penyimpanan columnar engine tanpa harus mengalokasikan ruang untuk cache disk.
- Anda ingin menggunakan media penyimpanan yang berbeda untuk cache disk dan cache mesin columnar. Misalnya, Anda mungkin ingin menggunakan SSD standar untuk cache disk dan SSD NVMe berperforma lebih tinggi untuk cache mesin columnar.
Menggunakan volume generik
Untuk mengonfigurasi perangkat khusus untuk cache penyimpanan columnar engine, Anda mengubah manifes DBCluster untuk menambahkan atribut columnarSpillToDisk ke bagian features. Dalam columnarSpillToDisk, Anda kemudian dapat menentukan genericVolume dengan storageClass yang mengarah ke penyimpanan yang ingin Anda gunakan untuk cache columnar engine khusus.
Contoh cara mengonfigurasi perangkat khusus 50 Gi untuk cache penyimpanan columnar engine menggunakan class penyimpanan bernama local-ssd adalah sebagai berikut:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "18.3.0"
primarySpec:
features:
columnarSpillToDisk:
cacheSize: STORAGE_CACHE_SIZE
genericVolume:
storageClass: "STORAGE_CLASS_NAME"
Ganti kode berikut:
CLUSTER_NAME: nama cluster database Anda. Nama cluster database ini sama dengan yang Anda deklarasikan saat Anda membuatnya.STORAGE_CACHE_SIZE: ukuran cache penyimpanan berkolom—misalnya,50Gi. Jika Anda tidak menentukan nilai untuk kolom ini, 5% cache disk akan dialokasikan ke mesin columnar secara default.STORAGE_CLASS_NAME: nama kelas penyimpanan untuk volume cache columnar engine khusus—misalnya,local-ssd.
Menggunakan volume sementara
Anda dapat mengonfigurasi mesin columnar untuk menggunakan volume emptyDir sementara untuk cache penyimpanannya. Volume emptyDir dibuat saat Pod ditetapkan ke node, dan volume tersebut ada selama Pod berjalan di node tersebut. Saat Pod dihapus dari node, data dalam emptyDir akan dihapus secara permanen.
Untuk mengonfigurasi volume emptyDir untuk cache penyimpanan berkolom, ubah manifes DBCluster Anda untuk menambahkan atribut emptyDir ke bagian columnarSpillToDisk.
Berikut adalah contoh cara mengonfigurasi volume sementara untuk cache penyimpanan berkolom:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "17.5.0"
primarySpec:
features:
columnarSpillToDisk:
cacheSize: 50Gi
emptyDir: {}
Ganti kode berikut:
CLUSTER_NAME: nama cluster database Anda. Nama cluster database ini sama dengan yang Anda deklarasikan saat Anda membuatnya.STORAGE_CACHE_SIZE: ukuran cache penyimpanan berkolom—misalnya,50Gi.
Mengaktifkan gabungan tervektorisasi
Columnar engine memiliki fitur vectorized join yang dapat meningkatkan performa gabungan dengan menerapkan pemrosesan tervektor 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 setiap metode.
Untuk mengaktifkan penggabungan tervektor pada instance, tetapkan 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 Omni 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. Nilai maksimum adalah cpu_count * 2.
Memuat ulang columnar engine secara manual
Secara default, saat diaktifkan, columnar engine akan me-refresh column store 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 columbar pada instance, tetapkan flag google_columnar_engine.enabled
ke off.
Kubernetes
Untuk menyetel flag 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: "18.3.0"
primarySpec:
parameters:
google_columnar_engine.enabled: "off"
Ganti CLUSTER_NAME dengan nama cluster database Anda. Nama cluster database ini sama dengan yang Anda deklarasikan saat Anda membuatnya.