כדי להשתמש במנוע מבוסס-העמודות ב-AlloyDB Omni, קראו את המאמר הפעלת המנוע מבוסס-העמודות ב-AlloyDB Omni.
כל אחת מהפעולות האלה כוללת שינוי של הערך של דגל לניהול מסד נתונים באחד ממכונות AlloyDB. למידע נוסף על הגדרת דגלים לניהול מסדי נתונים, ראו הגדרת דגלים לניהול מסדי נתונים במכונה.
מידע כללי על המנוע מבוסס-העמודות של AlloyDB
הפעלת המנוע מבוסס-העמודות
כדי להשתמש במנוע מבוסס-עמודות במכונה, מגדירים את הדגל google_columnar_engine.enabled של המכונה לערך on.
כדי להפעיל גישה ישירה ל-Iceberg לצורך שליחת שאילתות לטבלאות Apache Iceberg, צריך גם להגדיר את הדגל google_columnar_engine.enable_iceberg_reads לערך 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 vCPU | 18.75 GB | 37.5GB | 18.75GB |
| 4 vCPU | 18.75 GB | 37.5GB | 18.75 GB |
| 8 מעבדי vCPU | 18.75 GB | 37.5GB | 37.5GB |
| 16 מעבדים וירטואליים | 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 vCPU | 0 | 187.5GB | 375GB | 187.5GB |
| 4 vCPU | 0 | 187.5GB | 375GB | 187.5GB |
| 8 מעבדי vCPU | 0 | 187.5GB | 375GB | 375GB |
| 16 מעבדים וירטואליים | 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 יכול להחיל את אופרטור שאילתת האיחוד הווקטורית במקום את אופרטור שאילתת האיחוד הרגיל של 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.