הגדרת מנוע מבוסס-עמודות ב-AlloyDB Omni

בוחרים גרסה של מאמר העזרה:

בדף הזה מוסבר איך להפעיל או להשבית את המנוע מבוסס-העמודות באשכול מסד נתונים של AlloyDB Omni. בנוסף, מוסבר איך להגדיר גודל ראשוני מתאים לחנות העמודות.

סקירה כללית של מנוע מבוסס-עמודות ב-AlloyDB Omni זמינה במאמר בנושא סקירה כללית של מנוע מבוסס-עמודות ב-AlloyDB Omni.

הפעלת מנוע מבוסס-עמודות

כדי להשתמש במנוע מבוסס-עמודות במכונה, מגדירים את הדגל google_columnar_engine.enabled של המכונה לערך on.

כדי להגדיר את הפרמטר google_columnar_engine.enabled לערך on, מבצעים את השלבים הבאים:

  1. פותחים את מניפסט אשכול מסד הנתונים DBCluster.

  2. בקטע primarySpec, מוסיפים את הפרמטר google_columnar_engine.enabled לבלוק parameters:

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

    מחליפים את DB_CLUSTER_NAME בשם של אשכול מסדי הנתונים.

  3. הכלי לניהול מחזורי חיים של RPM מפעיל מחדש את מסד הנתונים באופן אוטומטי כדי להחיל את שינויי הפרמטרים. מחילים את המניפסט המעודכן DBCluster באחת מהשיטות הבאות:

    alloydbctl

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

    מחליפים את מה שכתוב בשדות הבאים:

    • DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה.
    • DBCLUSTER_SPECIFICATION: הנתיב למניפסט DBCluster ששיניתם.

    Ansible

    1. יוצרים קובץ של ספר הפעלה 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
      

      מחליפים את מה שכתוב בשדות הבאים:

      • SSH_USER: שם המשתמש שבו אתם משתמשים כדי להתחבר לצמתים באשכול באמצעות SSH.
      • SSH_KEY_PATH: הנתיב המקומי לקובץ של מפתח ה-SSH הפרטי שמשמש לחיבור לצמתים.
    2. מריצים את המדריך מצומת הבקרה ומעבירים את מפרט המשאב כמשתנה נוסף:

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

      מחליפים את מה שכתוב בשדות הבאים:

      • DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה.
      • DBCLUSTER_SPECIFICATION: הנתיב למניפסט DBCluster ששיניתם.

הגדרת הגודל של מאגר העמודות

כשהמנוע מבוסס-העמודות מופעל במכונה, מערכת AlloyDB Omni מקצה חלק מהזיכרון של המכונה לאחסון הנתונים מבוססי-העמודות שלו. הקצאת זיכרון RAM מהיר למאגר העמודות מוודאת ש-AlloyDB Omni יכול לגשת לנתונים העמודתיים במהירות המרבית.

הזיכרון והמטמון של האחסון מייצגים יחד את הקיבולת הכוללת של מנוע מבוסס-עמודות.

הגדרת הזיכרון

אפשר להגדיר את ההקצאה לגודל קבוע באמצעות הדגל google_columnar_engine.memory_size_in_mb.

כדי להגדיר את הפרמטר google_columnar_engine.memory_size_in_mb, מבצעים את השלבים הבאים:

  1. פותחים את מניפסט אשכול מסד הנתונים DBCluster.

  2. בקטע primarySpec, מוסיפים את הגדרת מנוע מבוסס-עמודות לבלוק 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"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • DB_CLUSTER_NAME: השם של אשכול מסד הנתונים.
    • MEMORY_SIZE_MB: כמות הזיכרון, במגה-בייט, להקצאה למנוע העמודות.
  3. הכלי לניהול מחזורי חיים של RPM מפעיל מחדש את מסד הנתונים באופן אוטומטי כדי להחיל את שינויי הפרמטרים. מחילים את המניפסט המעודכן DBCluster באחת מהשיטות הבאות:

    alloydbctl

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

    מחליפים את מה שכתוב בשדות הבאים:

    • DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה.
    • DBCLUSTER_SPECIFICATION: הנתיב למניפסט DBCluster ששיניתם.

    Ansible

    1. יוצרים קובץ של ספר הפעלה 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
      

      מחליפים את מה שכתוב בשדות הבאים:

      • SSH_USER: שם המשתמש שבו אתם משתמשים כדי להתחבר לצמתים באשכול באמצעות SSH.
      • SSH_KEY_PATH: הנתיב המקומי לקובץ של מפתח ה-SSH הפרטי שמשמש לחיבור לצמתים.
    2. מריצים את המדריך מצומת הבקרה ומעבירים את מפרט המשאב כמשתנה נוסף:

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

      מחליפים את מה שכתוב בשדות הבאים:

      • DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה.
      • DBCLUSTER_SPECIFICATION: הנתיב למניפסט DBCluster ששיניתם.

הגדרת מטמון אחסון

אפשר להגדיר את מטמון האחסון של מנוע מבוסס-עמודות במכשירים ייעודיים או במכשירים משותפים.

מכשירים ייעודיים

כדי להגדיר מכשיר ייעודי למטמון של מנוע מבוסס-עמודות, מבצעים את השלבים הבאים:

  1. פותחים את מניפסט אשכול מסד הנתונים DBCluster.

  2. בקטע primarySpec, מוסיפים את מאפיין columnarSpillToDisk עם הערכים cacheSize ו-localVolume.path לבלוק 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
    

    מחליפים את מה שכתוב בשדות הבאים:

    • DB_CLUSTER_NAME: השם של אשכול מסד הנתונים.
    • STORAGE_CACHE_SIZE: מגבלת הגודל של מטמון האחסון של מנוע מבוסס-עמודות, לדוגמה, 50Gi.
    • COLUMNAR_CACHE_DIR_PATH: הנתיב במערכת הקבצים של הספרייה הייעודית למטמון האחסון של מנוע מבוסס-עמודות, לדוגמה /mnt/disks/columnarcache.
  3. מחילים את DBCluster המניפסט המעודכן באמצעות alloydbctl או Ansible:

    alloydbctl

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

    מחליפים את מה שכתוב בשדות הבאים:

    • DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה.
    • DBCLUSTER_SPECIFICATION: הנתיב למניפסט DBCluster ששיניתם.

    Ansible

    1. יוצרים קובץ של ספר הפעלה 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
      

      מחליפים את מה שכתוב בשדות הבאים:

      • SSH_USER: שם המשתמש שבו אתם משתמשים כדי להתחבר לצמתים באשכול באמצעות SSH.
      • SSH_KEY_PATH: הנתיב המקומי לקובץ של מפתח ה-SSH הפרטי שמשמש לחיבור לצמתים.
    2. מריצים את המדריך מצומת הבקרה ומעבירים את מפרט המשאב כמשתנה נוסף:

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

      מחליפים את מה שכתוב בשדות הבאים:

      • DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה.
      • DBCLUSTER_SPECIFICATION: הנתיב למניפסט DBCluster ששיניתם.

מכשירים משותפים

אם לא מציינים את localVolume.path בקטע columnarSpillToDisk, אז מטמון האחסון של מנוע מבוסס-עמודות משתף את מטמון האחסון בדיסק שהוגדר בקטע ultraFastCache.

כדי להגדיר את מטמון האחסון של מנוע מבוסס-עמודות במכשירים משותפים, מבצעים את השלבים הבאים:

  1. פותחים את מניפסט אשכול מסד הנתונים DBCluster.

  2. בקטע primarySpec, מוסיפים את המאפיינים columnarSpillToDisk ו-ultraFastCache לבלוק 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
    

    מחליפים את מה שכתוב בשדות הבאים:

    • DB_CLUSTER_NAME: השם של אשכול מסד הנתונים.
    • STORAGE_CACHE_SIZE: גודל מטמון האחסון העמודתי, לדוגמה, 50Gi. אם לא מציינים ערך בשדה הזה, מוקצים למנוע העמודות 5% ממטמון הדיסק כברירת מחדל.
    • ULTRAFAST_CACHE_SIZE: הגודל המקסימלי של מאגר המטמון המהיר במיוחד ששמור על ידי AlloyDB Omni, לדוגמה 100Gi. אם לא מגדירים את המדיניות, המערכת משתמשת בכל שטח הדיסק שנותר ב-localVolume.path.
    • DISK_CACHE_DIR_PATH: נתיב התיקייה של קובצי המטמון המהיר במיוחד, לדוגמה, /mnt/disks/chillcache.
  3. מחילים את DBCluster המניפסט המעודכן באמצעות alloydbctl או Ansible:

    alloydbctl

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

    מחליפים את מה שכתוב בשדות הבאים:

    • DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה.
    • DBCLUSTER_SPECIFICATION: הנתיב למניפסט DBCluster ששיניתם.

    Ansible

    1. יוצרים קובץ של ספר הפעלה 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
      

      מחליפים את מה שכתוב בשדות הבאים:

      • SSH_USER: שם המשתמש שבו אתם משתמשים כדי להתחבר לצמתים באשכול באמצעות SSH.
      • SSH_KEY_PATH: הנתיב המקומי לקובץ של מפתח ה-SSH הפרטי שמשמש לחיבור לצמתים.
    2. מריצים את המדריך מצומת הבקרה ומעבירים את מפרט המשאב כמשתנה נוסף:

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

      מחליפים את מה שכתוב בשדות הבאים:

      • DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה.
      • DBCLUSTER_SPECIFICATION: הנתיב למניפסט DBCluster ששיניתם.

הפעלת הצטרפות וקטורית

למנוע מבוסס-עמודות יש תכונה של צירוף וקטורי שיכולה לשפר את הביצועים של צירופים על ידי החלת עיבוד וקטורי על שאילתות שעומדות בדרישות.

אחרי שמפעילים את ההצטרפות הווקטורית, למתכנן השאילתות של AlloyDB יש אפשרות להחיל את אופרטור ההצטרפות הווקטורית במקום אופרטור ההצטרפות הרגיל של PostgreSQL. המתכנן מקבל את ההחלטה הזו על ידי השוואה בין העלות של ביצוע השאילתה באמצעות כל אחת מהשיטות.

כדי להפעיל את התכונה 'צירוף וקטורי' במופע, מגדירים את הדגל google_columnar_engine.enable_vectorized_join של המופע לערך on.

כדי להגדיר את הדגל הזה במופע, מריצים את הפקודה ALTER SYSTEM של PostgreSQL:

ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';

כברירת מחדל, מערכת AlloyDB Omni מקצה שרשור אחד לתכונה של צירוף וקטורי. כדי להגדיל את מספר השרשורים שזמינים לתכונה הזו, צריך להגדיר את הדגל google_columnar_engine.vectorized_join_threads לערך גדול יותר. הערך המקסימלי הוא cpu_count * 2.

רענון ידני של מנוע מבוסס-עמודות

כברירת מחדל, כשהמנוע העמודתי מופעל, הוא מרענן את מאגר העמודות ברקע.

כדי לרענן את מנוע העמודות באופן ידני, מריצים את שאילתת ה-SQL הבאה:

SELECT google_columnar_engine_refresh(relation =>'TABLE_NAME');

מחליפים את TABLE_NAME בשם הטבלה או התצוגה החומרית שרוצים לרענן באופן ידני.

השבתת מנוע העמודות

כדי להשבית את מנוע מבוסס-העמודות במכונה, מגדירים את הדגל google_columnar_engine.enabled לערך off.

כדי להגדיר את הפרמטר google_columnar_engine.enabled לערך off, מבצעים את השלבים הבאים:

  1. פותחים את מניפסט אשכול מסד הנתונים DBCluster.

  2. בקטע primarySpec, מגדירים את הפרמטר google_columnar_engine.enabled לערך off בבלוק parameters:

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

    מחליפים את DB_CLUSTER_NAME בשם של אשכול מסדי הנתונים.

  3. הכלי לניהול מחזורי חיים של RPM מפעיל מחדש את מסד הנתונים באופן אוטומטי כדי להחיל את שינויי הפרמטרים. מחילים את המניפסט המעודכן DBCluster באחת מהשיטות הבאות:

    alloydbctl

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

    מחליפים את מה שכתוב בשדות הבאים:

    • DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה.
    • DBCLUSTER_SPECIFICATION: הנתיב למניפסט DBCluster ששיניתם.

    Ansible

    1. יוצרים קובץ של ספר הפעלה 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
      

      מחליפים את מה שכתוב בשדות הבאים:

      • SSH_USER: שם המשתמש שבו אתם משתמשים כדי להתחבר לצמתים באשכול באמצעות SSH.
      • SSH_KEY_PATH: הנתיב המקומי לקובץ של מפתח ה-SSH הפרטי שמשמש לחיבור לצמתים.
    2. מריצים את המדריך מצומת הבקרה ומעבירים את מפרט המשאב כמשתנה נוסף:

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

      מחליפים את מה שכתוב בשדות הבאים:

      • DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה.
      • DBCLUSTER_SPECIFICATION: הנתיב למניפסט DBCluster ששיניתם.

המאמרים הבאים