סקירה כללית של מנוע מבוסס-עמודות ב-AlloyDB Omni זמינה במאמר בנושא סקירה כללית של מנוע מבוסס-עמודות ב-AlloyDB Omni.
הפעלת מנוע מבוסס-עמודות
כדי להשתמש במנוע מבוסס-עמודות במכונה, מגדירים את הדגל google_columnar_engine.enabled של המכונה לערך on.
כדי להגדיר את הפרמטר google_columnar_engine.enabled לערך on, מבצעים את השלבים הבאים:
פותחים את מניפסט אשכול מסד הנתונים
DBCluster.בקטע
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בשם של אשכול מסדי הנתונים.הכלי לניהול מחזורי חיים של RPM מפעיל מחדש את מסד הנתונים באופן אוטומטי כדי להחיל את שינויי הפרמטרים. מחילים את המניפסט המעודכן
DBClusterבאחת מהשיטות הבאות:alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"מחליפים את מה שכתוב בשדות הבאים:
-
DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה. -
DBCLUSTER_SPECIFICATION: הנתיב למניפסטDBClusterששיניתם.
Ansible
יוצרים קובץ של ספר הפעלה
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 הפרטי שמשמש לחיבור לצמתים.
-
מריצים את המדריך מצומת הבקרה ומעבירים את מפרט המשאב כמשתנה נוסף:
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, מבצעים את השלבים הבאים:
פותחים את מניפסט אשכול מסד הנתונים
DBCluster.בקטע
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: כמות הזיכרון, במגה-בייט, להקצאה למנוע העמודות.
-
הכלי לניהול מחזורי חיים של RPM מפעיל מחדש את מסד הנתונים באופן אוטומטי כדי להחיל את שינויי הפרמטרים. מחילים את המניפסט המעודכן
DBClusterבאחת מהשיטות הבאות:alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"מחליפים את מה שכתוב בשדות הבאים:
-
DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה. -
DBCLUSTER_SPECIFICATION: הנתיב למניפסטDBClusterששיניתם.
Ansible
יוצרים קובץ של ספר הפעלה
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 הפרטי שמשמש לחיבור לצמתים.
-
מריצים את המדריך מצומת הבקרה ומעבירים את מפרט המשאב כמשתנה נוסף:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"מחליפים את מה שכתוב בשדות הבאים:
-
DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה. -
DBCLUSTER_SPECIFICATION: הנתיב למניפסטDBClusterששיניתם.
-
-
הגדרת מטמון אחסון
אפשר להגדיר את מטמון האחסון של מנוע מבוסס-עמודות במכשירים ייעודיים או במכשירים משותפים.
מכשירים ייעודיים
כדי להגדיר מכשיר ייעודי למטמון של מנוע מבוסס-עמודות, מבצעים את השלבים הבאים:
פותחים את מניפסט אשכול מסד הנתונים
DBCluster.בקטע
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.
-
מחילים את
DBClusterהמניפסט המעודכן באמצעותalloydbctlאו Ansible:alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"מחליפים את מה שכתוב בשדות הבאים:
-
DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה. -
DBCLUSTER_SPECIFICATION: הנתיב למניפסטDBClusterששיניתם.
Ansible
יוצרים קובץ של ספר הפעלה
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 הפרטי שמשמש לחיבור לצמתים.
-
מריצים את המדריך מצומת הבקרה ומעבירים את מפרט המשאב כמשתנה נוסף:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"מחליפים את מה שכתוב בשדות הבאים:
-
DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה. -
DBCLUSTER_SPECIFICATION: הנתיב למניפסטDBClusterששיניתם.
-
-
מכשירים משותפים
אם לא מציינים את localVolume.path בקטע columnarSpillToDisk, אז מטמון האחסון של מנוע מבוסס-עמודות משתף את מטמון האחסון בדיסק שהוגדר בקטע ultraFastCache.
כדי להגדיר את מטמון האחסון של מנוע מבוסס-עמודות במכשירים משותפים, מבצעים את השלבים הבאים:
פותחים את מניפסט אשכול מסד הנתונים
DBCluster.בקטע
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.
-
מחילים את
DBClusterהמניפסט המעודכן באמצעותalloydbctlאו Ansible:alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"מחליפים את מה שכתוב בשדות הבאים:
-
DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה. -
DBCLUSTER_SPECIFICATION: הנתיב למניפסטDBClusterששיניתם.
Ansible
יוצרים קובץ של ספר הפעלה
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 הפרטי שמשמש לחיבור לצמתים.
-
מריצים את המדריך מצומת הבקרה ומעבירים את מפרט המשאב כמשתנה נוסף:
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, מבצעים את השלבים הבאים:
פותחים את מניפסט אשכול מסד הנתונים
DBCluster.בקטע
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בשם של אשכול מסדי הנתונים.הכלי לניהול מחזורי חיים של RPM מפעיל מחדש את מסד הנתונים באופן אוטומטי כדי להחיל את שינויי הפרמטרים. מחילים את המניפסט המעודכן
DBClusterבאחת מהשיטות הבאות:alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"מחליפים את מה שכתוב בשדות הבאים:
-
DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה. -
DBCLUSTER_SPECIFICATION: הנתיב למניפסטDBClusterששיניתם.
Ansible
יוצרים קובץ של ספר הפעלה
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 הפרטי שמשמש לחיבור לצמתים.
-
מריצים את המדריך מצומת הבקרה ומעבירים את מפרט המשאב כמשתנה נוסף:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"מחליפים את מה שכתוב בשדות הבאים:
-
DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה. -
DBCLUSTER_SPECIFICATION: הנתיב למניפסטDBClusterששיניתם.
-
-
המאמרים הבאים
אפשר לנסות את ה-Codelab איך מאיצים שאילתות של ניתוח נתונים באמצעות מנוע מבוסס-עמודות ב-AlloyDB Omni.