Mengonfigurasi mesin berbasis kolom di AlloyDB Omni

Pilih versi dokumentasi:

Halaman ini menjelaskan cara mengaktifkan atau menonaktifkan columnar engine di cluster database AlloyDB Omni. Halaman ini juga membahas cara mengonfigurasi ukuran awal yang sesuai untuk penyimpanan kolomnya.

Untuk mengetahui ringkasan konseptual columnar engine AlloyDB, lihat Ringkasan columnar engine AlloyDB Omni.

Mengaktifkan columnar engine

Untuk menggunakan columnar engine pada instance, tetapkan flag instance's google_columnar_engine.enabled ke on.

Server tunggal

Untuk menetapkan google_columnar_engine.enabled ke on, lakukan langkah-langkah berikut:

  1. Jalankan perintah ALTER SYSTEM PostgreSQL:

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

  3. Agar perubahan parameter konfigurasi diterapkan, mulai ulang container yang berjalan dengan AlloyDB Omni.

    Docker

      sudo docker restart CONTAINER_NAME

    Podman

      sudo podman restart CONTAINER_NAME

Mengonfigurasi ukuran penyimpanan kolom

Saat columnar engine diaktifkan pada instance, AlloyDB Omni akan mengalokasikan sebagian memori instance untuk menyimpan data kolomnya. Mendedikasikan RAM berkecepatan tinggi ke penyimpanan kolom Anda akan memverifikasi bahwa AlloyDB Omni dapat mengakses data kolom secepat mungkin.

Cache memori dan penyimpanan bersama-sama mewakili kapasitas keseluruhan columnar engine.

Mengonfigurasi memori

Anda dapat menetapkan alokasi ke ukuran tetap menggunakan the google_columnar_engine.memory_size_in_mb flag.

Server tunggal

Untuk menetapkan flag google_columnar_engine.memory_size_in_mb pada instance, lakukan hal berikut:

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

  2. Agar perubahan parameter konfigurasi diterapkan, mulai ulang container yang berjalan dengan AlloyDB Omni.

    Docker

    sudo docker restart CONTAINER_NAME

    Podman

    sudo podman restart CONTAINER_NAME

Mengonfigurasi cache penyimpanan

Server tunggal

Anda dapat mengonfigurasi cache penyimpanan columnar engine di perangkat khusus atau bersama.

Perangkat khusus

Di perangkat khusus, untuk mengaktifkan cache penyimpanan columnar engine AlloyDB Omni untuk container server tunggal, Anda harus menyediakan disk dan membuat sistem file, lalu memasang direktori cache di dalam AlloyDB Omni, dan terakhir mengaktifkan cache penyimpanan kolom.

Menyediakan disk dan membuat sistem file

Untuk menyediakan penyimpanan bagi cache penyimpanan columnar engine AlloyDB Omni, ikuti petunjuk untuk sistem operasi host Anda guna menyiapkan media penyimpanan—seperti volume Docker bernama atau sistem file di disk khusus.

Non-Linux (macOS, Windows)

Di macOS atau Windows, gunakan volume Docker bernama untuk cache penyimpanan kolom guna memastikan performa optimal.

  1. Buat volume bernama:

    docker volume create COLUMNAR_CACHE_VOLUME

    Ganti COLUMNAR_CACHE_VOLUME dengan nama untuk volume—misalnya, omni-columnar-cache.

  2. Gunakan volume ini saat menjalankan container. Untuk mengetahui informasi selengkapnya, lihat Memasang direktori cache penyimpanan kolom.

Linux

Untuk menyediakan disk dan membuat sistem file untuk cache penyimpanan columnar engine AlloyDB Omni, Anda membuat sistem file di satu atau beberapa disk dan memasangnya di dalam container dengan AlloyDB Omni. Selain itu, Anda dapat menggunakan utilitas seperti mdadm atau lvm untuk menggabungkan kapasitas menggunakan beberapa disk dan menggunakan sistem file apa pun. Langkah-langkah berikut menunjukkan penggunaan lvm dan ext4 pada instance Compute Engine Ubuntu menggunakan SSD NVMe.

  1. Buat grup volume dari semua perangkat fisik yang tersedia:

          nvme_prefix="STORAGE_PREFIX"
          nvme_list=$(ls "$nvme_prefix"*)
          sudo vgcreate VOLUME_GROUP ${nvme_list}

    Ganti kode berikut:

    • STORAGE_PREFIX: awalan jalur disk lokal target yang terpasang ke mesin virtual menggunakan antarmuka nonvolatile memory express (NVMe)—misalnya, di Google Cloud, jalur perangkat NVMe selalu dimulai dengan /dev/nvme0n.
    • VOLUME_GROUP: nama grup volume tempat SSD Anda digabungkan—misalnya, omni-disk-cache-volume.
  2. Untuk membuat volume logis dari kapasitas kosong grup volume dari langkah sebelumnya, gunakan perintah berikut:

            sudo lvcreate -n LOGICAL_VOLUME -l 100%FREE VOLUME_GROUP

    Ganti LOGICAL_VOLUME dengan nama volume logis yang diperlakukan sebagai partisi oleh LVM—misalnya, omni_disk_cache_device.

  3. Buat sistem file ext4 di volume logis. Jika diperlukan, Anda dapat menentukan opsi ext4 lainnya yang tunduk pada keamanan data.
          sudo mkfs.ext4 /dev/VOLUME_GROUP/LOGICAL_VOLUME
  4. Untuk membuat direktori yang berfungsi sebagai titik pemasangan di mesin host dan memasang sistem file, gunakan perintah berikut:

          sudo mkdir /OMNI_COLUMNAR_STORAGE_CACHE_DIRECTORY
          sudo mount /dev/VOLUME_GROUP/LOGICAL_VOLUME /OMNI_COLUMNAR_STORAGE_CACHE_DIRECTORY

    Ganti OMNI_COLUMNAR_STORAGE_CACHE_DIRECTORY dengan nama direktori atau jalur ke direktori yang berfungsi sebagai titik pemasangan—misalnya, omni_columnar_storage_cache_directory.

Memasang direktori cache penyimpanan kolom di dalam AlloyDB Omni

Sebelum mengaktifkan cache disk untuk AlloyDB Omni yang berjalan di dalam container, Anda harus memasang direktori cache di dalam AlloyDB Omni.

Untuk memasang direktori cache di dalam container, gunakan flag -v.

  • Untuk jalur host Linux:

    -v /OMNI_COLUMNAR_STORAGE_CACHE_DIRECTORY:/CACHE_DIRECTORY_PATH_INSIDE_CONTAINER
  • Untuk volume bernama (non-Linux):

    -v COLUMNAR_CACHE_VOLUME:/CACHE_DIRECTORY_PATH_INSIDE_CONTAINER

Contoh perintah Docker menggunakan volume bernama:

  sudo docker run --name CONTAINER_NAME 
-e POSTGRES_PASSWORD=PASSWORD
-e PGDATA=/var/lib/postgresql/data/pgdata
-v DATA_DIR:/var/lib/postgresql/data
-v COLUMNAR_CACHE_VOLUME:/var/lib/alloydb/columnar_cache
-d google/alloydbomni

Untuk mengetahui informasi tentang cara menginstal AlloyDB Omni dari image Docker dan menyesuaikannya, lihat Menyesuaikan penginstalan AlloyDB Omni.

Untuk memasang OMNI_COLUMNAR_STORAGE_CACHE_DIRECTORY di dalam container Docker yang menjalankan AlloyDB Omni, gunakan perintah berikut:

Docker

  sudo docker run --name CONTAINER_NAME 
-e POSTGRES_PASSWORD=PASSWORD
-e PGDATA=/var/lib/postgresql/data/pgdata
-v DATA_DIR:/var/lib/postgresql/data
-v /OMNI_COLUMNAR_STORAGE_CACHE_DIRECTORY:/CACHE_DIRECTORY_PATH_INSIDE_CONTAINER
-d google/alloydbomni

Ganti kode berikut:

  • CONTAINER_NAME: nama untuk menetapkan container AlloyDB Omni baru—misalnya, my-omni.
  • PASSWORD: sandi untuk administrator root database PostgreSQL Anda.
  • DATA_DIR: jalur sistem file yang ingin Anda gunakan oleh AlloyDB Omni untuk direktori datanya.
  • CACHE_DIRECTORY_PATH_INSIDE_CONTAINER: direktori cache di dalam container AlloyDB Omni yang dipetakan ke titik pemasangan di mesin host—misalnya, berdasarkan nilai direktori cache di dalam container, baik /omni_disk_cache_directory, mirip dengan OMNI_COLUMNAR_STORAGE_CACHE_DIRECTORY, atau /disk/cache/inside/container.

Podman

  podman run --name CONTAINER_NAME 
-e POSTGRES_PASSWORD=PASSWORD
-e PGDATA=/var/lib/postgresql/data/pgdata
-v DATA_DIR:/var/lib/postgresql/data
-v /OMNI_COLUMNAR_STORAGE_CACHE_DIRECTORY:/CACHE_DIRECTORY_PATH_INSIDE_CONTAINER
-d docker.io/google/alloydbomni

Ganti kode berikut:

  • CONTAINER_NAME: nama untuk menetapkan container AlloyDB Omni baru—misalnya, my-omni.
  • PASSWORD: sandi untuk administrator root database PostgreSQL Anda.
  • CACHE_DIRECTORY_PATH_INSIDE_CONTAINER: direktori cache di dalam container AlloyDB Omni yang dipetakan ke titik pemasangan di mesin host—misalnya, berdasarkan nilai direktori cache di dalam container, baik /omni_columnar_storage_cache_directory, mirip dengan OMNI_COLUMNAR_STORAGE_CACHE_DIRECTORY, atau /disk/cache/inside/container.

Untuk memberikan izin akses penuh ke OMNI_COLUMNAR_STORAGE_CACHE_DIRECTORY yang terpasang, gunakan perintah berikut:

Docker

  sudo docker exec -it CONTAINER_NAME chown postgres:postgres /CACHE_DIRECTORY_PATH_INSIDE_CONTAINER
  sudo docker exec -it CONTAINER_NAME chmod -R a+rw  /CACHE_DIRECTORY_PATH_INSIDE_CONTAINER
  

Podman

  sudo podman exec -it CONTAINER_NAME chown postgres:postgres /CACHE_DIRECTORY_PATH_INSIDE_CONTAINER
  sudo podman exec -it CONTAINER_NAME chmod -R a+rw  /CACHE_DIRECTORY_PATH_INSIDE_CONTAINER
  

Mengaktifkan cache penyimpanan kolom AlloyDB Omni untuk AlloyDB Omni yang berjalan di dalam container

Untuk mengaktifkan cache penyimpanan kolom AlloyDB Omni di perangkat khusus untuk database Anda, tetapkan parameter Grand Unified Configuration (GUC) yang sesuai setelah memverifikasi bahwa direktori cache yang terpasang dapat diakses dari dalam container Docker.

  1. Tetapkan direktori cache penyimpanan kolom:

    ALTER SYSTEM SET google_columnar_engine.omni_storage_cache_directory = OMNI_COLUMNAR_STORAGE_CACHE_DIRECTORY;
    

    Ganti OMNI_COLUMNAR_STORAGE_CACHE_DIRECTORY dengan jalur absolut ke direktori khusus tempat Anda ingin AlloyDB Omni menyimpan file cache penyimpanan columnar engine. Pastikan direktori ini ada dan memiliki izin tulis yang sesuai untuk pengguna database.

  2. Konfigurasi ukuran cache penyimpanan:

    ALTER SYSTEM SET google_columnar_engine.storage_cache_size = STORAGE_CACHE_SIZE;
    

    Ganti STORAGE_CACHE_SIZE dengan ukuran cache penyimpanan kolom yang Anda inginkan, dalam megabyte. Secara default, seluruh ukuran perangkat khusus dialokasikan ke columnar engine, tanpa memengaruhi cache disk. Nilai maksimum yang diizinkan untuk flag ini adalah 1000 * google_columnar_engine.memory_size_in_mb mana pun yang minimum.

  3. Agar perubahan parameter konfigurasi diterapkan, mulai ulang container yang berjalan dengan AlloyDB Omni.

    Docker

    sudo docker restart CONTAINER_NAME

    Podman

    sudo podman restart CONTAINER_NAME

Perangkat bersama

Sebelum mengonfigurasi cache penyimpanan kolom ke perangkat bersama dengan cache disk, Anda harus mengaktifkan cache disk AlloyDB Omni.

Konfigurasi cache penyimpanan di perangkat bersama sebagai berikut:

  1. Konfigurasi cache penyimpanan:

    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 columnar engine. Nilai maksimum yang diizinkan untuk flag ini adalah 50% dari total cache disk atau 1000 * google_columnar_engine.memory_size_in_mb mana pun yang minimum.

  2. Agar perubahan parameter konfigurasi diterapkan, mulai ulang container yang berjalan dengan AlloyDB Omni.

    Docker

    sudo docker restart CONTAINER_NAME

    Podman

    sudo podman restart CONTAINER_NAME

Mengaktifkan gabungan vektor

Columnar engine memiliki fitur gabungan vektor yang dapat meningkatkan performa gabungan dengan menerapkan pemrosesan vektor ke kueri yang memenuhi syarat.

Setelah Anda mengaktifkan gabungan vektor, pengoptimal kueri AlloyDB memiliki opsi untuk menerapkan operator gabungan vektor, bukan operator gabungan hash PostgreSQL standar. Pengoptimal membuat keputusan ini dengan membandingkan biaya menjalankan kueri menggunakan setiap metode.

Untuk mengaktifkan gabungan vektor pada instance, tetapkan flag instance google_columnar_engine.enable_vectorized_join ke on.

Untuk menetapkan flag 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 menetapkan google_columnar_engine.vectorized_join_threads flag ke nilai yang lebih besar. Nilai maksimumnya adalah cpu_count * 2.

Memuat ulang columnar engine secara manual

Secara default, saat columnar engine diaktifkan, columnar engine akan memuat ulang penyimpanan kolom di latar belakang.

Untuk memuat ulang columnar engine 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 columnar engine

Untuk menonaktifkan columnar engine pada instance, tetapkan flag google_columnar_engine.enabled ke off.

Server tunggal

Untuk menetapkan google_columnar_engine.enabled ke off, lakukan langkah-langkah berikut:

  1. Jalankan perintah ALTER SYSTEM PostgreSQL:
ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
  1. Agar perubahan parameter konfigurasi diterapkan, mulai ulang container yang berjalan dengan AlloyDB Omni.

Docker

Untuk memulai ulang container AlloyDB Omni, jalankan perintah docker container restart:

  sudo docker restart CONTAINER_NAME

Ganti CONTAINER_NAME dengan nama yang Anda tetapkan ke container AlloyDB Omni saat menginstalnya.

Podman

Untuk memulai ulang container AlloyDB Omni, jalankan perintah podman container start:

  sudo podman restart CONTAINER_NAME

Ganti CONTAINER_NAME dengan nama yang Anda tetapkan ke container AlloyDB Omni saat menginstalnya.

Langkah berikutnya