כדי להשתמש במנוע מבוסס-העמודות כשמשתמשים ב-AlloyDB ל-PostgreSQL ב- Google Cloud, קראו את המאמר הגדרת המנוע מבוסס-העמודות.
סקירה כללית של מנוע מבוסס-העמודות של AlloyDB מופיעה במאמר בנושא מנוע העמודות של AlloyDB.
הפעלת מנוע מבוסס-עמודות
כדי להשתמש במנוע מבוסס-עמודות במכונה, מגדירים את הדגל google_columnar_engine.enabled של המכונה לערך on.
כדי להגדיר את הדגל הזה במכונה:
מריצים את הפקודה
ALTER SYSTEMPostgreSQL:ALTER SYSTEM SET google_columnar_engine.enabled = 'on'אם רוצים לשנות את ההגדרה של מנוע מבוסס-עמודות, צריך לפעול לפי ההוראות שבקטע הבא לפני שמפעילים מחדש את שרת מסד הנתונים. אחרת, מבצעים את שני השלבים הבאים כדי להפעיל מחדש את שרת מסד הנתונים עכשיו.
הגדרת הגודל של מאגר העמודות
כשהמנוע מבוסס-העמודות מופעל במכונה, AlloyDB מקצה חלק מהזיכרון של המכונה לאחסון הנתונים מבוססי-העמודות. הקצאת זיכרון RAM במהירות גבוהה למאגר העמודות מבטיחה ש-AlloyDB יוכל לגשת לנתונים בעמודות במהירות האפשרית.
אפשר גם להגדיר את ההקצאה לגודל קבוע וספציפי באמצעות הדגל google_columnar_engine.memory_size_in_mb.
כדי להגדיר את הדגל הזה במכונה:
מריצים את הפקודה
ALTER SYSTEMב-PostgreSQL:ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_STORE_SIZE;מחליפים את
COLUMN_STORE_SIZEבגודל החדש של מאגר העמודות, במגה-בייט.
הפעלת שאילתת איחוד (join) וקטורית
למנוע מבוסס-העמודות יש תכונה של שאילתת איחוד (join) וקטורית, שיכולה לשפר את הביצועים של שאילתות איחוד על ידי הפעלת עיבוד וקטורי על שאילתות שעומדות בדרישות.
אחרי שמפעילים את שאילתת האיחוד הווקטורית, מתכנן השאילתות של AlloyDB יכול להחיל את אופרטור שאילתת האיחוד הווקטורית במקום את אופרטור שאילתת האיחוד של הגיבוב (hash) הרגיל של PostgreSQL. כדי לקבל את ההחלטה הזו, הכלי לתכנון משווה את העלות של ביצוע השאילתה בכל אחת מהשיטות.
כדי להפעיל את התכונה 'צירוף וקטורי' במכונה, מגדירים את הדגל google_columnar_engine.enable_vectorized_join של המכונה לערך on.
כדי להגדיר את הדגל הזה במופע, מריצים את הפקודה ALTER SYSTEM של PostgreSQL:
ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';
כברירת מחדל, מערכת AlloyDB מקצה שרשור אחד לתכונה של הצטרפות וקטורית. כדי להגדיל את מספר ה-threads שזמינים לתכונה הזו, אפשר להגדיר ערך גדול יותר לדגל google_columnar_engine.vectorized_join_threads.
רענון ידני של המנוע מבוסס-העמודות
כברירת מחדל, המנוע מבוסס-העמודות מוגדר לרענן באופן אוטומטי את מאגר העמודות ברקע כשהוא מופעל. יכול להיות שתצטרכו לרענן ידנית את מאגר הנתונים העמודתי במצבים מסוימים, למשל אם הרענון האוטומטי לא מרענן קשר עם מספר גבוה של בלוקים לא חוקיים.
כדי לרענן ידנית את מנוע העמודות, מריצים את שאילתת ה-SQL הבאה:
SELECT google_columnar_engine_refresh('TABLE_NAME');
מחליפים את TABLE_NAME בשם של הטבלה או של התצוגה המהותית שרוצים לרענן ידנית.
השבתת המנוע מבוסס-העמודות
כדי להשבית את המנוע הטבלאי במכונה, מגדירים את הדגל google_columnar_engine.enabled לערך off.
כדי להגדיר את הדגל הזה במופע:
מריצים את הפקודה
ALTER SYSTEMב-PostgreSQL:ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
פתרון בעיות במנוע מבוסס-עמודות
תיקון השגיאה "אין מספיק זיכרון משותף"
אם מריצים את AlloyDB Omni בלי מספיק זיכרון משותף לשימוש במנוע מבוסס-העמודות, יכול להיות שתופיע השגיאה הבאה:
Insufficient shared memory for generating the columnar formats.
כדי לפתור את הבעיה, אתם יכולים לציין את כמות הזיכרון המשותף שזמינה לקונטיינר של AlloyDB Omni. הדרך לעשות זאת משתנה בהתאם למערכת ההפעלה המארחת
Linux
מגדילים את המחיצה /dev/shm של המחשב המארח, למשל על ידי עריכת הקובץ /etc/fstab.
macOS
מתקינים קונטיינר חדש של AlloyDB Omni, ומציינים ערך גדול יותר של זיכרון משותף לדגל --shm-size.
תיקון עמודות שלא מתמלאות בנתונים
אם העמודות לא מאוכלסות במנוע העמודות, יכול להיות שאחד מהמצבים הבאים מתקיים:
העמודות שרוצים להוסיף כוללות סוג נתונים שלא נתמך.
המנוע מבוסס-העמודות לא עומד בדרישות.
כדי לגלות את הגורם לבעיה, נסו את הפתרונות הבאים:
מוודאים שהטבלאות או התצוגות החומריות בשאילתה נמצאות במנוע העמודות.
מוודאים שהמנוע מבוסס-העמודות נמצא בשימוש באמצעות ההצהרה
EXPLAIN.