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

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

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

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

מידע כללי על המנוע מבוסס-העמודות של AlloyDB

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

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

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

מידע נוסף על הגדרת דגלים לניהול מסדי נתונים ב-AlloyDB זמין במאמר הגדרת דגלים לניהול מסדי נתונים של מכונה.

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

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

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

הגדרת הזיכרון של המנוע מבוסס-העמודות

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

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

כברירת מחדל, AlloyDB מקצה 30% מהזיכרון של המכונה למאגר העמודות. במכונה עם מעבד וירטואלי אחד, הקצאת ברירת המחדל היא 10%. אם משנים את גודל המכונה, AlloyDB מתאימה באופן אוטומטי את ההקצאה הכוללת. אפשר לשנות את הזיכרון של המכונה לערך מקסימלי מומלץ של 50%, אבל מותר גם 70%. במכונה עם מעבד וירטואלי אחד, הערך המקסימלי המותר הוא 20%. לא משנה מה גודל המכונה, ההקצאה המינימלית היא 128MB. כדי למצוא את גודל הזיכרון המומלץ למנוע מבוסס-העמודות במכונה, קראו את המאמר המלצה על גודל הזיכרון של מאגר הנתונים בעמודות.

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

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

הגדרת הטעינה של אינדקסים וקטוריים למנוע מבוסס-העמודות

המנוע מבוסס-העמודות מאיץ את החיפוש הווקטורי כשמאכלסים בו אינדקסים וקטוריים של HNSW או ScaNN. האצת מנוע מבוסס-עמודות לאינדקסים של HNSW זמינה לכלל המשתמשים (GA), וההאצה לאינדקסים של ScaNN נמצאת בגרסת טרום-השקה (Preview).

כדי להפעיל את המטמון לאינדקס העמודות, מגדירים את הדגל google_columnar_engine.enable_index_caching לערך on.

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

הגדרת מטמון האחסון למנוע מבוסס-העמודות

צריך להתאים את הגודל של google_columnar_engine.storage_cache_size ביחס להגדרה של google_columnar_engine.memory_size_in_mb, כי הזיכרון של המנוע מבוסס-העמודות משמש למטא-נתונים בזיכרון של מטמון האחסון. היחס המומלץ הוא בערך פי 100 עד 1,000 מגודל הזיכרון. לדוגמה, אם הערך של google_columnar_engine.memory_size_in_mb הוא 1024 (1GB), צריך להגדיר את google_columnar_engine.storage_cache_size בין 100GB ל-1,000GB.

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

רמת המכונה גודל ברירת המחדל של המטמון במנוע מבוסס-עמודות
N2 C4A
ראשי קריאת מאגר מאגר ראשי או מאגר לקריאה
‫1 vCPU לא רלוונטי לא רלוונטי 0
‫2 מעבדים וירטואליים 18.75 GB 37.5GB 18.75 GB
‫4 מעבדי vCPU 18.75 GB 37.5GB 18.75 GB
‫8 מעבדי vCPU 18.75 GB 37.5GB 37.5GB
‫16 מעבדי vCPU 37.5GB 37.5GB 75GB
‫32 מעבדי vCPU 75GB 75GB 112.5GB
‫48 vCPU לא רלוונטי לא רלוונטי ‫187.5GB
64 vCPU ‫150GB ‫150GB 262.5GB
72 vCPU לא רלוונטי לא רלוונטי ‫300GB
96 vCPU ‫300GB ‫300GB לא רלוונטי
‫128 vCPU ‫450GB ‫450GB לא רלוונטי

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

רמת המכונה גודל המטמון המינימלי של המנוע מבוסס-העמודות הגודל המקסימלי של המטמון במנוע מבוסס-עמודות
N2 C4A
ראשי קריאת מאגר מאגר ראשי או מאגר לקריאה
‫1 vCPU לא רלוונטי לא רלוונטי לא רלוונטי 0
‫2 מעבדים וירטואליים 0 ‫187.5GB 375GB ‫187.5GB
‫4 מעבדי vCPU 0 ‫187.5GB 375GB ‫187.5GB
‫8 מעבדי vCPU 0 ‫187.5GB 375GB 375GB
‫16 מעבדי vCPU 0 375GB 375GB 750GB
‫32 מעבדי vCPU 0 750GB 750GB 1,125GB
‫48 vCPU 0 לא רלוונטי לא רלוונטי 1,875GB
64 vCPU 0 ‫1,500GB ‫1,500GB 2,625GB
72 vCPU 0 לא רלוונטי לא רלוונטי 3,000GB
96 vCPU 0 3,000GB 3,000GB לא רלוונטי
‫128 vCPU 0 4,500GB 4,500GB לא רלוונטי

מעקב אחרי נתוני המטמון של האחסון במנוע מבוסס-העמודות

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

פקודה תיאור
SELECT google_columnar_engine_storage_cache_used(); מחזירה את הגודל של מטמון האחסון של המנוע מבוסס-העמודות שנמצא בשימוש.
SELECT google_columnar_engine_storage_cache_available(); מחזירה את הגודל של מטמון האחסון שלא בשימוש במנוע מבוסס-העמודות.
SHOW google_columnar_engine.storage_cache_size; הפונקציה מחזירה את הנפח הכולל של המטמון שהוגדר למנוע מבוסס-העמודות.

הפעלת שאילתת איחוד (join) וקטורית

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

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

כדי להפעיל שאילתת איחוד (join) וקטורית במכונה, מגדירים את הדגל google_columnar_engine.enable_vectorized_join של המכונה לערך on.

מידע נוסף על הגדרת דגלים לניהול מסדי נתונים זמין במאמר הגדרת דגלים לניהול מסדי נתונים של מכונה.

כברירת מחדל, AlloyDB מקצה שרשור אחד לתכונה "שאילתת איחוד (join) וקטורית". כדי להגדיל את מספר ה-threads שזמינים לתכונה הזו, אפשר להגדיר ערך גדול יותר לדגל google_columnar_engine.vectorized_join_threads.

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

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

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

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

SELECT google_columnar_engine_refresh('TABLE_NAME');

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

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

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

מידע נוסף על הגדרת דגלים לניהול מסדי נתונים ב-AlloyDB זמין במאמר הגדרת דגלים לניהול מסדי נתונים של מכונה.

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

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

אם העמודות לא מאוכלסות במנוע מבוסס-העמודות, יכול להיות שאחד מהמצבים הבאים מתקיים:

  • העמודות שאתם רוצים להוסיף כוללות סוג נתונים שלא נתמך.

  • המנוע מבוסס-העמודות לא עומד בדרישות.

כדי למצוא את הסיבה לבעיה, נסו את הפתרונות הבאים:

  • בודקים את יומני הביקורת של המכונה.

  • מוודאים שהטבלאות או התצוגות המהותיות בשאילתה נמצאות במנוע מבוסס-העמודות.

  • מוודאים שהמנוע מבוסס-העמודות נמצא בשימוש באמצעות ההצהרה EXPLAIN.

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