בדף הזה מוסבר איך להפעיל או להשבית את המנוע מבוסס-העמודות במכונה של 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.
אחרי שמגדירים את הדגל הזה, המכונה מופעלת מחדש באופן אוטומטי.
פתרון בעיות במנוע מבוסס-עמודות
אם העמודות לא מאוכלסות במנוע מבוסס-העמודות, יכול להיות שאחד מהמצבים הבאים מתקיים:
העמודות שאתם רוצים להוסיף כוללות סוג נתונים שלא נתמך.
המנוע מבוסס-העמודות לא עומד בדרישות.
כדי למצוא את הסיבה לבעיה, נסו את הפתרונות הבאים:
בודקים את יומני הביקורת של המכונה.
מוודאים שהטבלאות או התצוגות המהותיות בשאילתה נמצאות במנוע מבוסס-העמודות.
מוודאים שהמנוע מבוסס-העמודות נמצא בשימוש באמצעות ההצהרה
EXPLAIN.
המאמרים הבאים
לרשימה המלאה של דגלים לניהול מסדי נתונים של מנוע מבוסס-עמודות
מידע ולמידה על ארגון אוטומטי בעמודות
איך מאיצים שאילתות של ניתוח נתונים באמצעות המנוע מבוסס-העמודות של AlloyDB