Mengonfigurasi mesin berbasis kolom di AlloyDB Omni

Pilih versi dokumentasi:

Halaman ini menjelaskan cara mengaktifkan atau menonaktifkan columnar engine di cluster database AlloyDB Omni. Kursus 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 sebuah instance, tetapkan flag google_columnar_engine.enabled instance ke on.

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

  1. Buka manifes cluster database DBCluster Anda.

  2. Di bagian primarySpec, tambahkan parameter google_columnar_engine.enabled ke blok parameters:

    DBCluster:
      metadata:
        name: DB_CLUSTER_NAME
      spec:
        # ... existing cluster configuration ...
        primarySpec:
          # ... existing primary configuration ...
          parameters:
            google_columnar_engine.enabled: "on"
    

    Ganti DB_CLUSTER_NAME dengan nama cluster database.

  3. Orchestrator RPM otomatis memulai ulang database untuk menerapkan perubahan parameter. Terapkan manifes DBCluster yang telah diperbarui menggunakan salah satu metode berikut:

    alloydbctl

    alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"

    Ganti kode berikut:

    • DEPLOYMENT_SPEC_PATH: jalur ke direktori spesifikasi deployment Anda.
    • DBCLUSTER_SPECIFICATION: jalur ke manifes DBCluster yang Anda ubah.

    Ansible

    1. Buat file playbook update.yml:

      ---
      - hosts: localhost
        vars:
          update_action: "update_resource_spec"
          ansible_user: SSH_USER
          ansible_ssh_private_key_file: SSH_KEY_PATH
        roles:
          - role: google.alloydbomni_orchestrator.update
      

      Ganti kode berikut:

      • SSH_USER: nama pengguna yang Anda gunakan untuk terhubung ke node di cluster menggunakan SSH.
      • SSH_KEY_PATH: jalur lokal ke file kunci pribadi SSH yang digunakan untuk terhubung ke node Anda.
    2. Jalankan playbook dari node kontrol Anda, dengan meneruskan spesifikasi resource sebagai variabel tambahan:

      ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \
        -e resource_spec="DBCLUSTER_SPECIFICATION"

      Ganti kode berikut:

      • DEPLOYMENT_SPEC_PATH: jalur ke direktori spesifikasi deployment Anda.
      • DBCLUSTER_SPECIFICATION: jalur ke manifes DBCluster yang Anda ubah.

Mengonfigurasi ukuran penyimpanan kolom

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

Memori dan cache penyimpanan bersama-sama mewakili kapasitas keseluruhan columnar engine.

Mengonfigurasi memori

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

Untuk menetapkan parameter google_columnar_engine.memory_size_in_mb, selesaikan langkah-langkah berikut:

  1. Buka manifes cluster database DBCluster Anda.

  2. Di bagian primarySpec, tambahkan konfigurasi columnar engine ke blok parameters:

    DBCluster:
      metadata:
        name: DB_CLUSTER_NAME
      spec:
        # ... existing cluster configuration ...
        primarySpec:
          # ... existing primary configuration ...
          parameters:
            google_columnar_engine.enabled: "on"
            google_columnar_engine.memory_size_in_mb: "MEMORY_SIZE_MB"
    

    Ganti kode berikut:

    • DB_CLUSTER_NAME: nama cluster database.
    • MEMORY_SIZE_MB: jumlah memori, dalam megabyte, yang akan dialokasikan ke columnar engine.
  3. Orchestrator RPM otomatis memulai ulang database untuk menerapkan perubahan parameter. Terapkan manifes DBCluster yang telah diperbarui menggunakan salah satu metode berikut:

    alloydbctl

    alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"

    Ganti kode berikut:

    • DEPLOYMENT_SPEC_PATH: jalur ke direktori spesifikasi deployment Anda.
    • DBCLUSTER_SPECIFICATION: jalur ke manifes DBCluster yang Anda ubah.

    Ansible

    1. Buat file playbook update.yml:

      ---
      - hosts: localhost
        vars:
          update_action: "update_resource_spec"
          ansible_user: SSH_USER
          ansible_ssh_private_key_file: SSH_KEY_PATH
        roles:
          - role: google.alloydbomni_orchestrator.update
      

      Ganti kode berikut:

      • SSH_USER: nama pengguna yang Anda gunakan untuk terhubung ke node di cluster menggunakan SSH.
      • SSH_KEY_PATH: jalur lokal ke file kunci pribadi SSH yang digunakan untuk terhubung ke node Anda.
    2. Jalankan playbook dari node kontrol Anda, dengan meneruskan spesifikasi resource sebagai variabel tambahan:

      ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \
        -e resource_spec="DBCLUSTER_SPECIFICATION"

      Ganti kode berikut:

      • DEPLOYMENT_SPEC_PATH: jalur ke direktori spesifikasi deployment Anda.
      • DBCLUSTER_SPECIFICATION: jalur ke manifes DBCluster yang Anda ubah.

Mengonfigurasi cache penyimpanan

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

Perangkat khusus

Untuk mengonfigurasi perangkat khusus untuk cache penyimpanan columnar engine, selesaikan langkah-langkah berikut:

  1. Buka manifes cluster database DBCluster Anda.

  2. Di bagian primarySpec, tambahkan atribut columnarSpillToDisk dengan cacheSize dan localVolume.path ke blok features:

    DBCluster:
      metadata:
        name: DB_CLUSTER_NAME
      spec:
        # ... existing cluster configuration ...
        primarySpec:
          # ... existing primary configuration ...
          features:
            columnarSpillToDisk:
              cacheSize: STORAGE_CACHE_SIZE
              localVolume:
                path: COLUMNAR_CACHE_DIR_PATH
    

    Ganti kode berikut:

    • DB_CLUSTER_NAME: nama cluster database.
    • STORAGE_CACHE_SIZE: batas ukuran untuk cache penyimpanan columnar engine—misalnya, 50Gi.
    • COLUMNAR_CACHE_DIR_PATH: jalur sistem file dari direktori khusus untuk cache penyimpanan columnar engine—misalnya, /mnt/disks/columnarcache.
  3. Terapkan manifes DBCluster yang telah diperbarui menggunakan alloydbctl atau Ansible:

    alloydbctl

    alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"

    Ganti kode berikut:

    • DEPLOYMENT_SPEC_PATH: jalur ke direktori spesifikasi deployment Anda.
    • DBCLUSTER_SPECIFICATION: jalur ke manifes DBCluster yang Anda ubah.

    Ansible

    1. Buat file playbook update.yml:

      ---
      - hosts: localhost
        vars:
          update_action: "update_resource_spec"
          ansible_user: SSH_USER
          ansible_ssh_private_key_file: SSH_KEY_PATH
        roles:
          - role: google.alloydbomni_orchestrator.update
      

      Ganti kode berikut:

      • SSH_USER: nama pengguna yang Anda gunakan untuk terhubung ke node di cluster menggunakan SSH.
      • SSH_KEY_PATH: jalur lokal ke file kunci pribadi SSH yang digunakan untuk terhubung ke node Anda.
    2. Jalankan playbook dari node kontrol Anda, dengan meneruskan spesifikasi resource sebagai variabel tambahan:

      ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \
        -e resource_spec="DBCLUSTER_SPECIFICATION"

      Ganti kode berikut:

      • DEPLOYMENT_SPEC_PATH: jalur ke direktori spesifikasi deployment Anda.
      • DBCLUSTER_SPECIFICATION: jalur ke manifes DBCluster yang Anda ubah.

Perangkat bersama

Jika Anda tidak menentukan localVolume.path di bagian columnarSpillToDisk, cache penyimpanan columnar engine akan berbagi penyimpanan cache disk yang dikonfigurasi di bagian ultraFastCache.

Untuk mengonfigurasi cache penyimpanan columnar engine di perangkat bersama, selesaikan langkah-langkah berikut:

  1. Buka manifes cluster database DBCluster Anda.

  2. Di bagian primarySpec, tambahkan atribut columnarSpillToDisk dan ultraFastCache ke blok features:

    DBCluster:
      metadata:
        name: DB_CLUSTER_NAME
      spec:
        # ... existing cluster configuration ...
        primarySpec:
          # ... existing primary configuration ...
          features:
            columnarSpillToDisk:
              cacheSize: STORAGE_CACHE_SIZE
            ultraFastCache:
              cacheSize: ULTRAFAST_CACHE_SIZE
              localVolume:
                path: DISK_CACHE_DIR_PATH
    

    Ganti kode berikut:

    • DB_CLUSTER_NAME: nama cluster database.
    • STORAGE_CACHE_SIZE: ukuran cache penyimpanan berbasis kolom—misalnya, 50Gi. Jika Anda tidak menentukan nilai untuk kolom ini, 5% dari cache disk akan dialokasikan ke columnar engine secara default.
    • ULTRAFAST_CACHE_SIZE: ukuran maksimum buffer cache ultra cepat yang dicadangkan oleh AlloyDB Omni—misalnya, 100Gi. Jika tidak disetel, semua kapasitas disk yang tersisa di localVolume.path akan digunakan.
    • DISK_CACHE_DIR_PATH: jalur folder untuk file cache ultra cepat—misalnya, /mnt/disks/chillcache.
  3. Terapkan manifes DBCluster yang telah diperbarui menggunakan alloydbctl atau Ansible:

    alloydbctl

    alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"

    Ganti kode berikut:

    • DEPLOYMENT_SPEC_PATH: jalur ke direktori spesifikasi deployment Anda.
    • DBCLUSTER_SPECIFICATION: jalur ke manifes DBCluster yang Anda ubah.

    Ansible

    1. Buat file playbook update.yml:

      ---
      - hosts: localhost
        vars:
          update_action: "update_resource_spec"
          ansible_user: SSH_USER
          ansible_ssh_private_key_file: SSH_KEY_PATH
        roles:
          - role: google.alloydbomni_orchestrator.update
      

      Ganti kode berikut:

      • SSH_USER: nama pengguna yang Anda gunakan untuk terhubung ke node di cluster menggunakan SSH.
      • SSH_KEY_PATH: jalur lokal ke file kunci pribadi SSH yang digunakan untuk terhubung ke node Anda.
    2. Jalankan playbook dari node kontrol Anda, dengan meneruskan spesifikasi resource sebagai variabel tambahan:

      ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \
        -e resource_spec="DBCLUSTER_SPECIFICATION"

      Ganti kode berikut:

      • DEPLOYMENT_SPEC_PATH: jalur ke direktori spesifikasi deployment Anda.
      • DBCLUSTER_SPECIFICATION: jalur ke manifes DBCluster yang Anda ubah.

Mengaktifkan operasi gabung dengan vektor

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

Setelah Anda mengaktifkan operasi gabung dengan vektor, perencana kueri AlloyDB memiliki opsi untuk menerapkan operator operasi gabung dengan vektor, bukan operator hash join PostgreSQL standar. Perencana membuat keputusan ini dengan membandingkan biaya eksekusi kueri menggunakan setiap metode.

Untuk mengaktifkan operasi gabung dengan vektor pada instance, tetapkan flag google_columnar_engine.enable_vectorized_join instance ke on.

Untuk menetapkan parameter ini pada cluster database, tambahkan google_columnar_engine.enable_vectorized_join: "on" ke bagian parameters manifes DBCluster Anda. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi parameter database AlloyDB Omni.

AlloyDB Omni mengalokasikan satu thread ke fitur operasi gabung dengan vektor secara default. Anda dapat meningkatkan jumlah thread yang tersedia untuk fitur ini dengan menetapkan flag google_columnar_engine.vectorized_join_threads ke nilai yang lebih besar. Nilai maksimumnya adalah cpu_count * 2.

Memuat ulang columnar engine secara manual

Secara default, saat diaktifkan, columnar engine akan memperbarui 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 columnar engine

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

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

  1. Buka manifes cluster database DBCluster Anda.

  2. Di bagian primarySpec, tetapkan parameter google_columnar_engine.enabled ke off di blok parameters:

    DBCluster:
      metadata:
        name: DB_CLUSTER_NAME
      spec:
        # ... existing cluster configuration ...
        primarySpec:
          # ... existing primary configuration ...
          parameters:
            google_columnar_engine.enabled: "off"
    

    Ganti DB_CLUSTER_NAME dengan nama cluster database.

  3. Orchestrator RPM otomatis memulai ulang database untuk menerapkan perubahan parameter. Terapkan manifes DBCluster yang telah diperbarui menggunakan salah satu metode berikut:

    alloydbctl

    alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"

    Ganti kode berikut:

    • DEPLOYMENT_SPEC_PATH: jalur ke direktori spesifikasi deployment Anda.
    • DBCLUSTER_SPECIFICATION: jalur ke manifes DBCluster yang Anda ubah.

    Ansible

    1. Buat file playbook update.yml:

      ---
      - hosts: localhost
        vars:
          update_action: "update_resource_spec"
          ansible_user: SSH_USER
          ansible_ssh_private_key_file: SSH_KEY_PATH
        roles:
          - role: google.alloydbomni_orchestrator.update
      

      Ganti kode berikut:

      • SSH_USER: nama pengguna yang Anda gunakan untuk terhubung ke node di cluster menggunakan SSH.
      • SSH_KEY_PATH: jalur lokal ke file kunci pribadi SSH yang digunakan untuk terhubung ke node Anda.
    2. Jalankan playbook dari node kontrol Anda, dengan meneruskan spesifikasi resource sebagai variabel tambahan:

      ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \
        -e resource_spec="DBCLUSTER_SPECIFICATION"

      Ganti kode berikut:

      • DEPLOYMENT_SPEC_PATH: jalur ke direktori spesifikasi deployment Anda.
      • DBCLUSTER_SPECIFICATION: jalur ke manifes DBCluster yang Anda ubah.

Langkah berikutnya