סקירה כללית על המנוע מבוסס-העמודות של 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
יוצרים קובץ 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מחליפים את מה שכתוב בשדות הבאים:
-
SSH_USER: שם המשתמש שבו אתם משתמשים כדי להתחבר לצמתים באשכול באמצעות SSH. -
SSH_KEY_PATH: הנתיב המקומי לקובץ של מפתח ה-SSH הפרטי שמשמש להתחברות לצמתים.
-
מריצים את ה-playbook מצומת הבקרה, ומעבירים את מפרט המשאב כמשתנה נוסף:
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
יוצרים קובץ 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מחליפים את מה שכתוב בשדות הבאים:
-
SSH_USER: שם המשתמש שבו אתם משתמשים כדי להתחבר לצמתים באשכול באמצעות SSH. -
SSH_KEY_PATH: הנתיב המקומי לקובץ של מפתח ה-SSH הפרטי שמשמש להתחברות לצמתים.
-
מריצים את ה-playbook מצומת הבקרה, ומעבירים את מפרט המשאב כמשתנה נוסף:
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
יוצרים קובץ 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מחליפים את מה שכתוב בשדות הבאים:
-
SSH_USER: שם המשתמש שבו אתם משתמשים כדי להתחבר לצמתים באשכול באמצעות SSH. -
SSH_KEY_PATH: הנתיב המקומי לקובץ של מפתח ה-SSH הפרטי שמשמש להתחברות לצמתים.
-
מריצים את ה-playbook מצומת הבקרה, ומעבירים את מפרט המשאב כמשתנה נוסף:
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
יוצרים קובץ 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מחליפים את מה שכתוב בשדות הבאים:
-
SSH_USER: שם המשתמש שבו אתם משתמשים כדי להתחבר לצמתים באשכול באמצעות SSH. -
SSH_KEY_PATH: הנתיב המקומי לקובץ של מפתח ה-SSH הפרטי שמשמש להתחברות לצמתים.
-
מריצים את ה-playbook מצומת הבקרה, ומעבירים את מפרט המשאב כמשתנה נוסף:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"מחליפים את מה שכתוב בשדות הבאים:
-
DEPLOYMENT_SPEC_PATH: הנתיב לספרייה של מפרט הפריסה. DBCLUSTER_SPECIFICATION: הנתיב למניפסט שלDBClusterששיניתם.
-
-
הפעלת שאילתת איחוד (join) וקטורית
למנוע מבוסס-העמודות יש תכונה של שאילתת איחוד (join) וקטורית, שיכולה לשפר את הביצועים של שאילתות איחוד על ידי החלת עיבוד וקטורי על שאילתות שעומדות בדרישות.
אחרי שמפעילים שאילתת איחוד וקטורית, מתכנן השאילתות של AlloyDB יכול להחיל את אופרטור שאילתת האיחוד הווקטורית במקום את אופרטור שאילתת האיחוד הרגיל של PostgreSQL. המתכנן מקבל את ההחלטה הזו על ידי השוואה בין עלות הביצוע של השאילתה בכל אחת מהשיטות.
כדי להפעיל שאילתת איחוד (join) וקטורית במכונה, מגדירים את הדגל google_columnar_engine.enable_vectorized_join של המכונה לערך on.
google_columnar_engine.enable_vectorized_join: "on" לקטע parameters במניפסט של DBCluster. מידע נוסף זמין במאמר הגדרת הפרמטרים של מסד הנתונים של AlloyDB Omni.
כברירת מחדל, AlloyDB Omni מקצה שרשור אחד לתכונה "שאילתת איחוד (join) וקטורית". כדי להגדיל את מספר ה-threads שזמינים לתכונה הזו, אפשר להגדיר ערך גדול יותר לדגל 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
יוצרים קובץ 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מחליפים את מה שכתוב בשדות הבאים:
-
SSH_USER: שם המשתמש שבו אתם משתמשים כדי להתחבר לצמתים באשכול באמצעות SSH. -
SSH_KEY_PATH: הנתיב המקומי לקובץ של מפתח ה-SSH הפרטי שמשמש להתחברות לצמתים.
-
מריצים את ה-playbook מצומת הבקרה, ומעבירים את מפרט המשאב כמשתנה נוסף:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"מחליפים את מה שכתוב בשדות הבאים:
-
DEPLOYMENT_SPEC_PATH: הנתיב לספרייה של מפרט הפריסה. DBCLUSTER_SPECIFICATION: הנתיב למניפסט שלDBClusterששיניתם.
-
-
המאמרים הבאים
הרשימה המלאה של דגלים לניהול מסדי נתונים של מנוע מבוסס-עמודות
נסו את ה-Codelab בנושא האצת שאילתות של ניתוח נתונים באמצעות מנוע מבוסס-עמודות ב-AlloyDB Omni.